Пример #1
0
        public async Task <ActionResult <bool> > UpdateInformation([FromForm] UpdateInformationModel request)
        {
            string folder = Path.Combine(_hostingEnvironment.WebRootPath,
                                         "Avatars");

            return(Ok(await UserService.UpdateInformationUser(await GetUserId(),
                                                              request,
                                                              folder)));
        }
Пример #2
0
        public ActionResult UpdateMyInformation(UpdateInformationModel model)
        {
            try
            {
                _serviceUser.UpdateMyInformation(model);
                return(Ok());
            }

            catch (ValidationException exception)
            {
                var validationResult = exception.ValidationResult;
                foreach (var t in validationResult)
                {
                    ModelState.AddModelError(t.PropertyName, t.ErrorMessage);
                }
                return(BadRequest(ModelState));
            }

            catch (Exception exception)
            {
                ModelState.AddModelError("ErrorMessage", exception.Message);
                return(BadRequest(ModelState));
            }
        }
Пример #3
0
        public void UpdateMyInformation(UpdateInformationModel model)
        {
            IValidator validator = new FluentValidator <UpdateInformationModel, UpdateInformationModelValidationRules>(model);

            var validationResults = validator.Validate();

            if (!validator.IsValid)
            {
                throw new ValidationException(Messages.DangerInvalidEntitiy)
                      {
                          ValidationResult = validationResults
                      };
            }


            var language = _repositoryLanguage.Get(e => e.Id == model.Language.Id);

            if (language == null)
            {
                throw new ParentNotFoundException();
            }


            var identity = (CustomIdentity)Thread.CurrentPrincipal?.Identity;
            var user     = _repositoryUser
                           .Join(x => x.Creator)
                           .Join(x => x.Language)
                           .Join(x => x.Person)
                           .FirstOrDefault(e => e.Id == identity.UserId);

            if (user == null)
            {
                throw new NotFoundException();
            }


            var person = user.Person;

            if (model.Username != user.Username)
            {
                if (_repositoryUser.Get().Any(p => p.Username == model.Username))
                {
                    throw new DuplicateException(string.Format(Messages.DangerFieldDuplicated, Dictionary.Username));
                }
            }
            if (model.Email != user.Email)
            {
                if (_repositoryUser.Get().Any(p => p.Email == model.Email))
                {
                    throw new DuplicateException(string.Format(Messages.DangerFieldDuplicated, Dictionary.Email));
                }
            }


            var personHistory = person.CreateMapped <Person, PersonHistory>();

            personHistory.Id          = GuidHelper.NewGuid();
            personHistory.ReferenceId = user.Id;
            personHistory.CreatorId   = user.Creator.Id;
            _repositoryPersonHistory.Add(personHistory, true);

            person.FirstName = model.FirstName;
            person.LastName  = model.LastName;


            person.LastModificationTime = DateTime.Now;
            person.LastModifierId       = user.Id;
            var versionPerson = person.Version;

            person.Version = versionPerson + 1;
            _repositoryPerson.Update(person, true);

            var userHistory = user.CreateMapped <User, UserHistory>();

            userHistory.Id          = GuidHelper.NewGuid();
            userHistory.ReferenceId = user.Id;
            userHistory.CreatorId   = user.Creator.Id;
            userHistory.PersonId    = user.Person.Id;
            userHistory.LanguageId  = user.Language.Id;



            _repositoryUserHistory.Add(userHistory, true);

            user.Username = model.Username;
            user.Email    = model.Email;


            user.LastModificationTime = DateTime.Now;
            user.LastModifier         = user;
            user.Language             = language;

            var versionUser = user.Version;

            user.Version = versionUser + 1;

            var affectedUser = _repositoryUser.Update(user, true);

            if (!_serviceMain.ApplicationSettings.SendMailAfterUpdateUserInformation)
            {
                return;
            }

            var emailUser = new EmailUser
            {
                Username     = affectedUser.Username,
                Password     = string.Empty,
                CreationTime = affectedUser.CreationTime,
                Email        = affectedUser.Email,
                FirstName    = affectedUser.Person.FirstName,
                LastName     = affectedUser.Person.LastName
            };
            var emailSender = new EmailSender(_serviceMain, _smtp);

            emailSender.SendEmailToUser(emailUser, EmailTypeOption.UpdateMyInformation);
        }
Пример #4
0
        public async Task <TResponse <bool> > UpdateInformationUser(int userId,
                                                                    UpdateInformationModel request,
                                                                    string folder)
        {
            try
            {
                var user = await GetById(userId);

                if (user.IsSuccess)
                {
                    var    image  = request.Image;
                    string avatar = string.Empty;
                    if (image != null &&
                        image.Length > 0)
                    {
                        avatar = $"{user.Data.Username}.png";
                    }

                    var result = await WriteRepository.ExecuteAsync(SqlQuery.USER_UPDATE_INFORMATION,
                                                                    new
                    {
                        request.FullName,
                        request.DisplayName,
                        request.PhoneNumber,
                        request.Email,
                        request.BranchId,
                        request.Avatar,
                        UserUpdated = userId,
                        DateUpdated = DateTime.Now,
                        Id          = userId
                    });

                    if (result.IsSuccess)
                    {
                        if (result.Data > 0)
                        {
                            if (image != null &&
                                image.Length > 0)
                            {
                                try
                                {
                                    if (!Directory.Exists(folder))
                                    {
                                        Directory.CreateDirectory(folder);
                                    }

                                    using (FileStream filestream = File.Create(Path.Combine(folder,
                                                                                            user.Data.Username) + ".png"))
                                    {
                                        image.CopyTo(filestream);
                                        filestream.Flush();
                                    }
                                }
                                catch (Exception ex)
                                {
                                }
                            }

                            return(await Ok(true));
                        }

                        return(await Fail <bool>(ErrorEnum.CAN_NOT_CHANGE_USER_INFORMATION.GetStringValue()));
                    }
                }

                return(await Fail <bool>(user.Message));
            }
            catch (Exception exception)
            {
                return(await Fail <bool>(exception));
            }
        }