public IHttpActionResult GetServiceByRentalId(int Id) { var serviceRental = _context.ServiceRentals.Include(s => s.Service) .Where(s => s.RentalId == Id).ToList(); var serviceRentalDto = new ServiceRentalDto() { RentalId = Id, ServiceRentals = new List <ServiceRentalAddingProps> { } }; foreach (var item in serviceRental) { serviceRentalDto.ServiceRentals.Add(new ServiceRentalAddingProps() { ServiceId = item.ServiceId, Name = item.Service.Name, Price = item.Service.Price, SumPrice = item.Service.Price * item.Quantity, Quantity = item.Quantity }); } return(Ok(serviceRentalDto)); }
public IHttpActionResult EditServiceRentals(ServiceRentalDto serviceRentalDto) { var rental = _context.Rentals.Where(r => r.RentalId == serviceRentalDto.RentalId).SingleOrDefault(); if (rental == null) { return(BadRequest("Invalid rental")); } var serviceRentalsInDb = _context.ServiceRentals.Where(s => s.RentalId == serviceRentalDto.RentalId).ToList(); var warehouse = _context.Warehouses.Include(s => s.Service).ToList(); foreach (var item in serviceRentalDto.ServiceRentals) { var serviceRental = serviceRentalsInDb.Where(s => s.ServiceId == item.ServiceId).Single(); if (item.Quantity == 0) { _context.ServiceRentals.Remove(serviceRental); } if (serviceRental.Quantity != item.Quantity) { //edit warehouse quantity warehouse.Single(w => w.Service.ServiceId == item.ServiceId).Quantity += serviceRental.Quantity - item.Quantity; //edit service rental quantity serviceRental.Quantity = item.Quantity; } } _context.SaveChanges(); return(Ok("Saved")); }
public IHttpActionResult AddServiceRental(ServiceRentalDto serviceRentalDto) { var rentalId = serviceRentalDto.RentalId; var rental = _context.Rentals.Where(r => r.RentalId == rentalId).SingleOrDefault(); var addedServices = _context.ServiceRentals.Where(s => s.RentalId == rentalId).ToList(); var warehouses = _context.Warehouses.Include(w => w.Service).ToList(); if (rental == null) { return(BadRequest("Invalid rental")); } if (warehouses.Count <= 0) { return(BadRequest("You need to restock the services before adding")); } foreach (var item in serviceRentalDto.ServiceRentals) { var addedService = addedServices.Where(s => s.ServiceId == item.ServiceId).SingleOrDefault(); if (addedService == null) { var service = _context.Services.Where(s => s.ServiceId == item.ServiceId).Single(); var serviceRental = new ServiceRental { Rental = rental, Service = service, Quantity = item.Quantity }; _context.ServiceRentals.Add(serviceRental); } else { addedService.Quantity += item.Quantity; } warehouses.Single(w => w.Service.ServiceId == item.ServiceId).Quantity -= item.Quantity; } _context.SaveChanges(); return(Json("Service added")); }