This commit is contained in:
mmrbnjd
2025-07-27 16:04:28 +03:30
parent 14c125ddd9
commit 574a4d3ed6
6 changed files with 174 additions and 71 deletions

View File

@@ -34,9 +34,9 @@ namespace Hushian.Application.Services
_hubContext = hubContext;
}
public async Task<ResponseBase<int>> NewConversation(ADD_ConversationDto dto, ConversationType type = ConversationType.UE)
public async Task<ResponseBase<Read_ConversationDto>> NewConversation(ADD_ConversationDto dto, ConversationType type = ConversationType.UE)
{
var Response = new ResponseBase<int>();
var Response = new ResponseBase<Read_ConversationDto>();
if (await _companyService.AnyCompany(dto.CompanyID))
{
if (await _userService.AnyUser(dto.UserID))
@@ -62,8 +62,24 @@ namespace Hushian.Application.Services
ConversationResponses = new List<ConversationResponse>() { new() { Text = dto.Question, Type = type } }
};
var mi = await _ConversationRepository.ADD(conversation);
Response.Value = mi.ID;
Response.Success = Response.Value > 0;
Response.Value = new Read_ConversationDto()
{
ID = mi.ID,
ExperID = mi.ConversationResponses.OrderBy(o => o.ID).Last().ExperID,
ExperFullName = mi.ConversationResponses.OrderBy(o => o.ID).Last().Exper.FullName,
GroupID = mi.GroupID,
GroupName = mi.Group.Name,
LastText = mi.ConversationResponses.OrderBy(o => o.ID).Last().Text,
LastMsgdate = mi.Cdatetime.GetDatePersian(),
LastMsgtime = mi.Cdatetime.GetTime(),
LastMsgType = mi.ConversationResponses.OrderBy(o => o.ID).Last().Type,
NoReadCount = mi.ConversationResponses.Count(c => !c.IsRead),
status = mi.Status,
UserID = mi.UserID,
UserFullName = string.IsNullOrEmpty(mi.User.FullName) ? mi.User.Mobile : mi.User.FullName
};
Response.Success = mi.ID > 0;
}
else Response.Errors.Add("شناسه گروه صحیح نمی باشد");
@@ -78,9 +94,9 @@ namespace Hushian.Application.Services
return Response;
}
public async Task<ResponseBase<int>> NewConversationResponse(ADD_ConversationResponseDto dto, int? ExperID)
public async Task<ResponseBase<Read_ConversationResponseDto>> NewConversationResponse(ADD_ConversationResponseDto dto, int? ExperID)
{
var Response = new ResponseBase<int>();
var Response = new ResponseBase<Read_ConversationResponseDto>();
if (dto.Type == ConversationType.EU && !ExperID.HasValue)
{
Response.Errors.Add("کارشناس گفتگو را مشخص گنید");
@@ -108,8 +124,21 @@ namespace Hushian.Application.Services
FileType = dto.FileType,
FileName = dto.FileName
};
Response.Value = (await _ConversationResponseRepository.ADD(response)).ID;
Response.Success = Response.Value > 0;
var statuschangedb = await _ConversationResponseRepository.ADD(response);
Response.Value = new Read_ConversationResponseDto()
{
ConversationID = statuschangedb.ConversationID,
ExperID = statuschangedb.ExperID,
ExperName = statuschangedb.Exper.FullName,
FileContent = statuschangedb.FileContent,
FileName = statuschangedb.FileName,
FileType = statuschangedb.FileType,
ID = statuschangedb.ID,
IsRead = statuschangedb.IsRead,
text = statuschangedb.Text,
Type = statuschangedb.Type
};
Response.Success = statuschangedb.ID > 0;
if (convModel.Status == ConversationStatus.Recorded && Response.Success)
{