private VehicleModel DTOItemToModel(VehicleMakeModelDTO vehicleModelDTO)
        {
            VehicleModel tempItem = new VehicleModel();
            if (vehicleModelDTO != null)
            {
                tempItem.VehicleModelId = vehicleModelDTO.VehicleModelId;

                if (!string.IsNullOrEmpty(vehicleModelDTO.ModelName))
                    tempItem.VehicleModelName = vehicleModelDTO.ModelName;
            }
            return tempItem;
        }
        public static int Save(VehicleModel vehicleModeltoSave)
        {
            int result = 0;
            ExecuteTypeEnum queryId = ExecuteTypeEnum.InsertItem;

            //check for Valid Person - if existis, UPDATE else INSERT
            // 10 = INSERT_ITEM
            //20 = UPDATE_ITEM

            if (vehicleModeltoSave.VehicleModelId > 0)
                queryId = ExecuteTypeEnum.UpdateItem;

            using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
            {
                using (SqlCommand myCommand = new SqlCommand("usp_ExecuteVehicleModel", myConnection))
                {
                    myCommand.CommandType = CommandType.StoredProcedure;
                    myCommand.Parameters.AddWithValue("@QueryId", queryId);

                    if (vehicleModeltoSave.VehicleModelId > 0)
                        myCommand.Parameters.AddWithValue("@VehicleModelId", vehicleModeltoSave.VehicleModelId);

                    if (vehicleModeltoSave.VehicleModelName != null)
                        myCommand.Parameters.AddWithValue("@VehicleModelName", vehicleModeltoSave.VehicleModelName);

                    if (vehicleModeltoSave.Make != null)
                        myCommand.Parameters.AddWithValue("@VehicleMakeId", vehicleModeltoSave.Make.VehicleMakeId);


                    //add return Output parameter to command object
                    myCommand.Parameters.Add(HelperDAL.GetReturnParameterInt("returnValue"));

                    myConnection.Open();
                    myCommand.ExecuteNonQuery();

                    //get return Value from stored Procedure and return ID
                    result = (int)myCommand.Parameters["@returnValue"].Value;
                }
                myConnection.Close();
            }
            return result;
        }
        private VehicleMakeModelDTO ModelItemToDTO(VehicleModel vehicleModel)
        {
            VehicleMakeModelDTO tempItem = new VehicleMakeModelDTO();
            if(vehicleModel != null)
            {
                tempItem.VehicleModelId = vehicleModel.VehicleModelId;

                if (!string.IsNullOrEmpty(vehicleModel.VehicleModelName))
                    tempItem.ModelName = vehicleModel.VehicleModelName;

               if(vehicleModel.Make != null)
               {
                   tempItem.VehicleMakeId = vehicleModel.Make.VehicleMakeId;

                   if(!string.IsNullOrEmpty(vehicleModel.Make.VehicleMakeName))
                       tempItem.MakeName = vehicleModel.Make.VehicleMakeName;
               }
            }
            return tempItem;
        }
        public static int SaveModel(int vehicleMakeId, VehicleModel vehicleModeltoSave)
        {
            BrokenRuleCollection saveBrokenRules = new BrokenRuleCollection();

            if (vehicleMakeId<=0)
                saveBrokenRules.Add("Vehicle Make Id", "Vehicle Model must be associated with a valid VehicleMake Id .");

            if (vehicleModeltoSave == null)
                saveBrokenRules.Add("Vehicle Model", "Invalid VehicleModel Object.");
            else
            {
                if (string.IsNullOrEmpty(vehicleModeltoSave.VehicleModelName))
                    saveBrokenRules.Add("Vehicle Model Name", "Value is Required.");
            }
            if (saveBrokenRules.Count() > 0)
                throw new BLLException("Validation rules failed.", saveBrokenRules);
            else
            {
                vehicleModeltoSave.Make = new VehicleMake { VehicleMakeId = vehicleMakeId };
                return VehicleModelDAL.Save(vehicleModeltoSave);
            }

        }
        public static int SaveModel(string vehicleMakeName, VehicleModel vehicleModeltoSave)
        {
            BrokenRuleCollection saveBrokenRules = new BrokenRuleCollection();

            if (string.IsNullOrEmpty(vehicleMakeName))
                saveBrokenRules.Add("Vehicle Make Name", "Vehicle Model must be associated with a valid Vehicle Make Name.");

            if (vehicleModeltoSave == null)
                saveBrokenRules.Add("Vehicle Model", "Invaild VehicleModel object.");
            else
            {
                if (string.IsNullOrEmpty(vehicleModeltoSave.VehicleModelName))
                    saveBrokenRules.Add("Vehicle Make Name", "Value is Required.");
            }
            if (saveBrokenRules.Count() > 0)
                throw new BLLException("Validation rules failed.", saveBrokenRules);
            else
            {
                //check to make sure name dosent exist
                VehicleMake itemMake = GetMake(vehicleMakeName);
                if (itemMake == null)
                {
                    itemMake = new VehicleMake();
                    itemMake.VehicleMakeId = SaveMake(new VehicleMake{VehicleMakeName = vehicleMakeName});
                }
               
                vehicleModeltoSave.Make = itemMake;
                return VehicleModelDAL.Save(vehicleModeltoSave);
               
            }

        }
        private static VehicleModel FillDataRecord(IDataRecord myDataRecord)
        {
            VehicleModel myObject = new VehicleModel();
            myObject.VehicleModelId = myDataRecord.GetInt32(myDataRecord.GetOrdinal("VehicleModelId"));
            myObject.VehicleModelName = myDataRecord.GetString(myDataRecord.GetOrdinal("VehicleModelName"));

            VehicleMake vehicleMake = new VehicleMake();
            vehicleMake.VehicleMakeId = myDataRecord.GetInt32(myDataRecord.GetOrdinal("VehicleMakeId"));

            if (!myDataRecord.IsDBNull(myDataRecord.GetOrdinal("VehicleMakeName")))
                vehicleMake.VehicleMakeName = myDataRecord.GetString(myDataRecord.GetOrdinal("VehicleMakeName"));
            
            myObject.Make = vehicleMake;

            return myObject;
        }