Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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,
                });
            }
        }
Esempio n. 4
0
        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!"));
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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."));
        }
Esempio n. 7
0
        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"));
        }