Пример #1
0
        public async Task <object> Edit([FromBody] User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values.SelectMany(start => start.Errors).Select(error => error.ErrorMessage).Take(1).ElementAt(0)));
            }

            UserEditResponse editUser = await _userService.Edit(user);

            if (editUser.ErrorId)
            {
                return(BadRequest("error.user.invalid-id"));
            }

            if (editUser.ErrorEmail)
            {
                return(BadRequest("error.user.email-exists"));
            }

            if (editUser.ErrorCpf)
            {
                return(BadRequest("error.user.cpf-exists"));
            }

            return(Ok(editUser));
        }
Пример #2
0
        public async Task <UserEditResponse> EditUser(UserEditRequest request)
        {
            var response = new UserEditResponse();

            var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId);

            if (!currentUser.IsAdmin)
            {
                response.SetInvalid();
                return(response);
            }

            if (await _organizationRepository.Any(x => x.Id == currentUser.OrganizationId && !x.IsActive))
            {
                response.SetInvalid();
                response.ErrorMessages.Add("organization_not_found");
                return(response);
            }

            var entity = _cacheManager.GetCachedUser(request.UserUid);

            if (entity.OrganizationId != currentUser.OrganizationId)
            {
                response.SetInvalid();
                return(response);
            }

            var language = await _languageRepository.Select(x => x.Uid == request.LanguageUid);

            if (language.IsNotExist())
            {
                response.SetInvalid();
                response.ErrorMessages.Add("language_not_found");
                return(response);
            }

            var updatedEntity = _userFactory.CreateEntityFromRequest(request, entity, language);
            var result        = await _userRepository.Update(request.CurrentUserId, updatedEntity);

            if (result)
            {
                _cacheManager.UpsertUserCache(entity, _userFactory.MapCurrentUser(entity));

                response.Item   = _userFactory.CreateDtoFromEntity(entity);
                response.Status = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }
Пример #3
0
        /// <summary>
        /// 获取单挑数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public UserEditResponse UserEdit(UserEditRequest request)
        {
            UserEditResponse response = new UserEditResponse();

            if (request.Uid < 0)
            {
                response.Status  = false;
                response.Message = "网络错误请重试";
                return(response);
            }

            var res = UserDal.Instance.EditUser(request.Uid);

            if (res != null)
            {
                response.Status   = true;
                response.Message  = "请求成功";
                response.UserEdit = res;
            }
            return(response);
        }
Пример #4
0
        /// <summary>
        /// Edit the specified user.
        /// </summary>
        /// <returns>The edit.</returns>
        /// <param name="user">User.</param>
        public async Task <UserEditResponse> Edit(User user)
        {
            // Edit response
            UserEditResponse userEditResponse = new UserEditResponse();

            // Check ID
            int id = int.TryParse(user.ID.ToString(), out id) ? id : 0;

            if (id == 0)
            {
                userEditResponse.ErrorId = true;
                return(userEditResponse);
            }

            // Check if user email or cpf exists
            User[] checkUser = await(from u in db.Users
                                     where (u.Email == user.Email || u.Cpf == user.Cpf)
                                     where u.ID != user.ID
                                     select u).Take(1).ToArrayAsync();

            if (checkUser.Any())
            {
                if (checkUser.FirstOrDefault().Email == user.Email)
                {
                    userEditResponse.ErrorEmail = true;
                }

                if (checkUser.FirstOrDefault().Cpf == user.Cpf)
                {
                    userEditResponse.ErrorCpf = true;
                }

                return(userEditResponse);
            }

            user.Password  = new HashPassword().Generate(user.Password);
            user.UpdatedAt = DateTime.Now;
            db.Users.Add(user);

            // Save Log
            int userId = int.Parse(Thread.CurrentPrincipal.Identity.Name);
            Log log    = new Log
            {
                UserID = userId,
                Action = "user.edit"
            };

            await new LogService().Save(log);

            Claim[] claims =
            {
                new Claim(ClaimTypes.Name,  user.FirstName),
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.Role,  user.Role)
            };

            userEditResponse.TokenType   = "Bearer";
            userEditResponse.AccessToken = _tokenManager.Generate(claims);

            return(userEditResponse);
        }