public PurchaseOrderServiceTest() { _calculatorRuleService = new CalculatorRuleService(new NullLoggerFactory()); _resellerRepository = new Mock <IResellerRepository>(); _repository = new Mock <IPurchaseOrderRepository>(); _service = new PurchaseOrderService(_resellerRepository.Object, _repository.Object, _calculatorRuleService, new NullLoggerFactory()); _validReseller = new Reseller() { Id = Guid.NewGuid(), CPF = "153.509.460-56", AutoApproved = true, Name = "Usuário [153.509.460-56]", Email = "*****@*****.**", Password = "******" }; _validNewNewPurchaseOrderModel = new NewPurchaseOrderModel() { CPF = _validReseller.CPF, Date = DateTime.Now.Date, Value = 600 }; TinyMapperConfiguration.AddTinyMapperConfiguration(null); }
public PurchaseOrderIntegrationTest(TestFixtures <Startup> fixture) { _fixture = fixture; _httpClient = fixture.Client; _validNewNewPurchaseOrderModel = new NewPurchaseOrderModel() { CPF = "153.509.460-56", Date = DateTime.Now.Date, Value = 600 }; }
public async Task <PurchaseOrder> Add(NewPurchaseOrderModel model) { Validate(model); var reseller = GetReseller(model.CPF); var status = reseller.AutoApproved ? Constants.PURCHASE_STATUS_APPROVED : Constants.PURCHASE_STATUS_WAITING_APPROVAL; var purchase = TinyMapper.Map <PurchaseOrder>(model); purchase.Id = Guid.NewGuid(); purchase.Status = status; purchase.ResellerId = reseller.Id; await _purchaseRepository.Add(purchase); _logger.LogInformation($"[PurchaseOrderService/Add] Compra {purchase.Id} adicionada"); return(purchase); }
public async Task <IActionResult> Post(NewPurchaseOrderModel model) { try { _logger.LogInformation("New Purchase"); var item = await _purchaseOrderService.Add(model); return(StatusCode(StatusCodes.Status201Created, TinyMapper.Map <PurchaseOrderModel>(item))); } catch (CashbackServiceException ex) { _logger.LogWarning($"BadRequest - {ex.Message}"); return(BadRequest(new { message = ex.Message })); } catch (Exception ex) { _logger.LogError($"Error - {ex.Message}"); return(StatusCode(StatusCodes.Status500InternalServerError, new { message = ex.Message })); } }
private void Validate(NewPurchaseOrderModel model) { if (model == null) { throw new CashbackServiceException(Messages.NullObject); } if (!Validators.CPFIsValid(model.CPF)) { throw new CashbackServiceException(Messages.ResellerCPFInvalid); } if (GetReseller(model.CPF) == null) { throw new CashbackServiceException(Messages.ResellerNotFoundByCPF); } if (model.Value <= 0) { throw new CashbackServiceException(Messages.PurchaseValueMustBeGreaterThanZero); } }