public override async Task <BasicResponse> UserChangeInformation(ChangeInformationRequest request, ServerCallContext context) { User user = await userRepository.GetById(User.GetGuidFromHeaders(context.RequestHeaders)); bool requireUpdate = false; // Username in database: if (user.Username != request.UserData.Username) { requireUpdate = true; User userUsername = await userRepository.GetByUsername(request.UserData.Username); if (userUsername != null) { return(await GetResponse(StatusCode.UsernameOccupied)); } } // Email validate: // TODO !!!!! // Email in database: if (user.EmailAddress != request.UserData.Email) { requireUpdate = true; User userEmail = await userRepository.GetByEmailAddress(request.UserData.Email); if (userEmail != null) { return(await GetResponse(StatusCode.EmailOccupied)); } } // Telephone in database: if (user.Telephone != request.UserData.Telephone) { requireUpdate = true; } if (requireUpdate) { var beforeInformations = user.GetInfromations(); user.SetNewInfromations(request.UserData); await userRepository.ChangeInformation(user); await userRepository.AddOperations(user.Id, Operation.GetOne(OperationTypes.ChangeInformation, context.Peer, beforeInformations, user.GetInfromations())); return(await GetResponse(StatusCode.Ok)); } return(await GetResponse(StatusCode.EmptyChanges)); }
public IActionResult ChangeInformation(ChangeInformationViewModel vm) { var uc = _userUseCaseFactory.ChangeInformation; var request = new ChangeInformationRequest(HttpContext.Session.GetString("UserId")) { UserId = vm.ApplicationUserId, DisplayName = vm.DisplayName, }; var presenter = _userPresenterFactory.ChangeInformation(HttpContext.Session, TempData, ModelState); if (!uc.Execute(presenter, request)) { return(View(vm)); } return(RedirectToAction(nameof(Index), new { id = presenter.Response.UserId })); }
public IActionResult ChangeInformation(ChangeInformationViewModel vm) { var uc = _projectUseCaseFactory.ChangeInformation; var request = new ChangeInformationRequest(HttpContext.Session.GetString("UserId")) { ProjectId = vm.ProjectId, Name = vm.Name, Description = vm.Description, }; var presenter = _projectPresenterFactory.ChangeInformation(HttpContext.Session, TempData, ModelState); if (!uc.Execute(presenter, request)) { return(View(vm)); } return(RedirectToAction(nameof(Index), new { id = vm.ProjectId })); }