/// <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);
        }
Ejemplo n.º 2
0
        public async Task Handle(RegisterInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            var account = await accountService.CreateAccountAsync();

            var appUser = new ApplicationUser()
            {
                Email     = input.Email,
                UserName  = input.UserName,
                AccountId = ((Account)account).Id,
            };
            var res = await userManager.CreateAsync(appUser, input.Password);

            if (res.Succeeded)
            {
                await unitOfWork.Save();

                await signInManager.SignInAsync(appUser, false);

                var token = tokenGenerator.GenerateToken(appUser);
                BuildOutput(token, account, appUser);
            }
            else
            {
                var message = res.Errors.Select(x => x.Description).Aggregate((a, b) => a + "\n" + b.ToString());
                outputPort.WriteError(message);
            }
        }
Ejemplo n.º 3
0
        public async Task Handle(LoginInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            var res = await signInManager.PasswordSignInAsync(
                input.UserName,
                input.Password,
                false,
                false);

            if (res.Succeeded)
            {
                var appUser = await userManager.FindByNameAsync(input.UserName);

                var token = tokenFactory.GenerateToken(appUser);
                BuildOutput(token, appUser);
            }
            else
            {
                outputPort.WriteError("Not found");
            }
        }
Ejemplo n.º 4
0
        public async Task Handle(DeleteTableInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            try
            {
                var table = await tableRepository.GetTableAsync(input.TableId, input.AccountId);

                foreach (var a in table.GetTasks())
                {
                    a.Delete();
                }
                table.Delete();

                await unitOfWork.Save();

                BuildOutput(table);
            }
            catch (Exception e)
            {
                outputPort.WriteError(e.Message);
            }
        }
        /// <summary>
        /// The Execute
        /// </summary>
        /// <param name="input">The input<see cref="RegisterUserInput"/></param>
        /// <returns>The <see cref="Task"/></returns>
        public async Task Execute(RegisterUserInput input)
        {
            if (input is null)
            {
                _outputPort.WriteError(Messages.InputIsNull);
                _logger.LogInformation("Input is null");
                return;
            }


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

            input.User.Guid = Guid.NewGuid().ToString();

            await _userRepository.Insert(input.User);

            var lastInsertedId = 1;

            if (lastInsertedId <= 0)
            {
                _logger.LogInformation(Messages.CouldNotRegister);
                this._outputPort.NotFound(Messages.CouldNotRegister);

                return;
            }

            var output = new RegisterUserOutput
            {
                Id = lastInsertedId
            };

            _outputPort.Standard(output);
        }
        public async Task Handle(GetTableDetailsInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            try
            {
                var table = await tableRepository.GetTableAsync(input.TableId, input.AccountId);

                BuildOutput(table);
            }
            catch (Exception e)
            {
                outputPort.WriteError(e.Message);
            }
        }
Ejemplo n.º 7
0
        public async Task Handle(ChangeTableTitleInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            try
            {
                var table = await tableRepository.GetTableAsync(input.TableId, input.AccountId);

                table.ChangeName(input.Title);
                await unitOfWork.Save();

                BuildOutput(table);
            }
            catch (Exception e)
            {
                outputPort.WriteError(e.Message);
            }
        }
Ejemplo n.º 8
0
        public async Task Handle(AddTaskInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            try
            {
                var table = await tableRepository.GetTableAsync(input.TableId, input.AccountId);

                var task = await tableService.AddTask(table, input.TaskText);

                await unitOfWork.Save();

                BuildOutput(task);
            }
            catch (Exception e)
            {
                outputPort.WriteError(e.Message);
            }
        }
Ejemplo n.º 9
0
        public async Task Handle(CreateTableInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            try
            {
                var account = await accountRepository.GetAccountAsync(input.AccountId);

                var table = await tableService.CreateTable(input.TableName, account);

                await unitOfWork.Save();

                BuildOutput(table);
            }
            catch (Exception e)
            {
                outputPort.WriteError(e.Message);
            }
        }
Ejemplo n.º 10
0
        public async Task Handle(GetAccountDetailsInput input)
        {
            if (input is null)
            {
                outputPort.WriteError(Message.InputIsNull);
                return;
            }

            try
            {
                var appUser = await userManager.Users
                              .FirstOrDefaultAsync(x => x.AccountId.Equals(input.AccountId));

                var account = await accountRepository.GetAccountAsync(input.AccountId);

                BuildOutput(account, appUser);
            }
            catch
            {
            }
        }