// PUT: api/RentalAgency/UpdateBranch public async Task <IActionResult> UpdateBranch([FromBody] UpdateBranchModel branchModel) { RentalAgencyBranch branch = await dbContext.RentalAgencyBranches .Include(rab => rab.Location) .FirstOrDefaultAsync(rab => rab.Id == branchModel.Id); if (branch == null) { return(NotFound()); } branch.NearAirpot = branchModel.NearAirport == "true" ? true : false; branch.Location.Adress = branchModel.Address; branch.Location.City = branchModel.City; branch.Location.Country = branchModel.Country; if (!TimeComparator(branchModel.WorksFrom, branch.WorkTimeFrom)) { branch.WorkTimeFrom = String2Time(branchModel.WorksFrom); } if (!TimeComparator(branchModel.WorksTo, branch.WorkTimeTo)) { branch.WorkTimeTo = String2Time(branchModel.WorksTo); } dbContext.RentalAgencyBranches.Update(branch); dbContext.SaveChanges(); return(NoContent()); }
// GET: api/Car/GetCars public async Task <IActionResult> GetCars([FromQuery] string stringId) { int branchId; Int32.TryParse(stringId, out branchId); RentalAgencyBranch branch = await dbContext.RentalAgencyBranches .Include(rab => rab.Cars) .FirstOrDefaultAsync(rab => rab.Id == branchId); if (branch != null) { foreach (Car car in branch.Cars) { string[] dbImage = car.Image.Split('%'); byte[] image = await System.IO.File.ReadAllBytesAsync(dbImage[0]); car.Image = "data:image/" + dbImage[1] + ";base64," + Convert.ToBase64String(image); } return(Ok(branch.Cars)); } else { return(BadRequest()); } }
// POST: api/RentalAgency/AddBranch public async Task <IActionResult> AddBranch([FromBody] BranchModel model) { string admin = User.Claims.First(claim => claim.Type == "UserName").Value; var agency = await dbContext.RentalAgencies.FirstOrDefaultAsync(ra => ra.AdminUserName == admin); RentalAgencyBranch branch = new RentalAgencyBranch { ContactNumber = model.ContactNumber, NearAirpot = model.NearAirport == "true" ? true : false, WorkTimeFrom = String2Time(model.WorksFrom), WorkTimeTo = String2Time(model.WorksTo), Location = new Location { Adress = model.Address, Country = model.Country, City = model.City }, RentalAgencyId = agency.Id }; try { var result = await dbContext.RentalAgencyBranches.AddAsync(branch); //dbContext.Entry(agency).State = EntityState.Modified; dbContext.SaveChanges(); return(Ok(result.Entity)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
// GET: api/CarReservation/ReservationInfo public async Task <IActionResult> GetInfo([FromQuery] ToReserve info) { int carId; Int32.TryParse(info.CarId, out carId); Car car = await dbContext.Cars.FindAsync(carId); if (car == null) { return(BadRequest()); } RentalAgencyBranch branch = await dbContext.RentalAgencyBranches.FindAsync(car.RentalAgencyBranchId); if (branch == null) { return(BadRequest()); } RentalAgency agency = await dbContext.RentalAgencies .Include(ra => ra.Branches) .ThenInclude(rab => rab.Location) .Include(ra => ra.Logo) .FirstOrDefaultAsync(ra => ra.Id == branch.RentalAgencyId); if (agency == null) { return(BadRequest()); } List <Location> locations = new List <Location>(); foreach (RentalAgencyBranch rab in agency.Branches) { if (rab.Id != branch.Id) { locations.Add(rab.Location); } } int reservationLength = ResLengthCalculator(info.FromDate, info.ToDate); if (info.FromTime == null || info.FromTime == "null") { info.FromTime = "09:00"; } if (info.ToTime == null || info.ToTime == "null") { info.ToTime = "18:00"; } byte[] image = await System.IO.File.ReadAllBytesAsync(agency.Logo.ImageLocation); return(Ok(new { locations, logo = "data:image/png;base64," + Convert.ToBase64String(image), totalCost = ++reservationLength * car.PricePerDay, fromTime = info.FromTime, toTime = info.ToTime })); }