public IActionResult Create([FromBody] SaleViewModel sale) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Sale _newSale = Mapper.Map <SaleViewModel, Sale>(sale); _newSale.CreateDate = DateTime.Now; _saleRepository.Add(_newSale); _saleRepository.Commit(); IEnumerable <Operation> operations = _operationRepository.FindBy(x => x.SellerId == sale.SellerId).ToList(); var cardInit = operations.FirstOrDefault(x => x.OperationType == OperationType.CardInitiate); var cardSale = operations.FirstOrDefault(x => x.OperationType == OperationType.Sale); Report newReport = new Report() { Discount = sale.SaleType == SaleType.CardInitiate ? (cardInit != null ? cardInit.Discount : 5) : (sale.Price * (cardSale != null ? cardSale.Discount : 10) / 100), CreateDate = DateTime.Now, UpdateDate = DateTime.Now, IsActive = true, IsDeleted = false, OperationType = sale.SaleType == SaleType.CardInitiate ? OperationType.CardInitiate.ToString() : OperationType.Sale.ToString(), SellerId = sale.SellerId }; _reportRepository.Add(newReport); _reportRepository.Commit(); sale = Mapper.Map <Sale, SaleViewModel>(_newSale); CreatedAtRouteResult result = CreatedAtRoute("GetSale", new { controller = "Sale", id = sale.Id }, sale); return(result); }