public async Task <IActionResult> CreateReservation(FilterCar filterCar) { if (filterCar.City1 != "" && filterCar.City2 != "" && filterCar.endDay != null && filterCar.startDay != null && filterCar.Mark != "" && filterCar.Number.ToString() != "") { ReservationCar rc = new ReservationCar(); rc.City1 = filterCar.City1; rc.City2 = filterCar.City2; rc.Day1 = filterCar.startDay; rc.Day2 = filterCar.endDay; // rc.Car = filterCar.Id; //ApplicationUser user = await _userManager.Users.Include(x => x.ReservationCars).ThenInclude(x => x.Car).ThenInclude(x => x.Reservations).SingleOrDefaultAsync(x => x.Id == filterCar.Id); // var pomUser = _userManager.Users.Include(x => x.ReservationCars).ThenInclude(x => x.Car).SingleOrDefault(x => x.Id == filterCar.IdUser); var pomCar = context.Cars.Include(x => x.CarCompany).ToList().SingleOrDefault(x => x.Id == filterCar.Id); var pomUser = await _userManager.FindByIdAsync(filterCar.IdUser); rc.IdCar = pomCar.Id; rc.IdUser = pomUser.Id; rc.IdCompany = pomCar.CarCompany.Id.ToString(); TimeSpan t = filterCar.endDay - filterCar.startDay; var elapsedDays = Math.Abs(t.Days); var price = elapsedDays * Int32.Parse(pomCar.RentPerDay); rc.Price = price; context.ReservationCar.Add(rc); bool saveFailed; do { saveFailed = false; try { await context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { saveFailed = true; return(null); } catch (Exception e) { throw; } } while (saveFailed); return(Ok()); } else { return(BadRequest()); } }
static void Main(string[] args) { /* * SayHelloToMe sayHello = new SayHelloToMe( DoSomething.GetHelloWorld ); * SayHelloToMeWithMyName sayMyName = new SayHelloToMeWithMyName( DoSomething.GetHelloWorldWithName ); * sayHello(); * * sayMyName += DoSomething.GetHelloWorldToString; * sayMyName( "Sebastiano" );*/ CarRepo myCars = new CarRepo(); foreach (Car car in myCars.GetCarsDB()) { Console.WriteLine("Macchina {0}, Modello {1}", car.Name, car.Model); } FilterCar myDelegate = new FilterCar(myCars.FilterCarByModel); var myFilteredCar = myDelegate("A72"); Console.WriteLine("\n\n"); Console.WriteLine(myDelegate.Method); foreach (Car car in myFilteredCar) { Console.WriteLine("Macchina {0}, Modello {1}", car.Name, car.Model); } myDelegate = myCars.FilterCarByName; myFilteredCar = myDelegate("Ciccio"); Console.WriteLine("\n\n"); Console.WriteLine(myDelegate.Method); foreach (Car car in myFilteredCar) { Console.WriteLine("Macchina {0}, Modello {1}", car.Name, car.Model); } //Func<string, List<Car>> FilterCar; Console.ReadLine(); }
public async Task <ActionResult <IEnumerable <CarFromModel> > > SearchAvailableCar(FilterCar filterCar) { List <CarFromModel> carFromModels = new List <CarFromModel>(); CarCompany cc = new CarCompany(); var listCompany = context.BranchOffices.Include(x => x.Id_company).ToList().SingleOrDefault(x => x.Id == Int32.Parse(filterCar.Id)); if (listCompany == null) { var company = context.Companies.Find(Int32.Parse(filterCar.Id)); cc = (CarCompany)company; } else { cc = listCompany.Id_company; } var rezervacije = context.ReservationCar.ToList(); List <ReservationCar> filterReservation = new List <ReservationCar>(); var pom = context.Carcompanies.Include(x => x.Cars).ToList().SingleOrDefault(x => x.Id == cc.Id).Cars.ToList(); //PROVERITI DA LI SU KOLA NA POPUSTU var listaVozilaNaPopustu = context.DiscountCars.ToList(); foreach (var popust in listaVozilaNaPopustu) { foreach (var auto in pom) { if (auto.Id == popust.carId) { var poredjenje1 = DateTime.Compare(filterCar.startDay, popust.StartDay); var poredjenje2 = DateTime.Compare(filterCar.endDay, popust.StartDay); if (poredjenje1 < 0 && poredjenje2 < 0) { continue; } else if (poredjenje1 > 0 && poredjenje2 > 0) { var poredjenje3 = DateTime.Compare(filterCar.startDay, popust.EndDay); var poredjenje4 = DateTime.Compare(filterCar.endDay, popust.EndDay); if (poredjenje3 > 0 && poredjenje4 > 0) { continue; } else { carFromModels = null; return(carFromModels); } } else { carFromModels = null; return(carFromModels); } } } } var pom1 = pom.FindAll(x => x.Mark.ToLower() == filterCar.Mark.ToLower()); if (pom1.Count != 0) { var pom2 = pom1.FindAll(x => x.Seat == filterCar.Number.ToString()); if (pom2.Count != 0) { if (context.ReservationCar.ToList().Count == 0) { foreach (var cars in pom2) { CarFromModel cfm = new CarFromModel(); cfm.AirConditioning = cars.AirConditioning; cfm.Bags = Int32.Parse(cars.Bags); cfm.Door = Int32.Parse(cars.Door); cfm.Fuel = cars.Fuel; cfm.Gearshift = cars.Gearshift; cfm.Id = cars.Id; cfm.ImageCar = cars.ImageCar; cfm.Mark = cars.Mark; cfm.RentPerDay = Int32.Parse(cars.RentPerDay); cfm.Seat = Int32.Parse(cars.Seat); cfm.YearProduction = Int32.Parse(cars.YearProduction); cfm.Rating = cars.AverageRating.ToString(); carFromModels.Add(cfm); } } else { foreach (var cars in pom2) { var rez = rezervacije.FindAll(x => x.IdCar == cars.Id); Model.ReservationCar rc = new Model.ReservationCar(); if (rez.Count() != 0) { foreach (var rezervacija in rez) { int result = DateTime.Compare(filterCar.startDay, rezervacija.Day1); int result2 = DateTime.Compare(filterCar.endDay, rezervacija.Day1); if (result < 0 && result2 < 0) { continue; } else if (result > 0 && result2 > 0) { int result3 = DateTime.Compare(filterCar.startDay, rezervacija.Day2); int result4 = DateTime.Compare(filterCar.endDay, rezervacija.Day2); if (result3 > 0 && result4 > 0) { continue; } else { carFromModels = null; return(carFromModels); } } else { carFromModels = null; return(carFromModels); } } TimeSpan t = filterCar.endDay - filterCar.startDay; var elapsedDays = t.Days; var price = elapsedDays * Int32.Parse(cars.RentPerDay); CarFromModel cfm = new CarFromModel(); cfm.AirConditioning = cars.AirConditioning; cfm.Bags = Int32.Parse(cars.Bags); cfm.Door = Int32.Parse(cars.Door); cfm.Fuel = cars.Fuel; cfm.Gearshift = cars.Gearshift; cfm.Id = cars.Id; cfm.ImageCar = cars.ImageCar; cfm.Mark = cars.Mark; cfm.RentPerDay = Int32.Parse(cars.RentPerDay); cfm.Seat = Int32.Parse(cars.Seat); cfm.YearProduction = Int32.Parse(cars.YearProduction); cfm.Price = price.ToString(); cfm.Rating = cars.AverageRating.ToString(); carFromModels.Add(cfm); } else { foreach (var car in pom2) { CarFromModel cfm = new CarFromModel(); cfm.AirConditioning = car.AirConditioning; cfm.Bags = Int32.Parse(car.Bags); cfm.Door = Int32.Parse(car.Door); cfm.Fuel = car.Fuel; cfm.Gearshift = car.Gearshift; cfm.Id = car.Id; cfm.ImageCar = car.ImageCar; cfm.Mark = car.Mark; cfm.RentPerDay = Int32.Parse(car.RentPerDay); cfm.Seat = Int32.Parse(car.Seat); cfm.YearProduction = Int32.Parse(car.YearProduction); cfm.Rating = cars.AverageRating.ToString(); carFromModels.Add(cfm); } return(carFromModels); } } return(carFromModels); } } else { return(carFromModels); } } else { return(carFromModels); } return(carFromModels); }