Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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 }));
        }
Ejemplo n.º 3
0
        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 }));
        }