Ejemplo n.º 1
0
 public async Task <IActionResult> Post([FromBody] CreateLoanDTO loan)
 {
     logger.LogInformation("{username} executed Post({loan}).", User.Identity.Name, loan);
     return(await TryOrError(logger, async() =>
     {
         var id = await service.InsertLoanAsync(loan);
         return new CreatedAtActionResult("Get", "Loan", new { id }, new { id });
     }));
 }
Ejemplo n.º 2
0
        public async Task <ActionResult> Post([FromBody] CreateLoanDTO loan)
        {
            try
            {
                await _loanService.Post(loan);

                return(Accepted());
            }
            catch (Exception e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }
Ejemplo n.º 3
0
        public async Task <int> InsertLoanAsync(CreateLoanDTO dto)
        {
            if (dto is null)
            {
                throw new ArgumentNullException(nameof(dto));
            }

            if (dto.EmployeeId <= 0)
            {
                throw new ArgumentException($"{nameof(dto.EmployeeId)} cannot be less than 1.");
            }

            var employee = await employeeRepo.GetEmployeeAsync(dto.EmployeeId);

            if (employee is null)
            {
                throw new KeyNotFoundException($"Could not find employee with Id {dto.EmployeeId}.");
            }
            else if (!employee.Status.CanLend)
            {
                throw new LendingProhibitedException();
            }

            if (dto.DateFrom > dto.DateTo)
            {
                throw new ArgumentException($"{nameof(dto.DateFrom)} cannot be greater than {nameof(dto.DateTo)}.");
            }

            return(await loanRepo.InsertLoanAsync(
                       new Loan
            {
                EmployeeId = dto.EmployeeId,
                DateFrom = dto.DateFrom,
                DateTo = dto.DateTo,
                RecipientId = dto.RecipientId,
                Note = dto.Note
            },
                       dto.ItemIds ?? new int[0],
                       dto.GenericItemIds ?? new int[0]
                       ));
        }
Ejemplo n.º 4
0
 public async Task Post(CreateLoanDTO loan)
 {
     var registerCommand = _Mapper.Map <RegisterNewLoanCommand>(loan);
     await _Bus.SendCommand(registerCommand);
 }