// GET: Schedule/Details/5
        public async Task <IActionResult> Details(int?id, DateTime?SelectedWeekStartDay)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var schedule = await _context.Schedule
                           .Include(sched => sched.Shifts).ThenInclude(shift => shift.Employee)
                           .Include(sched => sched.Shifts).ThenInclude(shift => shift.ShiftRole)
                           .FirstOrDefaultAsync(m => m.Id == id);

            if (schedule == null)
            {
                return(NotFound());
            }

            var weeksWithShifts = (from shift in _context.Shift
                                   select(shift.Start.FirstDayOfWeek().Date)).Concat(new List <DateTime>()
            {
                DateTime.Today.FirstDayOfWeek().Date
            }).Distinct().OrderBy(x => x.Date).ToListAsync().Result;
            var selectedWeek   = SelectedWeekStartDay ?? weeksWithShifts.Where(x => x.Date <= DateTime.Today.Date).Last();
            var weeks          = new SelectList(weeksWithShifts.Select(x => new SelectListItem($"{x.ToShortDateString()} - {x.AddDays(6).ToShortDateString()}", x.ToString())), "Value", "Text", selectedWeek);
            var weeklySchedule = WeeklyScheduleViewModel.Create(weeks, selectedWeek, schedule, await _context.Employee.Include(emp => emp.Shifts).ToListAsync());

            return(View(weeklySchedule));
        }
示例#2
0
        public IEnumerable <WeeklyScheduleViewModel> GetWeeklySchedule()
        {
            var context = new ServicesDbContext();

            //var a = context.WeeklySchedule.Include("Day.WeekDay").ToList();
            var a = context.WeeklySchedule.Include("Day.WeekDay").Include("FkUser").Include("Day.WorkTime").ToList();

            List <WeeklyScheduleViewModel> asd = WeeklyScheduleViewModel.Convert(a);

            return(asd);
        }
        public WeeklySchedulePage(int weekNo)
        {
            InitializeComponent();
            this.Title = "Week " + weekNo.ToString() + " Schedule";
            Sched      = new WeeklyScheduleViewModel(weekNo);

            this.BindingContext = Sched;

            //Tried this --1911.01
            //Appearing += delegate (object sender, EventArgs e) {
            //   MyListView.SelectedItem = null;
            //};
        }