Exemplo n.º 1
0
        // 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());
        }
Exemplo n.º 2
0
        // 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());
            }
        }
Exemplo n.º 3
0
        // 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));
            }
        }
Exemplo n.º 4
0
        // 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
            }));
        }