public ApiResult <AddUserGroupResponse> Add(AddUserGroupRequest request) { var response = new AddUserGroupResponse(); var entity = _userGroupService.FindUserGroup(request.ImUserId.ToGuid(), request.GroupId.ToGuid()); if (entity == null) { //新增 var guid = _userGroupService.SaveUserGroup(request.GroupId.ToGuid(), request.ImUserId.ToGuid(), request.NickName, request.RoleType.ToInt32()); if (!guid.IsNullGuid()) { //新增用户通知 var userinfo = _imUserInfoService.Find(request.ImUserId.ToGuid()); var headimg = (userinfo == null ? "" : userinfo.UserHeadimg); var msgcontent = NewsTypeHelper.ToAddUser(request.ImUserId.ToString(), "0", request.NickName, headimg); var channelId = _groupInfoService.GetChannelId(request.GroupId.ToGuid()); RedisHelper.Publish(channelId, msgcontent); } } else { //修改 if (entity.NickName != request.NickName) { _userGroupService.SaveUserGroup(request.GroupId.ToGuid(), request.ImUserId.ToGuid(), request.NickName, request.RoleType.ToInt32()); } } return(Success(response)); }
public async Task <IActionResult> PostUserGroup([FromBody] AddUserGroupRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } CultureInfo cultureInfo = new CultureInfo(request.CultureInfo); Resource.Culture = cultureInfo; UserEntity proposalUser = await _userHelper.GetUserAsync(request.UserId); if (proposalUser == null) { return(BadRequest(Resource.UserNotFoundError)); } UserEntity requiredUser = await _userHelper.GetUserAsync(request.Email); if (requiredUser == null) { return(BadRequest(Resource.UserNotFoundError)); } UserGroupEntity userGroup = await _context.UserGroupEntities .Include(ug => ug.Users) .ThenInclude(u => u.User) .FirstOrDefaultAsync(ug => ug.User.Id == request.UserId.ToString()); if (userGroup != null) { UserGroupDetailEntity user = userGroup.Users.FirstOrDefault(u => u.User.Email == request.Email); if (user != null) { return(BadRequest(Resource.UserAlreadyBelogToGroup)); } } UserGroupRequestEntity userGroupRequest = new UserGroupRequestEntity { ProposalUser = proposalUser, RequiredUser = requiredUser, Status = UserGroupStatus.Pending, Token = Guid.NewGuid() }; try { _context.UserGroupRequestEntities.Add(userGroupRequest); await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex.Message)); } string linkConfirm = Url.Action("ConfirmUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); string linkReject = Url.Action("RejectUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); Response response = _mailHelper.SendMail(request.Email, Resource.RequestJoinGroupSubject, $"<h1>{Resource.RequestJoinGroupSubject}</h1>" + $"{Resource.TheUser}: {proposalUser.FullName} ({proposalUser.Email}), {Resource.RequestJoinGroupBody}" + $"</hr></br></br>{Resource.WishToAccept} <a href = \"{linkConfirm}\">{Resource.Confirm}</a>" + $"</hr></br></br>{Resource.WishToReject} <a href = \"{linkReject}\">{Resource.Reject}</a>"); if (!response.IsSuccess) { return(BadRequest(response.Message)); } return(Ok(Resource.RequestJoinGroupEmailSent)); }
public async Task <Response> AddUserGroupAsync(string urlBase, string servicePrefix, string controller, AddUserGroupRequest model, string tokenType, string accessToken) { try { string request = JsonConvert.SerializeObject(model); StringContent content = new StringContent(request, Encoding.UTF8, "application/json"); HttpClient client = new HttpClient { BaseAddress = new Uri(urlBase) }; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, accessToken); string url = $"{servicePrefix}{controller}"; HttpResponseMessage response = await client.PostAsync(url, content); string answer = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { return(new Response { IsSuccess = false, Message = answer, }); } return(new Response { IsSuccess = true, Message = answer, }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = ex.Message, }); } }
public async Task <IActionResult> PostUserGroup([FromBody] AddUserGroupRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } UserEntity proposalUser = await _userHelper.GetUserAsync(request.UserId); if (proposalUser == null) { return(BadRequest("Este Usuario no existe.")); } UserEntity requiredUser = await _userHelper.GetUserAsync(request.Email); if (requiredUser == null) { return(BadRequest("Este Usuario no existe.")); } UserGroupEntity userGroup = await _context.UserGroups .Include(ug => ug.Users) .ThenInclude(u => u.User) .FirstOrDefaultAsync(ug => ug.User.Id == request.UserId.ToString()); if (userGroup != null) { UserGroupDetailEntity user = userGroup.Users.FirstOrDefault(u => u.User.Email == request.Email); if (user != null) { return(BadRequest("Este Usuario ya pertenece al Grupo.")); } } UserGroupRequestEntity userGroupRequest = new UserGroupRequestEntity { ProposalUser = proposalUser, RequiredUser = requiredUser, Status = UserGroupStatus.Pending, Token = Guid.NewGuid() }; try { _context.UserGroupRequests.Add(userGroupRequest); await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex.Message)); } string linkConfirm = Url.Action("ConfirmUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); string linkReject = Url.Action("RejectUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); Response response = _mailHelper.SendMail(request.Email, "Solicitud de unirse a un Grupo", $"<h1>Solicitud de unirse a un Grupo</h1>" + $"El Usuario: {proposalUser.FullName} ({proposalUser.Email}), ha solicitado que sea miembro de su grupo de usuarios en la aplicación TAXI." + $"</hr></br></br>Si desea aceptar, haga clic aquí: <a href = \"{linkConfirm}\">Confirmar</a>" + $"</hr></br></br>Si desea rechazar, haga clic aquí: <a href = \"{linkReject}\">Rechazar</a>"); if (!response.IsSuccess) { return(BadRequest(response.Message)); } return(Ok("Se ha enviado un correo electrónico al usuario con su solicitud, esperamos a que responda pronto!")); }
public async Task <IActionResult> PostUserGroup([FromBody] AddUserGroupRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } UserEntity proposalUser = await _userHelper.GetUserAsync(request.UserId); if (proposalUser == null) { return(BadRequest()); } UserEntity requiredUser = await _userHelper.GetUserAsync(request.Email); if (requiredUser == null) { return(BadRequest()); } UserGroupEntity userGroup = await _context.UserGroups .Include(ug => ug.Users) .ThenInclude(u => u.User) .FirstOrDefaultAsync(ug => ug.User.Id == request.UserId.ToString()); if (userGroup != null) { UserGroupDetailEntity user = userGroup.Users.FirstOrDefault(u => u.User.Email == request.Email); if (user != null) { return(BadRequest()); } } UserGroupRequestEntity userGroupRequest = new UserGroupRequestEntity { ProposalUser = proposalUser, RequiredUser = requiredUser, Status = UserGroupStatus.Pending, Token = Guid.NewGuid() }; try { _context.UserGroupRequests.Add(userGroupRequest); await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex.Message)); } string linkConfirm = Url.Action("ConfirmUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); string linkReject = Url.Action("RejectUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); Response response = _mailHelper.SendMail(request.Email, "user request", $"<h1>{"User group"}</h1>" + $"{"convert user helper"}: {proposalUser.FullName} ({proposalUser.Email}), {"passs body"}" + $"</hr></br></br>{"Sccept"} <a href = \"{linkConfirm}\">{"Confirm"}</a>" + $"</hr></br></br>{"in join"} <a href = \"{linkReject}\">{"Reject"}</a>"); if (!response.IsSuccess) { return(BadRequest(response.Message)); } return(Ok()); }
public async Task <IActionResult> PostUserGroup([FromBody] AddUserGroupRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } UserEntity proposalUser = await _userHelper.GetUserAsync(request.UserId); if (proposalUser == null) { return(BadRequest("Error, Usuario no existe")); } UserEntity requiredUser = await _userHelper.GetUserAsync(request.Email); if (requiredUser == null) { return(BadRequest("Error, Usuario no existe")); } UserGroupEntity userGroup = await _context.UserGroups .Include(ug => ug.Users) .ThenInclude(u => u.User) .FirstOrDefaultAsync(ug => ug.User.Id == request.UserId.ToString()); if (userGroup != null) { UserGroupDetailEntity user = userGroup.Users.FirstOrDefault(u => u.User.Email == request.Email); if (user != null) { return(BadRequest("El ususario ya esta registrado al grupo")); } } UserGroupRequestEntity userGroupRequest = new UserGroupRequestEntity { ProposalUser = proposalUser, RequiredUser = requiredUser, Status = UserGroupStatus.Pending, Token = Guid.NewGuid() }; try { _context.UserGroupRequests.Add(userGroupRequest); await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex.Message)); } string linkConfirm = Url.Action("ConfirmUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); string linkReject = Url.Action("RejectUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); Response response = _mailHelper.SendMail(request.Email, "Asunto: Solicitar unirse al grupo", $"<h1> Asunto: Solicitar unirse al grupo </h1>" + $"El Usuario: {proposalUser.FullName} ({proposalUser.Email}), Solicita que te unas al grupo" + $"</hr></br></br> Deseo confirmar <a href = \"{linkConfirm}\">Confirma aqui </a>" + $"</hr></br></br> Si deseas rechazar <a href = \"{linkReject}\"> Rechaza aqui </a>"); if (!response.IsSuccess) { return(BadRequest(response.Message)); } return(Ok("Solicitud para unirse al grupo ha sido enviada al correo electrónico.")); }
public async Task <IActionResult> PostUserGroup([FromBody] AddUserGroupRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //CultureInfo cultureInfo = new CultureInfo(request.CultureInfo); //Resource.Culture = cultureInfo; UserEntity proposalUser = await _userHelper.GetUserAsync(request.UserId); if (proposalUser == null) { return(BadRequest(new Response { IsSuccess = false, Message = "User not found" })); } UserEntity requiredUser = await _userHelper.GetUserAsync(request.Email); if (requiredUser == null) { return(BadRequest(new Response { IsSuccess = false, Message = "User not found" })); } UserGroupEntity userGroup = await _context.UserGroups .Include(ug => ug.Users) .ThenInclude(u => u.User) .FirstOrDefaultAsync(ug => ug.User.Id == request.UserId.ToString()); if (userGroup != null) { UserGroupDetailEntity user = userGroup.Users.FirstOrDefault(u => u.User.Email == request.Email); if (user != null) { return(BadRequest(new Response { IsSuccess = false, Message = "User already belongs to a group" })); } } UserGroupRequestEntity userGroupRequest = new UserGroupRequestEntity { ProposalUser = proposalUser, RequiredUser = requiredUser, Status = UserGroupStatus.Pending, Token = Guid.NewGuid() }; try { _context.UserGroupRequests.Add(userGroupRequest); await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex.Message)); } string linkConfirm = Url.Action("ConfirmUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); string linkReject = Url.Action("RejectUserGroup", "Account", new { requestId = userGroupRequest.Id, token = userGroupRequest.Token }, protocol: HttpContext.Request.Scheme); Response response = _mailHelper.SendMail(request.Email, "Request To Join Group", $"<h1>{"Invitation to join a user group"}</h1>" + $"{"User"}: {proposalUser.FullName} ({proposalUser.Email}), {" Has Invite you to join a user group for the Taxi Survey Application."}" + $"</hr></br></br>{"If you wish to accept, clik here"} <a href = \"{linkConfirm}\">{"Confirm"}</a>" + $"</hr></br></br>{"If you wish To Reject, clck here"} <a href = \"{linkReject}\">{"Not Inerested"}</a>"); if (!response.IsSuccess) { return(BadRequest(response.Message)); } return(Ok("Request To Join a Group EmailSent")); }