private Response CheckToAddOrUpdate(VehicleRentalPrice vehicleRentalPrice)
        {
            if (vehicleRentalPrice.StartDate > vehicleRentalPrice.EndDate)
            {
                return(Response.Fail("Bitiş tarihi başlangıç tarihinden ileri bir tarih olmamalıdır"));
            }

            int numberOfRecordsInTheSameDateRange =
                (from p in Context.VehicleRentalPrice
                 where p.VehicleId == vehicleRentalPrice.VehicleId && p.Id != vehicleRentalPrice.Id
                 &&
                 (
                     (p.StartDate <= vehicleRentalPrice.StartDate && p.EndDate >= vehicleRentalPrice.StartDate)
                     ||
                     (p.StartDate >= vehicleRentalPrice.StartDate && p.EndDate <= vehicleRentalPrice.EndDate)
                     ||
                     (p.StartDate <= vehicleRentalPrice.EndDate && p.EndDate >= vehicleRentalPrice.EndDate)
                     ||
                     (p.StartDate <= vehicleRentalPrice.StartDate && p.EndDate >= vehicleRentalPrice.EndDate)
                 ) &&
                 p.RentalPeriodId == vehicleRentalPrice.RentalPeriodId
                 select p
                ).Count();

            if (numberOfRecordsInTheSameDateRange > 0)
            {
                return(Response.Fail("Bu tarih aralığında kayıtlı başka bir tarife vardır"));
            }

            return(Response.Success());
        }
        // GET: VehicleRentalPriceController/Create
        public ActionResult Create(int vehicleId)
        {
            ViewBag.RentalPeriods = GetRentalPeriods();
            SetVehicleToViewBag(vehicleId);

            VehicleRentalPrice model = new VehicleRentalPrice();

            model.VehicleId = vehicleId;

            return(View(model));
        }
        public Response Add(VehicleRentalPrice vehicleRentalPrice)
        {
            var checkReponse = CheckToAddOrUpdate(vehicleRentalPrice);

            if (!checkReponse.IsSuccess)
            {
                return(checkReponse);
            }

            Context.VehicleRentalPrice.Add(vehicleRentalPrice);
            Context.SaveChanges();

            return(Response.Success("Kiralama tarifesi başarıyla kaydedildi"));
        }
 public ActionResult Create(VehicleRentalPrice vehicleRentalPrice)
 {
     try
     {
         var response = VehicleRentalPriceService.Add(vehicleRentalPrice);
         ViewBag.Response = response;
     }
     catch
     {
         ViewBag.Response = Domain.DTOs.Response.Fail("Bir hata oluştu");
     }
     finally
     {
         SetVehicleToViewBag(vehicleRentalPrice.VehicleId);
         ViewBag.RentalPeriods = GetRentalPeriods();
     }
     return(View(vehicleRentalPrice));
 }
        public Response Update(VehicleRentalPrice vehicleRentalPrice)
        {
            var checkReponse = CheckToAddOrUpdate(vehicleRentalPrice);

            if (!checkReponse.IsSuccess)
            {
                return(checkReponse);
            }

            var vehicleRentalPriceToUpdate = GetById(vehicleRentalPrice.Id);

            vehicleRentalPriceToUpdate.StartDate      = vehicleRentalPrice.StartDate;
            vehicleRentalPriceToUpdate.EndDate        = vehicleRentalPrice.EndDate;
            vehicleRentalPriceToUpdate.Price          = vehicleRentalPrice.Price;
            vehicleRentalPriceToUpdate.RentalPeriodId = vehicleRentalPrice.RentalPeriodId;
            Context.SaveChanges();

            return(Response.Success("Kiralama tarifesi başarıyla güncellendi"));
        }