public async Task <Result> UpdateVehicleAsync(VehicleContract vehicleContract) { return(await ExecDBAsync( async db => { var vehicle = vehicleContract.ToModel(); var(valid, error) = vehicle.Validate(); if (valid) { db.Vehicles.Attach(vehicle) .Log(Log, result => (LogLevel.Info, $"Saving {result.ToContract()}.")); (await db.SaveChangesAsync()).Log(Log, rows => (LogLevel.Debug, $"Rows affected: {rows}")); return Result.Succeeded(); } Log.LogError($"Failed validation: {error}."); return Result.Failed(error); } )); }
public async Task <VehicleResult> AddVehicleAsync(VehicleContract vehicleContract) { return(await ExecDBAsync( async db => { var vehicle = vehicleContract.ToModel(); var(valid, error) = vehicle.Validate(); if (valid) { vehicleContract = db.Vehicles.Add(vehicle) .ToContract() .Log(Log, result => (LogLevel.Info, $"Adding with new ID {result.ID}: {result}.")); (await db.SaveChangesAsync()).Log(Log, rows => (LogLevel.Debug, $"Rows affected: {rows}")); return VehicleResult.Succeeded(vehicleContract); } Log.LogError($"Failed validation: {error}."); return VehicleResult.Failed(error); } )); }