public async Task <Response> CreateManySchedule(CreateManyScheduleCommand schedule)
        {
            baseurl = baseurl + "list";
            var response = await PostAsync(baseurl, schedule);

            if (response.IsSuccessStatusCode)
            {
                return(new Response(true));
            }
            return(new Response(false));
        }
Пример #2
0
        public async Task <IActionResult> OnPostConfirm([FromBody] string[] value)
        {
            var calendar = HttpContext.Session.GetObject <CalenderViewModel>("key");

            if (calendar == null)
            {
                calendar = new CalenderViewModel();
            }
            var DateChosen = HttpContext.Session.GetObject <DateChosen>("datechosen");

            if (DateChosen == null)
            {
                DateChosen = AddDatesToList(value, new DateChosen(), calendar);
            }

            DateChosen = AddDatesToList(value, DateChosen, calendar);


            DateChosen = CheckSameDates(DateChosen);

            foreach (var VARIABLE in DateChosen.CosenDays)
            {
                Console.WriteLine(VARIABLE.ToString("d"));
            }



            Message = "Planen er nu opretttet korrekt";


            /*
             * List<DateTime> list = new List<DateTime>();
             * var result = HttpContext.Session.GetObject<ScheduleViewModel>("v");
             *
             * for (int i = 0; i < value.Length; i++)
             * {
             *  if (value[i] != null)
             *  {
             *      list.Add(DateTime.Parse(value[i]));
             *
             *  }
             * }
             */
            var result = HttpContext.Session.GetObject <ScheduleViewModel>("scheduleId");



            SchedulesListViewModel schedules = new SchedulesListViewModel();

            foreach (var date in DateChosen.CosenDays)
            {
                var scheduleID = Guid.NewGuid();
                List <IntervalViewModel> intervals = new List <IntervalViewModel>();
                foreach (var interval in result.Intervals)
                {
                    DateTime starttime, endtime;

                    if (CorrectDay(date, interval))
                    {
                        starttime = date.AddDays(1).Add(interval.StartTime.Value.TimeOfDay);
                        endtime   = date.AddDays(1).Add(interval.EndTime.Value.TimeOfDay);
                    }
                    else
                    {
                        starttime = date.AddDays(0).Add(interval.StartTime.Value.TimeOfDay);
                        endtime   = date.AddDays(0).Add(interval.EndTime.Value.TimeOfDay);
                    }

                    intervals.Add(new IntervalViewModel
                    {
                        IntervalId = Guid.NewGuid(),

                        BottomPallets    = interval.BottomPallets,
                        EndTime          = endtime,
                        StartTime        = starttime,
                        RemainingPallets = interval.BottomPallets,
                        Bookings         = new List <BookingViewModel>(),
                        IsBooked         = false,
                        ScheduleId       = scheduleID
                    });
                }

                var schedule = new ScheduleViewModel()
                {
                    CreatedBy             = result.CreatedBy,
                    Intervals             = intervals,
                    MischellaneousPallets = result.MischellaneousPallets,
                    Name        = result.Name,
                    ScheduleDay = date,
                    ScheduleId  = scheduleID,
                    Shifts      = result.Shifts,
                    IsStandard  = false
                };

                schedules.Schedules.Add(schedule);
            }


            var vm  = new SchedulesListViewModel();
            var vm1 = new CreateManyScheduleCommand();

            vm.Schedules = schedules.Schedules;
            vm1.SchedulesListViewModel = vm;
            var response = await _scheduleDataService.CreateManySchedule(vm1);

            if (response.IsSuccesfull)
            {
                Message = "Planen er nu oprettet Korrekt";
            }
            else
            {
                Message = response.HttpResponse.RequestMessage.ToString();
            }

            HttpContext.Session.Clear();
            return(new ObjectResult(HttpStatusCode.OK));
        }
        private async Task <IActionResult> CreateScheduleFromActiveMaster(DateTime bookingTime,
                                                                          BookingViewModel currentBooking)
        {
            var result = await _masterScheduleDataService.GetActiveMasterSchedule();

            if (result == null)
            {
                ErrorMessage = "Der er ingen aktiv plan på denne dag.";
            }

            var many = new CreateManyScheduleCommand();

            many.SchedulesListViewModel           = new SchedulesListViewModel();
            many.SchedulesListViewModel.Schedules = new List <ScheduleViewModel>();


            var orderOnBooking = currentBooking.OrdersListViewModel.FirstOrDefault();

            var shift = Shift.Day;

            foreach (var masterSchedule in result.MasterScheduleStandardViewModels)
            {
                foreach (var interval in masterSchedule.MasterIntervalStandardViewModels)
                {
                    if ((orderOnBooking.SupplierViewModel.DeliveryStart.TimeOfDay >
                         interval.StartTime.Value.TimeOfDay) &&
                        (orderOnBooking.SupplierViewModel.DeliveryStart.TimeOfDay < interval.EndTime.Value.TimeOfDay))
                    {
                        shift = masterSchedule.Shifts;
                    }
                }
            }

            var masterScheduleStandardViewModel = result.MasterScheduleStandardViewModels.FirstOrDefault(e => e.Shifts == shift);

            if (masterScheduleStandardViewModel == null)
            {
            }

            var scheduleId = Guid.NewGuid();


            many.SchedulesListViewModel.Schedules.Add(new ScheduleViewModel
            {
                Name                  = masterScheduleStandardViewModel.Name,
                Shifts                = masterScheduleStandardViewModel.Shifts,
                CreatedBy             = masterScheduleStandardViewModel.CreatedBy,
                MischellaneousPallets = masterScheduleStandardViewModel.MischellaneousPallets,
                ScheduleDay           = bookingTime,
                Intervals             = Map(masterScheduleStandardViewModel, scheduleId, currentBooking),
                ScheduleId            = scheduleId,
                ActiveDays            = _mapper.Map <List <DayViewModel> >(masterScheduleStandardViewModel.ActiveDays)
            });



            scheduleId = Guid.NewGuid();
            masterScheduleStandardViewModel = result.MasterScheduleStandardViewModels.FirstOrDefault(e => e.Shifts == Shift.Night);
            if (masterScheduleStandardViewModel != null)
            {
                many.SchedulesListViewModel.Schedules.Add(new ScheduleViewModel
                {
                    Name                  = masterScheduleStandardViewModel.Name,
                    Shifts                = masterScheduleStandardViewModel.Shifts,
                    CreatedBy             = masterScheduleStandardViewModel.CreatedBy,
                    MischellaneousPallets = masterScheduleStandardViewModel.MischellaneousPallets,
                    ScheduleDay           = bookingTime,
                    Intervals             = Fx(masterScheduleStandardViewModel.MasterIntervalStandardViewModels, currentBooking.BookingTime, scheduleId),
                    ScheduleId            = scheduleId,
                    ActiveDays            = _mapper.Map <List <DayViewModel> >(masterScheduleStandardViewModel.ActiveDays)
                });
            }

            await _scheduleDataService.CreateManySchedule(many);

            // Return new redirect to same page in order to get the newlt created schedule
            return(new RedirectToPageResult(""));
        }