public async Task <ActionResult <CustomerModel> > PostAsync([FromBody] CustomerModel model) { try { var entity = _mapper.Map <Customer>(model); if (await _repository.HasCustomerAsync(UserName)) { return(BadRequest("Duplicate Customer")); } entity.UserName = UserName; _repository.Add(entity); if (await _repository.SaveAllAsync()) { return(CreatedAtRoute(new { }, _mapper.Map <CustomerModel>(entity))); } } catch (Exception ex) { _logger.LogWarning("Failed to save customer", ex); } return(BadRequest("Could not create new Customer")); }
public void Post(int[] albumsIds) { int currentWeekday = (int)((DayOfWeek)Enum.Parse(typeof(DayOfWeek), DateTime.Now.DayOfWeek.ToString())); IList <Albums> albums = _repoAlbums.Find(c => albumsIds.Contains(c.AlbumsId)).ToList(); IList <CashBack> cashback = _repoCash.Find(c => c.Weekday == currentWeekday).ToList(); Albums album; Sales sale = new Sales(); sale.Date = DateTime.Now; AlbumsSold albumSold; foreach (int id in albumsIds) { album = albums.Where(c => c.AlbumsId == id).FirstOrDefault(); if (album != null) { albumSold = new AlbumsSold(); albumSold.AlbumsId = album.AlbumsId; albumSold.Price = album.Price; albumSold.CashBack = cashback.Where(c => c.Genre == album.Genre).FirstOrDefault().value; sale.Albums.Add(albumSold); } } _repo.Add(sale); _repo.SaveChanges(); }
public Task <bool> Handle(RegisterNewSalesCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(Task.FromResult(false)); } var Sales = new Sales(Guid.NewGuid(), message.SalesDate, message.TotalAmount, message.TotalCashback); decimal totalAmount = 0; decimal totalCashback = 0; Sales.Lines = new List <SalesLine>(); foreach (var item in message.SalesLines) { var disc = _discMusicRepository.GetById(item.IdDisc); if (disc == null) { NotifyValidationErrors(message); return(Task.FromResult(false)); } var cashback = _cashbackRepository.GetByWeekDay(disc.IdGender, Sales.SalesDate); var salesPrice = item.Quantity * disc.Price; var cashbackAmount = salesPrice * cashback.Percent; totalAmount += salesPrice; totalCashback += cashbackAmount; Sales.Lines.Add(new SalesLine(Guid.NewGuid(), Sales.Id, item.IdDisc, disc.Name, item.Quantity, disc.Price, salesPrice, cashbackAmount)); } Sales.TotalAmount = totalAmount; Sales.TotalCashback = totalCashback; _salesRepository.Add(Sales); if (Commit()) { Bus.RaiseEvent(new SalesRegisteredEvent( Sales.Id, Sales.SalesDate, Sales.TotalAmount, Sales.TotalCashback, Sales.Lines.ToList().ConvertAll(x => new SalesLineRegisteredEvent( x.Id, x.IdSales, x.IdItem, x.Quantity, x.PriceUnit, x.SalesPrice, x.Cashback)))); } return(Task.FromResult(false)); }
public async Task <ActionResult <TicketSaleModel> > Post(int customerId, [FromBody] TicketRequestModel model) { try { var customer = await _repository.GetCustomerAsync(customerId); if (customer == null) { return(NotFound()); } // Check Ticket Availability var result = await _ticketService.ReserveTickets(model.TicketIds); if (result) { // Process Creditcard (no/op in example) // Finalize Tickets var finalizedTickets = await _ticketService.FinalizeTickets(model.TicketIds); if (finalizedTickets.Success) { // Create the Sales Record var ticketSale = new TicketSale() { Customer = customer, Completed = true, ApprovalCode = "FOOBAR", TransactionNumber = "123456", PaymentType = "Credit Card", TransactionTotal = finalizedTickets.Tickets.Sum(t => (decimal)t.Price), Tickets = finalizedTickets.Tickets.ToArray() }; _repository.Add(ticketSale); if (await _repository.SaveAllAsync()) { return(CreatedAtRoute(new { customerId = customerId, id = ticketSale.Id }, _mapper.Map <TicketSaleModel>(ticketSale))); } } } } catch (Exception ex) { _logger.LogError("Failed to create TicketRequest", ex); } return(BadRequest()); }
public async Task SaveSale(OrderChangedMessage order) { if (order.State == Orders.Contract.Enums.OrderState.Paid) { var sales = new Sales { Date = DateTime.Now, Price = order.Value, SaleId = order.OrderId, StoreId = order.StoreId }; await _salesRepository.Add(sales); } }
public IActionResult Create(Sales model) { if (ModelState.IsValid) { Sales newSal = new Sales { EmpId = model.EmpId, CustOrderId = model.CustOrderId, Total = model.Total, Paid = model.Paid, Due = model.Due, DeliveryDate = model.DeliveryDate }; _salesRepository.Add(newSal); return(RedirectToAction("Index")); } return(View()); }
public void Execute(CreateSaleModel model) { var date = _dateService.GetDate(); var partner = _partnersRepository.Get(model.PartnerId); var customer = _customerRepository.Get(model.CustomerId); var products = new List <Product>(); foreach (var productId in model.ProductIdsQuantities.Keys) { var product = _productRepository.Get(productId); products.Add(product); } var newSale = _saleFactory.Create(date, customer, partner, products, model.ProductIdsQuantities); _salesRepository.Add(newSale); _salesRepository.Save(); }
public SalesViewModel Add(SalesViewModel sales) { _salesRepository.Add(Mapper.Map <Sales>(sales)); return(sales); }