Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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);
        }