/// <summary>
 /// edit a car info in the db
 /// </summary>
 /// <param name="Carlicenceparam">the car licence number</param>
 /// <param name="carparam">a car modle contains all the car data</param>
 /// <returns>true if the actions sucseed false if it didnt</returns>
 public static bool EditCar(string Carlicenceparam, CarModel carparam)
 {
     try
     {
         using (CarRentalDbV2Entities db = new CarRentalDbV2Entities())
         {
             CarsTable      dbcar     = db.CarsTables.SingleOrDefault(a => a.CarlicenseNumber == Carlicenceparam);
             CarsTypesTable dbcarType = db.CarsTypesTables.SingleOrDefault(a => a.Model == carparam.CarType.Model);
             BranchesTable  dbBrance  = db.BranchesTables.SingleOrDefault(a => a.BranceName == carparam.CarLocation.BranceName);
             if (dbcar == null || dbcarType == null || dbBrance == null)
             {
                 return(false);
             }
             dbcar.CarImg           = carparam.CarImg;
             dbcar.CarLocation      = dbBrance.ID;
             dbcar.CarKilometer     = carparam.CarKilometer;
             dbcar.CarlicenseNumber = carparam.CarlicenseNumber;
             dbcar.CarStatus        = carparam.CarStatus;
             dbcar.CarType          = dbcarType.ID;
             db.SaveChanges();
             return(true);
         }
     }
     catch
     {
         return(false);
     }
 }
        /// <summary>
        /// add a new car to the db
        /// </summary>
        /// <param name="NewCar">the car modle object</param>
        /// <returns> true if the action sucseed false if it didnt</returns>
        public static bool AddNewCar(CarModel NewCar)
        {
            try
            {
                using (CarRentalDbV2Entities db = new CarRentalDbV2Entities())
                {
                    BranchesTable  dbBrance  = db.BranchesTables.FirstOrDefault(a => a.BranceName == NewCar.CarLocation.BranceName);
                    CarsTypesTable dbCarType = db.CarsTypesTables.FirstOrDefault(a => a.Model == NewCar.CarType.Model);
                    if (dbBrance == null || dbCarType == null)
                    {
                        return(false);
                    }
                    CarsTable NewdbCar = new CarsTable
                    {
                        CarLocation      = dbBrance.ID,
                        CarType          = dbCarType.ID,
                        CarKilometer     = NewCar.CarKilometer,
                        CarImg           = NewCar.CarImg,
                        CarStatus        = NewCar.CarStatus,
                        CarlicenseNumber = NewCar.CarlicenseNumber,
                    };

                    db.CarsTables.Add(NewdbCar);
                    db.SaveChanges();
                    return(true);
                }
            }
            catch
            {
                return(false);
            }
        }
 /// <summary>
 /// gets a spesific branch acording to a branch name
 /// </summary>
 /// <param name="BranchNameparam">a string from the client side</param>
 /// <returns> a branch model object</returns>
 public static BrancheModel GetSpesificBranche(string BranchNameparam)
 {
     try
     {
         using (CarRentalDbV2Entities db = new CarRentalDbV2Entities())
         {
             BranchesTable dbBranch = db.BranchesTables.SingleOrDefault(a => a.BranceName == BranchNameparam);
             if (dbBranch == null)
             {
                 return(null);
             }
             return(new BrancheModel
             {
                 BranceName = dbBranch.BranceName,
                 PositionX = dbBranch.PositionX,
                 PositionY = dbBranch.PositionY,
                 Adress = dbBranch.Adress
             });
         }
     }
     catch
     {
         return(null);
     }
 }