Esempio n. 1
0
        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);
        }