private AdEditServiceModel InitializeValidAdEditServiceModel(int id) { var model = new AdEditServiceModel { Id = id, PhoneNumber = SamplePhoneNumber, UserId = SampleUserId, Vehicle = new VehicleEditServiceModel { ManufacturerId = 1, ModelName = SampleModelName, Description = SampleDescription, EngineHorsePower = SampleEngineHorsePower, FuelConsumption = SampleFuelConsumption, FuelTypeId = SampleFuelTypeId, TransmissionTypeId = SampleTransmissionTypeId, Price = SamplePrice, FeatureIds = new List <int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, YearOfProduction = SampleYearOfManufacture, } }; return(model); }
private async Task DeleteFeaturesByVehicleIdAsync(AdEditServiceModel serviceModel) { var features = await this.db .VehicleFeatures .Where(v => v.VehicleId == serviceModel.Id) .ToListAsync(); this.db.VehicleFeatures.RemoveRange(features); await this.db.SaveChangesAsync(); }
public async Task <bool> UpdateAsync(AdEditServiceModel serviceModel) { if (serviceModel == null) { return(false); } try { var ad = await this.db .Ads .Include(v => v.Vehicle) .SingleOrDefaultAsync(a => a.Id == serviceModel.Id); var modelId = await this.db .Models .Where(m => m.Name == serviceModel.Vehicle.ModelName) .Select(m => m.Id) .SingleOrDefaultAsync(); if (ad == null || modelId == default(int)) { return(false); } var vehicle = ad.Vehicle; ad.PhoneNumber = serviceModel.PhoneNumber; vehicle.ModelId = modelId; vehicle.Description = serviceModel.Vehicle.Description; vehicle.ManufacturerId = serviceModel.Vehicle.ManufacturerId; vehicle.FuelTypeId = serviceModel.Vehicle.FuelTypeId; vehicle.TransmissionTypeId = serviceModel.Vehicle.TransmissionTypeId; vehicle.Engine = serviceModel.Vehicle.Engine; vehicle.EngineHorsePower = serviceModel.Vehicle.EngineHorsePower; vehicle.YearOfProduction = serviceModel.Vehicle.YearOfProduction; vehicle.TotalMileage = serviceModel.Vehicle.TotalMileage; vehicle.FuelConsumption = serviceModel.Vehicle.FuelConsumption; vehicle.Price = serviceModel.Vehicle.Price; vehicle.Pictures = serviceModel.Vehicle.Pictures; var vehicleFeatures = new List <VehicleFeature>(); foreach (var featureId in serviceModel.Vehicle.FeatureIds) { var vehicleFeature = new VehicleFeature { FeatureId = featureId, }; vehicleFeatures.Add(vehicleFeature); } vehicle.Features = vehicleFeatures; await DeleteFeaturesByVehicleIdAsync(serviceModel); //TODO implement logic to check if the Id exists and to skip instead of deleting it. this.db.Update(vehicle); await this.db.SaveChangesAsync(); return(true); } catch { return(false); } }