public bool CreateLoan(LoanCreateDto loanToCreateDto)
        {
            var loanToCreate = MapConfig.Mapper.Map <Loan>(loanToCreateDto);

            _loanContext.Add(loanToCreate);
            return(Save());
        }
        public ActionResult <LoanReadDto> CreateLoan(LoanCreateDto loanCreateDto)
        {
            var loan = _repository.GetAllLoans()
                       .Where(l => (l.GameId == loanCreateDto.GameId) && (l.Status.Equals("Activo")))
                       .FirstOrDefault();

            if (loan != null)
            {
                loan.Status = "Devolvido";
                _repository.UpdateLoan(loan);
                _repository.saveChanges();
            }

            var loanToCreate = _mapper.Map <Loan>(loanCreateDto);

            loanToCreate.Status         = "Activo";
            loanToCreate.DataEmprestimo = new DateTime();

            _repository.CreateLoan(loanToCreate);
            _repository.saveChanges();

            var loanReadDto = _mapper.Map <LoanReadDto>(loanToCreate);

            return(CreatedAtRoute(nameof(GetLoanById), new { Id = loanReadDto.Id }, loanReadDto));
        }
Example #3
0
        public IActionResult CreateLoan([FromBody] LoanCreateDto newLoan)
        {
            if (newLoan == null)
            {
                return(BadRequest(ModelState));
            }

            if (_unitOfWork.LoanRepository.LoanExists(newLoan.Id))
            {
                ModelState.AddModelError("", "Such loan Exists");
                return(StatusCode(404, ModelState));
            }

            if (!_unitOfWork.LoanRepository.CreateLoan(newLoan))
            {
                ModelState.AddModelError("", $"Something went wrong saving the loan " + $"{newLoan.IssueDate}{newLoan.DateToReturn}");
                return(StatusCode(500, ModelState));
            }

            _unitOfWork.Commit();

            return(CreatedAtRoute("GetLoanById", new { loanId = newLoan.Id }, newLoan));
        }