diff --git a/Hushian.Application/Services/ConversationService.cs b/Hushian.Application/Services/ConversationService.cs index d591506..437099e 100644 --- a/Hushian.Application/Services/ConversationService.cs +++ b/Hushian.Application/Services/ConversationService.cs @@ -34,9 +34,9 @@ namespace Hushian.Application.Services _hubContext = hubContext; } - public async Task> NewConversation(ADD_ConversationDto dto, ConversationType type = ConversationType.UE) + public async Task> NewConversation(ADD_ConversationDto dto, ConversationType type = ConversationType.UE) { - var Response = new ResponseBase(); + var Response = new ResponseBase(); if (await _companyService.AnyCompany(dto.CompanyID)) { if (await _userService.AnyUser(dto.UserID)) @@ -62,8 +62,24 @@ namespace Hushian.Application.Services ConversationResponses = new List() { 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> NewConversationResponse(ADD_ConversationResponseDto dto, int? ExperID) + public async Task> NewConversationResponse(ADD_ConversationResponseDto dto, int? ExperID) { - var Response = new ResponseBase(); + var Response = new ResponseBase(); 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) { diff --git a/Presentation/HushianWebApp/Pages/Conversation.razor b/Presentation/HushianWebApp/Pages/Conversation.razor index 3bf56be..14dae74 100644 --- a/Presentation/HushianWebApp/Pages/Conversation.razor +++ b/Presentation/HushianWebApp/Pages/Conversation.razor @@ -202,7 +202,7 @@ { if (!string.IsNullOrEmpty(MsgInput) && SelectedConversationItems!=null) { - await conversationService.ADDConversationItemFromCompanySide(SelectedConversationItems[0].ConversationID, MsgInput, Role=="Company" ? Common.Enums.ConversationType.CU : Common.Enums.ConversationType.EU); + await conversationService.ADDConversationItem(SelectedConversationItems[0].ConversationID, MsgInput, Role=="Company" ? Common.Enums.ConversationType.CU : Common.Enums.ConversationType.EU); SelectedConversationItems?.Add(new() { text = MsgInput, Type = Common.Enums.ConversationType.EU }); SelectedConversation.LastText = MsgInput; await Task.Yield(); diff --git a/Presentation/HushianWebApp/Pages/FromUserSide/ChatBoxComponent.razor b/Presentation/HushianWebApp/Pages/FromUserSide/ChatBoxComponent.razor index e8511e5..a0c3e57 100644 --- a/Presentation/HushianWebApp/Pages/FromUserSide/ChatBoxComponent.razor +++ b/Presentation/HushianWebApp/Pages/FromUserSide/ChatBoxComponent.razor @@ -1,30 +1,40 @@ @using Common.Dtos.Conversation -
- @if (SelectedConversationItems != null) +@if (SelectedConversationItems!=null) +{ + @foreach (var item in SelectedConversationItems) { -

@SelectedConversationItems.Count()

+ if (item.Type == Common.Enums.ConversationType.UE) + { +
+
+ @item.text +
+ + +
+ } + else + { +
+
+ @item.text +
+ + +
+ } } -
- سلام -
- +} -
-
-
- جهت خرید در سایت در هنگام درج اطلاعات به‌خصوص کد اقتصادی دقت نمائید صورتحساب شما بر همین اساس ارسال خواهد شد در هنگام درج اطلاعات به‌خصوص کد اقتصادی دقت نمائید صورتحساب شما بر همین اساس ارسال خواهد شد ثبت نام نموده و سپس از منو فروشگاه اقدام به انتخاب محصول مورد نظر خود نمائید.

-
- -
@code { - [Parameter] public List Conversations { get; set; } + // [Parameter] public List Conversations { get; set; } [Parameter] public List SelectedConversationItems { get; set; } } diff --git a/Presentation/HushianWebApp/Pages/FromUserSide/LoginComponent.razor b/Presentation/HushianWebApp/Pages/FromUserSide/LoginComponent.razor index 5d98768..58a1d7d 100644 --- a/Presentation/HushianWebApp/Pages/FromUserSide/LoginComponent.razor +++ b/Presentation/HushianWebApp/Pages/FromUserSide/LoginComponent.razor @@ -31,15 +31,29 @@
-
- +
+ + + + + + +
- +
} @@ -51,7 +65,10 @@ [Parameter] public EventCallback OnMultipleOfThree { get; set; } public string Username { get; set; } public int ID { get; set; } = 0; - public string Code { get; set; } = string.Empty; + public string Code { get; set; } = string.Empty; + //----------------- + private string code1, code2, code3, code4; + private ElementReference input1, input2, input3, input4; } @functions{ async Task Login() @@ -61,6 +78,7 @@ { Mobile=Username }); + visible = false; } async Task ver() @@ -70,4 +88,33 @@ await OnMultipleOfThree.InvokeAsync(); visible = false; } + private async Task MoveNext(ChangeEventArgs e) + { + if (e.Value?.ToString()?.Length == 1) + { + if (input1.Context == null) return; + + if (string.IsNullOrEmpty(code1)) + await input2.FocusAsync(); + else if (string.IsNullOrEmpty(code2)) + await input3.FocusAsync(); + else if (string.IsNullOrEmpty(code3)) + await input4.FocusAsync(); + else if (string.IsNullOrEmpty(code4)) + { + Code = $"{code1}{code2}{code3}{code4}"; + } + } + } + private async Task OnLastInput(ChangeEventArgs e) + { + code4 = e.Value?.ToString(); + + if (!string.IsNullOrEmpty(code4) && code4.Length == 1) + { + Code = $"{code1}{code2}{code3}{code4}"; + + await ver(); + } + } } \ No newline at end of file diff --git a/Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor b/Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor index 5567eab..eca6c5d 100644 --- a/Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor +++ b/Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor @@ -32,39 +32,49 @@ }
- - @if (!IsLogin) + @if (!IsFisrLoding) { - - } - @if (IsLogin) - { - @if (SelectedConversation == null) + @if (!IsLogin) { - - @GCContent - - @if (Conversations.Count > 0) + + } + @if (IsLogin) + { + @if (SelectedConversation == null) { - @ConversationsContent + + @GCContent + + @if (Conversations.Count > 0) + { + @ConversationsContent + } + + + } + else + { + } - } - else - { - - } - + } } + else + { +
+ +
+ + }
- @if (IsLogin && (@* Conversations.Count == 0 && *@ SelectedConversation == null) || (@* Conversations.Count > 0 && *@ SelectedConversation != null && SelectedConversation.status == Common.Enums.ConversationStatus.InProgress)) + @if (IsLogin && (@* Conversations.Count == 0 && *@ SelectedConversation == null) || (@* Conversations.Count > 0 && *@ SelectedConversation != null && (SelectedConversation.status != Common.Enums.ConversationStatus.Finished))) {
@@ -105,6 +115,7 @@ int CountQueueCompany = 0; public string CompanyName { get; set; } = "هوشیان"; public bool IsLogin { get; set; } = false; + public bool IsFisrLoding { get; set; } = true; public int? SelectedGroup { get; set; } public string InputMessage { get; set; } public bool Sending { get; set; } = false; @@ -121,7 +132,9 @@ } protected override async Task OnInitializedAsync() { + IsFisrLoding = true; await CheckOnline(); + IsFisrLoding = false; await base.OnInitializedAsync(); } async Task CheckOnline() @@ -192,7 +205,8 @@ Conversations = await conversationService.MyConversationUserSide(CompanyID); if (Conversations.Count > 0) ConversationsContent =@; + OnMultipleOfThree="EventCallback.Factory.Create(this, SelectedConv)" /> + ; if (ConversationID.HasValue && ConversationID > 0 && Conversations.Count > 0) await SelectedConv(ConversationID.Value); @@ -229,12 +243,8 @@ } async Task OnClickSendMssage() { - // SelectedConversationItems.Add(new Read_ConversationResponseDto() - // { - // ConversationID=1, - // }); - // return; + if (string.IsNullOrEmpty(InputMessage)) return; Sending = true; if (SelectedConversation != null) { @@ -243,6 +253,9 @@ ConversationID = SelectedConversation.ID, Text = InputMessage }; + var inputconv= await conversationService.ADDConversationItem(SelectedConversation.ID, InputMessage, Common.Enums.ConversationType.UE); + if (inputconv!=null) SelectedConversationItems.Add(inputconv); + } else { @@ -252,11 +265,11 @@ GroupID = SelectedGroup, Question = InputMessage }; - var convID= await conversationService.NewConversationFromCurrentUser(Item); - if (convID >0) + var convNEW= await conversationService.NewConversationFromCurrentUser(Item); + if (convNEW !=null) { - ConversationID = convID; - await SelectedConv(ConversationID.Value); + Conversations.Add(convNEW); + await SelectedConv(convNEW.ID); } } diff --git a/Presentation/HushianWebApp/Service/ConversationService.cs b/Presentation/HushianWebApp/Service/ConversationService.cs index 2f7c1b4..5c642b4 100644 --- a/Presentation/HushianWebApp/Service/ConversationService.cs +++ b/Presentation/HushianWebApp/Service/ConversationService.cs @@ -53,14 +53,18 @@ namespace HushianWebApp.Service return new(); } - public async Task ADDConversationItemFromCompanySide(int ConversationID,string text, ConversationType type) + public async Task ADDConversationItem(int ConversationID,string text, ConversationType type) { var response = await _baseController.Post($"{BaseRoute}ADDConversationResponse",new ADD_ConversationResponseDto() { ConversationID = ConversationID, Text=text, Type=type - }); + }); + if (response.IsSuccessStatusCode) + return await response.Content.ReadFromJsonAsync(); + return null; + } public async Task ConversationIsFinish(int ConversationID) { @@ -83,13 +87,13 @@ namespace HushianWebApp.Service return new(); } - public async Task NewConversationFromCurrentUser(ADD_ConversationDto conversation) + public async Task NewConversationFromCurrentUser(ADD_ConversationDto conversation) { var response = await _baseController.Post($"{BaseRoute}NewConversationFromCurrentUser", conversation); if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync(); + return await response.Content.ReadFromJsonAsync(); - return -1; + return null; } } }