Skip to content

Instantly share code, notes, and snippets.

@thePunderWoman
Created December 3, 2012 21:22
Show Gist options
  • Save thePunderWoman/4198183 to your computer and use it in GitHub Desktop.
Save thePunderWoman/4198183 to your computer and use it in GitHub Desktop.
VehicleConfig comparison
internal ACESConfigs getVehicleConfigs(int BaseVehicleID, int SubmodelID) {
ACESConfigs acesconfigs = new ACESConfigs();
CurtDevDataContext db = new CurtDevDataContext();
AAIA.VCDBDataContext vcdb = new AAIA.VCDBDataContext();
try {
BaseVehicle bv = db.BaseVehicles.Where(x => x.ID.Equals(BaseVehicleID)).First<BaseVehicle>();
Submodel submodel = db.Submodels.Where(x => x.ID.Equals(SubmodelID)).First<Submodel>();
List<ConfigAttributeType> attrtypes = db.ConfigAttributeTypes.Where(x => x.AcesTypeID != null).OrderBy(x => x.sort).ToList<ConfigAttributeType>();
List<AAIA.VehicleConfig> configs = vcdb.VehicleConfigs.Where(x => x.Vehicle.BaseVehicleID.Equals(bv.AAIABaseVehicleID) && x.Vehicle.SubmodelID.Equals(submodel.AAIASubmodelID)).Distinct().OrderBy(x => x.BodyStyleConfig.BodyTypeID).ToList<AAIA.VehicleConfig>();
acesconfigs.configs = configs;
foreach (ConfigAttributeType type in attrtypes) {
switch (type.name) {
case "Body Type":
type.count = configs.Select(x => x.BodyStyleConfig.BodyTypeID).Distinct().Count();
break;
case "Number of Doors":
type.count = configs.Select(x => x.BodyStyleConfig.BodyNumDoorsID).Distinct().Count();
break;
case "Drive Type":
type.count = configs.Select(x => x.DriveTypeID).Distinct().Count();
break;
case "Bed Length":
type.count = configs.Select(x => x.BedConfig.BedLengthID).Distinct().Count();
break;
case "Wheel Base":
type.count = configs.Select(x => x.WheelbaseID).Distinct().Count();
break;
case "Engine":
type.count = configs.Select(x => x.EngineConfig.EngineBaseID).Distinct().Count();
break;
case "Fuel Type":
type.count = configs.Select(x => x.EngineConfig.FuelTypeID).Distinct().Count();
break;
case "Aspiration":
type.count = configs.Select(x => x.EngineConfig.AspirationID).Distinct().Count();
break;
case "Bed Type":
type.count = configs.Select(x => x.BedConfig.BedTypeID).Distinct().Count();
break;
case "Brake ABS":
type.count = configs.Select(x => x.BrakeConfig.BrakeABSID).Distinct().Count();
break;
case "Brake System":
type.count = configs.Select(x => x.BrakeConfig.BrakeSystemID).Distinct().Count();
break;
case "Cylinder Head Type":
type.count = configs.Select(x => x.EngineConfig.CylinderHeadTypeID).Distinct().Count();
break;
case "Engine Designation":
type.count = configs.Select(x => x.EngineConfig.EngineDesignationID).Distinct().Count();
break;
case "Engine Manufacturer":
type.count = configs.Select(x => x.EngineConfig.EngineMfrID).Distinct().Count();
break;
case "Engine Version":
type.count = configs.Select(x => x.EngineConfig.EngineVersionID).Distinct().Count();
break;
case "Engine VIN":
type.count = configs.Select(x => x.EngineConfig.EngineVINID).Distinct().Count();
break;
case "Front Brake Type":
type.count = configs.Select(x => x.BrakeConfig.FrontBrakeTypeID).Distinct().Count();
break;
case "Front Spring Type":
type.count = configs.Select(x => x.SpringTypeConfig.FrontSpringTypeID).Distinct().Count();
break;
case "Fuel Delivery Sub-Type":
type.count = configs.Select(x => x.EngineConfig.FuelDeliveryConfig.FuelDeliverySubTypeID).Distinct().Count();
break;
case "Fuel Delivery Type":
type.count = configs.Select(x => x.EngineConfig.FuelDeliveryConfig.FuelDeliveryTypeID).Distinct().Count();
break;
case "Fuel System Control Type":
type.count = configs.Select(x => x.EngineConfig.FuelDeliveryConfig.FuelSystemControlTypeID).Distinct().Count();
break;
case "Fuel System Design":
type.count = configs.Select(x => x.EngineConfig.FuelDeliveryConfig.FuelSystemDesignID).Distinct().Count();
break;
case "Ignition System Type":
type.count = configs.Select(x => x.EngineConfig.IgnitionSystemTypeID).Distinct().Count();
break;
case "Manufacturer Body Code":
type.count = configs.Select(x => x.MfrBodyCodeID).Distinct().Count();
break;
case "Power Output":
type.count = configs.Select(x => x.EngineConfig.PowerOutputID).Distinct().Count();
break;
case "Rear Brake Type":
type.count = configs.Select(x => x.BrakeConfig.RearBrakeTypeID).Distinct().Count();
break;
case "Rear Spring Type":
type.count = configs.Select(x => x.SpringTypeConfig.RearSpringTypeID).Distinct().Count();
break;
case "Steering System":
type.count = configs.Select(x => x.SteeringConfig.SteeringSystemID).Distinct().Count();
break;
case "Steering Type":
type.count = configs.Select(x => x.SteeringConfig.SteeringTypeID).Distinct().Count();
break;
case "Tranmission Electronic Controlled":
type.count = configs.Select(x => x.Transmission.TransmissionElecControlledID).Distinct().Count();
break;
case "Transmission":
type.count = configs.Select(x => x.TransmissionID).Distinct().Count();
break;
case "Transmission Base":
type.count = configs.Select(x => x.Transmission.TransmissionBaseID).Distinct().Count();
break;
case "Transmission Control Type":
type.count = configs.Select(x => x.Transmission.TransmissionBase.TransmissionControlTypeID).Distinct().Count();
break;
case "Tranmission Manufacturer Code":
type.count = configs.Select(x => x.Transmission.TransmissionMfrCodeID).Distinct().Count();
break;
case "Transmission Number of Speeds":
type.count = configs.Select(x => x.Transmission.TransmissionBase.TransmissionNumSpeedsID).Distinct().Count();
break;
case "Transmission Type":
type.count = configs.Select(x => x.Transmission.TransmissionBase.TransmissionTypeID).Distinct().Count();
break;
case "Valves Per Engine":
type.count = configs.Select(x => x.EngineConfig.ValvesID).Distinct().Count();
break;
default:
type.count = 0;
break;
}
acesconfigs.types = attrtypes;
}
} catch { }
return acesconfigs;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment