From d397f70b9a054596acbbea809eff288094553317 Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 12 Jul 2025 16:59:25 +0330 Subject: [PATCH] ... --- Hushian.Application/Services/ExperService.cs | 5 ++ .../Controllers/v1/ConversationController.cs | 5 +- .../Controllers/v1/ExperController.cs | 44 ++++++++++---- .../Controllers/v1/VerificationController.cs | 1 - .../HushianWebApp/Service/AuthService.cs | 2 - .../Service/ConversationService.cs | 43 ++++++------- .../HushianWebApp/Service/GroupService.cs | 2 +- .../HushianWebApp/Service/UserService.cs | 60 +++++++------------ .../Service/VerificationService.cs | 7 +-- 9 files changed, 82 insertions(+), 87 deletions(-) diff --git a/Hushian.Application/Services/ExperService.cs b/Hushian.Application/Services/ExperService.cs index 172ba87..0b4dfdd 100644 --- a/Hushian.Application/Services/ExperService.cs +++ b/Hushian.Application/Services/ExperService.cs @@ -155,5 +155,10 @@ namespace Hushian.Application.Services if (exper == null) return 0; return exper.CompanyID; } + public async Task AvailableExperInCompany(int ExperID) + { + return await _ExperRepository.Get().AnyAsync(w => w.ID == ExperID && w.Available); + + } } } diff --git a/Presentation/Hushian.WebApi/Controllers/v1/ConversationController.cs b/Presentation/Hushian.WebApi/Controllers/v1/ConversationController.cs index bd57feb..088f304 100644 --- a/Presentation/Hushian.WebApi/Controllers/v1/ConversationController.cs +++ b/Presentation/Hushian.WebApi/Controllers/v1/ConversationController.cs @@ -16,13 +16,14 @@ namespace Hushian.WebApi.Controllers.v1 private readonly ConversationService _conversationService; private readonly CompanyService _companyService; private readonly ExperService _experService; - public ConversationController(ConversationService conversationService, CompanyService companyService) + public ConversationController(ConversationService conversationService, CompanyService companyService, ExperService experService) { _conversationService = conversationService; _companyService = companyService; + _experService = experService; } - [HttpGet("MyConversation")] + [HttpPost("MyConversation")] [Authorize(Roles = "Company,Exper")] public async Task MyConversation(ConversationStatus status) { diff --git a/Presentation/Hushian.WebApi/Controllers/v1/ExperController.cs b/Presentation/Hushian.WebApi/Controllers/v1/ExperController.cs index f716e05..7af9175 100644 --- a/Presentation/Hushian.WebApi/Controllers/v1/ExperController.cs +++ b/Presentation/Hushian.WebApi/Controllers/v1/ExperController.cs @@ -7,6 +7,7 @@ using Hushian.Application.Services; using Hushian.Domain.Entites; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using System.ComponentModel.Design; using System.IdentityModel.Tokens.Jwt; namespace Hushian.WebApi.Controllers.v1 @@ -16,7 +17,11 @@ namespace Hushian.WebApi.Controllers.v1 public class ExperController : ControllerBase { private readonly ExperService _experService; - + + public ExperController(ExperService experService) + { + _experService = experService; + } [HttpPost("AddExper")] [Authorize(Roles = "Company")] @@ -33,7 +38,7 @@ namespace Hushian.WebApi.Controllers.v1 public async Task GetExpersCompany(int CompanyID, int PageIndex = 1, int PageSize = 10) { var response = await _experService.GetExpersInCompany(CompanyID); - return Ok(response); + return Ok(response); } @@ -44,7 +49,7 @@ namespace Hushian.WebApi.Controllers.v1 string strExperID = User.Claims.Where(w => w.Type == CustomClaimTypes.Uid).Select(s => s.Value).First(); int ExperID = Convert.ToInt32(strExperID); - var response = await _experService.UpdateExper(editUser,ExperID); + var response = await _experService.UpdateExper(editUser, ExperID); return response ? NoContent() : BadRequest(new List { "یافت نشد" }); } @@ -56,11 +61,11 @@ namespace Hushian.WebApi.Controllers.v1 int ExperID = Convert.ToInt32(strExperID); var response = await _experService.GetInfoExper(ExperID); - return response!=null ? Ok(response) : BadRequest(new List { "یافت نشد" }); + return response != null ? Ok(response) : BadRequest(new List { "یافت نشد" }); } [HttpPut("ExperEditingFromManager/{ExperID}")] //ویرایش کارشناس توسط مدیرش [Authorize(Roles = "Company")] - public async Task ExperEditingFromManager(int ExperID,[FromBody] Update_ExperDto editUser) + public async Task ExperEditingFromManager(int ExperID, [FromBody] Update_ExperDto editUser) { var response = await _experService.UpdateExper(editUser, ExperID); return response ? NoContent() @@ -74,18 +79,18 @@ namespace Hushian.WebApi.Controllers.v1 string strExperID = User.Claims.Where(w => w.Type == CustomClaimTypes.Uid).Select(s => s.Value).First(); int ExperID = Convert.ToInt32(strExperID); - var response = await _experService.ChangePasswordExperFromExper(item,ExperID); + var response = await _experService.ChangePasswordExperFromExper(item, ExperID); return response.Success && response.Value ? NoContent() : BadRequest(response.Errors); } [HttpPut("ChangePasswordFromManager/{ExperID}")] //تغییر کلمه عبور کارشناس توسط مدیرش [Authorize(Roles = "Company")] - public async Task ChangePasswordFromManager(int ExperID,[FromBody] ChangePasswordDto item) + public async Task ChangePasswordFromManager(int ExperID, [FromBody] ChangePasswordDto item) { string strCompanyID = User.Claims.Where(w => w.Type == CustomClaimTypes.Uid).Select(s => s.Value).First(); int CompanyID = Convert.ToInt32(strCompanyID); - var response = await _experService.ChangePasswordExperFromCompanyManaget(item, ExperID,CompanyID); + var response = await _experService.ChangePasswordExperFromCompanyManaget(item, ExperID, CompanyID); return response.Success && response.Value ? NoContent() : BadRequest(response.Errors); } @@ -97,11 +102,11 @@ namespace Hushian.WebApi.Controllers.v1 int CompanyID = Convert.ToInt32(strCompanyID); - var response = await _experService.ChangeAvailableExper(ExperID,CompanyID,Available); + var response = await _experService.ChangeAvailableExper(ExperID, CompanyID, Available); return response ? NoContent() - : BadRequest(new List { "یافت نشد"}); + : BadRequest(new List { "یافت نشد" }); } - [HttpDelete("DeleteExperFromManager/{ExperID}")] + [HttpDelete("DeleteExperFromManager/{ExperID}")] [Authorize(Roles = "Company")] public async Task DeleteExperFromManager(int ExperID) { @@ -113,6 +118,21 @@ namespace Hushian.WebApi.Controllers.v1 return response ? NoContent() : BadRequest(new List { "یافت نشد" }); } - + [HttpGet("CheckAvailableExperInCompany")] + public async Task CheckAvailableExper(int? ExperID) + { + if (!ExperID.HasValue) + { + string strExperID = User.Claims.Where(w => w.Type == CustomClaimTypes.Uid).Select(s => s.Value).First(); + ExperID = Convert.ToInt32(strExperID); + } + + var response = await _experService.AvailableExperInCompany(ExperID.GetValueOrDefault()); + return response ? NoContent() + : BadRequest(); + + } + + } } diff --git a/Presentation/Hushian.WebApi/Controllers/v1/VerificationController.cs b/Presentation/Hushian.WebApi/Controllers/v1/VerificationController.cs index 74284fd..ec56138 100644 --- a/Presentation/Hushian.WebApi/Controllers/v1/VerificationController.cs +++ b/Presentation/Hushian.WebApi/Controllers/v1/VerificationController.cs @@ -15,7 +15,6 @@ namespace Hushian.WebApi.Controllers.v1 _verificationService = verificationService; } - //------ UserName by Exper - Mobile by Company [HttpGet("ForgetPassword/{input}")] public async Task> GetIDAndSendCodeForForgetPasswordByUserID(string input) diff --git a/Presentation/HushianWebApp/Service/AuthService.cs b/Presentation/HushianWebApp/Service/AuthService.cs index d82e623..0d42dfe 100644 --- a/Presentation/HushianWebApp/Service/AuthService.cs +++ b/Presentation/HushianWebApp/Service/AuthService.cs @@ -1,9 +1,7 @@ using BlazorBootstrap; -using Common.Dtos.User; using Common.Models.Auth; using Common.Models.Auth.CompanySide; using Common.Models.Auth.UserSide; -using Common.Models.Identity; using HushianWebApp.Services; using Microsoft.AspNetCore.Components; using System.Net.Http.Json; diff --git a/Presentation/HushianWebApp/Service/ConversationService.cs b/Presentation/HushianWebApp/Service/ConversationService.cs index 5651aff..478e159 100644 --- a/Presentation/HushianWebApp/Service/ConversationService.cs +++ b/Presentation/HushianWebApp/Service/ConversationService.cs @@ -1,4 +1,5 @@ -using Hushian.Application.Dtos; +using Common.Dtos.Conversation; +using Common.Enums; using System.Net.Http.Json; namespace HushianWebApp.Service @@ -13,27 +14,27 @@ namespace HushianWebApp.Service _baseController = baseController; } - public async Task > MyConversationIsFinished() + public async Task > MyConversationIsFinished() { - var response = await _baseController.Get($"{BaseRoute}MyConversationIsFinished"); + var response = await _baseController.Post($"{BaseRoute}MyConversation", ConversationStatus.Finished); if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); return new() ; } - public async Task> MyConversationIsInProgress() + public async Task> MyConversationIsInProgress() { - var response = await _baseController.Get($"{BaseRoute}MyConversationIsInProgress"); + var response = await _baseController.Post($"{BaseRoute}MyConversation", ConversationStatus.InProgress); if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); return new(); } - public async Task> ConversationAwaitingOurResponse() + public async Task> ConversationAwaitingOurResponse() { var response = await _baseController.Get($"{BaseRoute}ConversationAwaitingOurResponse"); if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); return new(); } @@ -43,36 +44,28 @@ namespace HushianWebApp.Service return response.IsSuccessStatusCode; } - public async Task> GetConversationItems(int ConversationID) + public async Task> GetConversationItems(int ConversationID) { var response = await _baseController.Get($"{BaseRoute}ConversationItems/{ConversationID}"); if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); return new(); } - public async Task ADDConversationItemFromCompanySide(int ConversationID,string text) + public async Task ADDConversationItemFromCompanySide(int ConversationID,string text, ConversationType type) { - var response = await _baseController.Post($"{BaseRoute}ADDConversationItemFromCompanySide/{ConversationID}",new ADDConversationItemDto() + var response = await _baseController.Post($"{BaseRoute}ADDConversationResponse",new ADD_ConversationResponseDto() { ConversationID = ConversationID, - text=text + Text=text, + Type=type }); - /* if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync>(); - - // return new();*/ } public async Task ConversationIsFinish(int ConversationID) { var response = await _baseController.Put($"{BaseRoute}ConversationIsFinish/{ConversationID}"); return response.IsSuccessStatusCode; } - public async Task ConversationIsStart(int ConversationID) - { - var response = await _baseController.Put($"{BaseRoute}ConversationIsStart/{ConversationID}"); - return response.IsSuccessStatusCode; - } public async Task GetCountQueueCompany(int CompanyID,int GroupID=0) { var response = await _baseController.Get($"{BaseRoute}CountQueueCompany/{CompanyID}?GroupID={GroupID}"); @@ -81,11 +74,11 @@ namespace HushianWebApp.Service return -1; } - public async Task> MyConversationUserSide(int CompanyID) + public async Task> MyConversationUserSide(int CompanyID) { var response = await _baseController.Get($"{BaseRoute}ConversationFromUserSide/{CompanyID}"); if (response.IsSuccessStatusCode) - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); return new(); } diff --git a/Presentation/HushianWebApp/Service/GroupService.cs b/Presentation/HushianWebApp/Service/GroupService.cs index f7cfe20..b34c699 100644 --- a/Presentation/HushianWebApp/Service/GroupService.cs +++ b/Presentation/HushianWebApp/Service/GroupService.cs @@ -44,7 +44,7 @@ namespace HushianWebApp.Service var response = await _baseController.Get($"{BaseRoute}GetGroupsCompany"); if (response.IsSuccessStatusCode) { - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); } return null; } diff --git a/Presentation/HushianWebApp/Service/UserService.cs b/Presentation/HushianWebApp/Service/UserService.cs index 255878b..d42aeda 100644 --- a/Presentation/HushianWebApp/Service/UserService.cs +++ b/Presentation/HushianWebApp/Service/UserService.cs @@ -1,80 +1,66 @@ -using System.Net.Http.Json; +using Common.Dtos; +using Common.Dtos.Exper; +using System.Net.Http.Json; namespace HushianWebApp.Service { public class UserService { private readonly BaseController _baseController; - const string BaseRoute = "v1/User/"; + const string BaseRoute = "v1/Exper/"; public UserService(BaseController baseController) { _baseController = baseController; } - public async Task AddExper(AddUserDto request) + public async Task AddExper(ADD_ExperDto request) { var response = await _baseController.Post($"{BaseRoute}AddExper", request); return response.IsSuccessStatusCode; } - public async Task?> GetExpersCompany(int CompanyID, int PageIndex = 1, int PageSize = 10) + public async Task?> GetExpersCompany(int CompanyID, int PageIndex = 1, int PageSize = 10) { - string route = $"{BaseRoute}GetExpersCompany?CompanyID={CompanyID}&PageIndex={PageIndex}&PageSize={PageSize}"; + string route = $"{BaseRoute}GetExpersCompany/{CompanyID}&PageIndex={PageIndex}&PageSize={PageSize}"; var response = await _baseController.Get(route); if (response.IsSuccessStatusCode) { - return await response.Content.ReadFromJsonAsync>(); - } - return null; - } - public async Task?> GetOnlineExpersCompany(int CompanyID) - { - string route = $"{BaseRoute}GetOnlineExpersCompany?CompanyID={CompanyID}"; - - var response = await _baseController.Get(route); - if (response.IsSuccessStatusCode) - { - return await response.Content.ReadFromJsonAsync>(); + return await response.Content.ReadFromJsonAsync>(); } return null; } + //-------------------------------------------------------------------------------------------------------------- - public async Task?> GetUsersCompanyFromManager(int PageIndex = 1, int PageSize = 10) - { - string route = $"{BaseRoute}GetUsersCompany?PageIndex={PageIndex}&PageSize={PageSize}"; - - var response = await _baseController.Get(route); - if (response.IsSuccessStatusCode) - { - return await response.Content.ReadFromJsonAsync>(); - } - return null; - } - public async Task EditUserYourself(EditUserFromUserDto request) //ویرایش کاربران توسط خود + public async Task EditUserYourself(Update_ExperDto request) //ویرایش کاربران توسط خود { var response = await _baseController.Put($"{BaseRoute}EditUserYourself", request); return response.IsSuccessStatusCode; } - public async Task GetCurrentUser() //ویرایش کاربران توسط خود + public async Task GetCurrentUser() //ویرایش کاربران توسط خود { var response = await _baseController.Get($"{BaseRoute}GetCurrentUser"); if (response.IsSuccessStatusCode) { - return await response.Content.ReadFromJsonAsync(); + return await response.Content.ReadFromJsonAsync(); } return null; } - public async Task ExperEditingFromManager(EditUserFromUserDto request) //ویرایش کاربران توسط مدیرش + public async Task ExperEditingFromManager(int ExperID,Update_ExperDto request) //ویرایش کاربران توسط مدیرش { - var response = await _baseController.Put($"{BaseRoute}ExperEditingFromManager", request); + var response = await _baseController.Put($"{BaseRoute}ExperEditingFromManager/{ExperID}", request); return response.IsSuccessStatusCode; } - public async Task ChangePasswordYourself(ChangePasswordFromUserDto request) //تغییر کلمه عبور کاربران توسط خود + public async Task ChangePasswordYourself(ChangePasswordDto request) //تغییر کلمه عبور کاربران توسط خود { var response = await _baseController.Put($"{BaseRoute}ChangePasswordYourself", request); return response.IsSuccessStatusCode; } + public async Task ChangePasswordFromManager(int ExperID, ChangePasswordDto request) //تغییر کلمه عبور کاربران توسط خود + { + var response = await _baseController.Put($"{BaseRoute}ChangePasswordFromManager/{ExperID}", request); + return response.IsSuccessStatusCode; + } public async Task CheckAvailableExperInCompany(string? ExperID=null) { string route = $"{BaseRoute}CheckAvailableExperInCompany"; @@ -97,11 +83,7 @@ namespace HushianWebApp.Service return response.IsSuccessStatusCode; } - public async Task FreeExper() - { - var response = await _baseController.Delete($"{BaseRoute}FreeExper"); - return response.IsSuccessStatusCode; - } + } diff --git a/Presentation/HushianWebApp/Service/VerificationService.cs b/Presentation/HushianWebApp/Service/VerificationService.cs index 3023cb9..38fa700 100644 --- a/Presentation/HushianWebApp/Service/VerificationService.cs +++ b/Presentation/HushianWebApp/Service/VerificationService.cs @@ -1,4 +1,4 @@ -using Common.Dtos.User; +using Common.Dtos.Verification; using Common.Enums; using System.Net.Http.Json; @@ -18,10 +18,7 @@ namespace HushianWebApp.Service string route = type switch { - VerificationCodeType.PhoneNumberConfirmed => "PhoneNumberConfirmedFromUserName", - VerificationCodeType.ForgetPassword => "ForgetPasswordFromUserName", - VerificationCodeType.ChangeMobile => throw new NotImplementedException(), - VerificationCodeType.Login => throw new NotImplementedException(), + VerificationCodeType.ForgetPassword => "ForgetPassword", _ => throw new NotImplementedException() }; var response = await _baseController.Get($"v1/Verification/{route}/{mobile}");