/// <summary>
        /// Executes Get User Detail Use Case
        /// </summary>
        /// <param name="input">The input<see cref="RegisterUserInput"/></param>
        /// <returns>The <see cref="Task"/></returns>
        public async Task Execute(UserDetailsInput input)
        {
            if (input is null)
            {
                _outputPort.WriteError(Messages.InputIsNull);
                _logger.LogInformation(Messages.InputIsNull);
                return;
            }
            else if (input.Id <= 0)
            {
                var message = string.Format(Messages.InvalidInputFor, Messages.UserId);
                _outputPort.WriteError(message);
                _logger.LogInformation(message);
                return;
            }

            _logger.LogInformation("Validation ok, retrieving user detail..");

            var result = await _userRepository.GetById(input.Id);

            if (result == null)
            {
                _logger.LogInformation(Messages.CouldNotFindResult);
                _outputPort.NotFound(Messages.CouldNotFindResult);

                return;
            }

            var output = new UserDetailsOutput
            {
                User = (User)result
            };

            this._outputPort.Standard(output);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetUserById(
            [FromServices] IMediator mediator,
            [FromServices] UserDetailsPresenter presenter,
            [FromRoute][Required] UserDetailsInput input)
        {
            await mediator.PublishAsync(input);

            return(presenter.Result);
        }
Exemplo n.º 3
0
        public ActionResult ProcessDetails(UserDetailsInput input, User user)
        {
            if (ModelState.IsValid)
            {
                using (var db = new DataContext(user))
                {
                    user.Name    = input.Name;
                    user.Email   = input.EmailAddress;
                    user.Twitter = input.Twitter;

                    db.SaveChanges();
                }
                return(RedirectToAction("Index", "Home", new { area = "organizer" }));
            }
            return(View("Details"));
        }
        public void Should_map_from_entity()
        {
            var entity = new User("foo")
            {
                Email    = "email",
                Id       = 2,
                Twitter  = "twitter",
                ImageUrl = "image url",
                Name     = "name"
            };

            var input = new UserDetailsInput(entity);

            input.EmailAddress.ShouldEqual(entity.Email);
            input.Name.ShouldEqual(entity.Name);
            input.Twitter.ShouldEqual(entity.Twitter);
        }