Beispiel #1
0
        public ActionResult Index()
        {
            using (MTCDBEntities db = new MTCDBEntities())
            {
                var model       = new List <MtcBeatSchedule>();
                var dbSchedules = db.GetDailySchedules();

                string weekdayFilter = "WD";
                if (DateTime.Today.DayOfWeek == DayOfWeek.Saturday || DateTime.Today.DayOfWeek == DayOfWeek.Sunday)
                {
                    weekdayFilter = "WE";
                }

                ViewBag.Heading = DateTime.Today.ToString("MMMM dd, yyyy") + " Schedule";


                foreach (var dbSchedule in dbSchedules)
                {
                    var itemIsValid = false;

                    //make sure contract of contracting company is still valid
                    var contracts = from q in db.Contracts
                                    join c in db.Contractors on q.ContractorID equals c.ContractorID
                                    where c.ContractCompanyName == dbSchedule.ContractCompanyName
                                    select q;

                    foreach (var contract in contracts)
                    {
                        if (contract.StartDate <= DateTime.Today && contract.EndDate >= DateTime.Today)
                        {
                            itemIsValid = true;
                        }
                    }

                    if (itemIsValid)
                    {
                        model.Add(new MtcBeatSchedule
                        {
                            BeatNumber          = dbSchedule.beatnumber,
                            ScheduleName        = dbSchedule.ScheduleName,
                            ScheduleTimeTable   = dbSchedule.ScheduleTimeTable,
                            Supervisor          = dbSchedule.Supervisor,
                            CellPhone           = dbSchedule.CellPhone,
                            ContractCompanyName = dbSchedule.ContractCompanyName,
                            PhoneNumber         = dbSchedule.PhoneNumber,
                            Weekday             = dbSchedule.Weekday
                        });
                    }
                }

                if (model.Count() > 1)
                {
                    return(View(model.Where(p => p.Weekday == weekdayFilter).OrderBy(p => p.BeatNumber).ThenBy(p => p.ScheduleName)));
                }
                else
                {
                    return(View(model));
                }
            }
        }