public ActionResult <AircraftRepair> PostAircraftRepair(List <Repair> repairs, int id) { var aircraftRepair = new AircraftRepair(); aircraftRepair = _aircraftService.CreateAircraftRepair(repairs, id); return(CreatedAtAction(nameof(PostAircraftRepair), new { id = aircraftRepair.AircraftId }, aircraftRepair)); }
public ActionResult <AircraftRepair> CreateTasksDue(Repair[] repairs, int id) { var aircraftList = new List <Aircraft> { new Aircraft { AircraftId = 1, DailyHours = 0.7, CurrentHours = 550 }, new Aircraft { AircraftId = 2, DailyHours = 1.1, CurrentHours = 200 } }; var thisAircraft = aircraftList.Find(p => p.AircraftId == id); var nextDueList = new List <Repair>(); foreach (Repair repair in repairs) { DateTime logDate = repair.LogDate; double? DaysRemainingByHoursInterval; DateTime?IntervalHoursNextDueDate = null; DateTime?IntervalMonthsNextDueDate = null; if (repair.IntervalMonths != null && repair.LogDate != null) { IntervalMonthsNextDueDate = logDate.AddMonths((int)repair.IntervalMonths); } if (repair.LogHours != null && repair.IntervalHours != null) { DaysRemainingByHoursInterval = (((repair.LogHours + repair.IntervalHours) - thisAircraft.CurrentHours) / thisAircraft.DailyHours); IntervalHoursNextDueDate = logDate.AddDays((double)DaysRemainingByHoursInterval); } if (IntervalHoursNextDueDate <= IntervalMonthsNextDueDate || IntervalMonthsNextDueDate == null) { repair.NextDue = IntervalHoursNextDueDate; } else { repair.NextDue = IntervalMonthsNextDueDate; } nextDueList.Add(repair); } var repairsDue = new AircraftRepair { AircraftId = id, Repairs = nextDueList }; _context.AircraftRepairDbSet.Add(repairsDue); _context.SaveChanges(); return(repairsDue); }
public AircraftRepair CreateAircraftRepair(List <Repair> repairs, int id) { var aircraftList = _repository.GetAircraft(); Aircraft thisAircraft = aircraftList.Find(p => p.AircraftId == id); var nextDueList = new List <RepairReturn>(); foreach (Repair repair in repairs) { RepairReturn result = new RepairReturn { ItemNumber = repair.ItemNumber, Description = repair.Description, LogDate = repair.LogDate, LogHours = repair.LogHours, IntervalMonths = repair.IntervalMonths, IntervalHours = repair.IntervalHours }; DateTime logDate = repair.LogDate; double? DaysRemainingByHoursInterval; DateTime?IntervalHoursNextDueDate = null; DateTime?IntervalMonthsNextDueDate = null; if (repair.IntervalMonths != null && repair.LogDate != null) { IntervalMonthsNextDueDate = FindNextMonthDue(logDate, (int)repair.IntervalMonths); } if (repair.LogHours != null && repair.IntervalHours != null) { DaysRemainingByHoursInterval = FindDaysByHours((int)repair.LogHours, (int)repair.IntervalHours, thisAircraft.CurrentHours, thisAircraft.DailyHours); IntervalHoursNextDueDate = FindNextHoursDue(logDate, (double)DaysRemainingByHoursInterval); } if (IntervalHoursNextDueDate <= IntervalMonthsNextDueDate || IntervalMonthsNextDueDate == null) { result.NextDue = IntervalHoursNextDueDate; } else { result.NextDue = IntervalMonthsNextDueDate; } nextDueList.Add(result); } nextDueList.Sort((x, y) => DateTime.Compare(x.NextDue ?? DateTime.MaxValue, y.NextDue ?? DateTime.MaxValue)); var aircraftRepair = new AircraftRepair { AircraftId = id, Repairs = nextDueList }; return(aircraftRepair); }