Esempio n. 1
0
        public async Task PostMaintenanceItem(MaintenanceItem maintenanceItem)
        {
            _context.MaintenanceItems.Add(maintenanceItem);

            List <ScheduleItemComputer> scheduleItemComputerList = await(from sic in _context.ScheduleItemComputers
                                                                         where sic.ItemId == maintenanceItem.ItemId
                                                                         select new ScheduleItemComputer
            {
                Id = sic.Id,
            }).ToListAsync();

            if (scheduleItemComputerList.Count() > 0)
            {
                ScheduleMaintenanceItem        scheduleMaintenanceItem;
                List <ScheduleMaintenanceItem> scheduleMaintenanceItems = new List <ScheduleMaintenanceItem>();
                Schedule        schedule;
                List <Schedule> schedules = new List <Schedule>();

                var registrationDate = DateTime.Now;
                var dateYearsPeriod  = registrationDate.AddYears(4).Year;

                foreach (var scheduleItemComputer in scheduleItemComputerList)
                {
                    scheduleMaintenanceItem = new ScheduleMaintenanceItem();

                    scheduleMaintenanceItem.Id = Guid.NewGuid();
                    scheduleMaintenanceItem.ScheduleItemComputerId = scheduleItemComputer.Id;
                    scheduleMaintenanceItem.MaintenanceId          = maintenanceItem.MaintenanceId;

                    scheduleMaintenanceItems.Add(scheduleMaintenanceItem);
                }

                foreach (var scheduleMI in scheduleMaintenanceItems)
                {
                    var dateAddMonth = registrationDate;

                    while (dateAddMonth.Year < dateYearsPeriod)
                    {
                        schedule = new Schedule();

                        schedule.Id = Guid.NewGuid();
                        schedule.ScheduleMaintenanceItemId = scheduleMI.Id;
                        schedule.Status = Status.Pending;

                        dateAddMonth = dateAddMonth.AddMonths(maintenanceItem.Period);

                        schedule.MaintenanceDate = dateAddMonth;

                        schedules.Add(schedule);
                    }
                }

                _context.ScheduleMaintenanceItems.AddRange(scheduleMaintenanceItems);
                _context.Schedules.AddRange(schedules);
            }
        }
        public async Task PostItemComputer(ItemComputer itemComputer)
        {
            var registrationDate       = DateTime.Now;
            var dateYearsPeriod        = registrationDate.AddYears(4).Year;
            var idScheduleItemComputer = Guid.NewGuid();

            ScheduleItemComputer           scheduleItemComputer = new ScheduleItemComputer();
            ScheduleMaintenanceItem        scheduleMaintenanceItem;
            List <ScheduleMaintenanceItem> scheduleMaintenanceItems = new List <ScheduleMaintenanceItem>();
            Schedule        schedule;
            List <Schedule> schedules = new List <Schedule>();

            var listMaintenanceItems = await _context.MaintenanceItems.Where(mi => mi.ItemId == itemComputer.ItemId).ToListAsync();

            itemComputer.RegistrationDate = registrationDate;

            scheduleItemComputer.Id         = idScheduleItemComputer;
            scheduleItemComputer.ComputerId = itemComputer.ComputerId;
            scheduleItemComputer.ItemId     = itemComputer.ItemId;

            foreach (var maintenanceItem in listMaintenanceItems)
            {
                scheduleMaintenanceItem = new ScheduleMaintenanceItem();

                scheduleMaintenanceItem.Id = Guid.NewGuid();
                scheduleMaintenanceItem.ScheduleItemComputerId = scheduleItemComputer.Id;
                scheduleMaintenanceItem.MaintenanceId          = maintenanceItem.MaintenanceId;

                scheduleMaintenanceItems.Add(scheduleMaintenanceItem);
            }

            foreach (var scheduleMI in scheduleMaintenanceItems)
            {
                var dateAddMonth = registrationDate;

                while (dateAddMonth.Year < dateYearsPeriod)
                {
                    schedule = new Schedule();

                    schedule.Id = Guid.NewGuid();
                    schedule.ScheduleMaintenanceItemId = scheduleMI.Id;
                    schedule.Status = Status.Pending;

                    dateAddMonth = dateAddMonth.AddMonths(listMaintenanceItems.Find(mi => mi.MaintenanceId == scheduleMI.MaintenanceId).Period);

                    schedule.MaintenanceDate = dateAddMonth;

                    schedules.Add(schedule);
                }
            }

            _context.ItemComputers.Add(itemComputer);
            _context.ScheduleItemComputers.Add(scheduleItemComputer);
            _context.ScheduleMaintenanceItems.AddRange(scheduleMaintenanceItems);
            _context.Schedules.AddRange(schedules);
        }