public async Task <bool> CreateExternal(ExternalRepairServiceModel externalRepairServiceModel) { externalRepairServiceModel.StartedOn = DateTime.UtcNow; externalRepairServiceModel.Name = externalRepairServiceModel.Name + "_" + externalRepairServiceModel.StartedOn.ToString("yyyy/MM/dd_HH:mm"); if (_context.ExternalRepairs.Any(x => x.Name == externalRepairServiceModel.Name)) { return(false); } var externalRepair = externalRepairServiceModel.To <ExternalRepair>(); externalRepair.RepairedSystem = await GetRepairedSystemIdByName(externalRepairServiceModel.RepairedSystem.Name); externalRepair.ExternalRepairProvider = await GetExternalRepairProviderByName(externalRepairServiceModel.ExternalRepairProvider.Name); _context.ExternalRepairs.Add(externalRepair); var vehicle = _context.Vehicles.Find(externalRepairServiceModel.VehicleId); vehicle.Mileage = externalRepair.Mileage; vehicle.IsInRepair = true; vehicle.ExternalRepairs.Add(externalRepair); _context.Update(vehicle); var result = await _context.SaveChangesAsync(); return(result > 0); }
public async Task <bool> FinalizeExternal(ExternalRepairServiceModel externalRepairServiceModel) { var externalRepair = await _context.ExternalRepairs.Include(x => x.Vehicle).SingleOrDefaultAsync(x => x.Id == externalRepairServiceModel.Id); if (externalRepair.FinishedOn != null) { return(false); } externalRepair.Vehicle.IsInRepair = false; externalRepair.LaborCost = externalRepairServiceModel.LaborCost; externalRepair.PartsCost = externalRepairServiceModel.PartsCost; externalRepair.Description = externalRepairServiceModel.Description; externalRepair.RepairCost = externalRepair.LaborCost + externalRepair.PartsCost; externalRepair.FinishedOn = DateTime.UtcNow; _context.Update(externalRepair); _context.Update(externalRepair.Vehicle); var result = await _context.SaveChangesAsync(); return(result > 0); }