// GET: EquipmentSchedule
        public ActionResult Index()
        {
            EquipmentSchedule myModel = new EquipmentSchedule();

            if (TempData["model"] != null)
            {
                myModel = (EquipmentSchedule)TempData["model"];
                TempData.Remove("model");
            }
            return(View(myModel));
        }
        // GET: AddEquipmentSchedule
        public ActionResult Index(string equipmentID)
        {
            if (equipmentID != null)
            {
                EquipmentSchedule mySchedule = new EquipmentSchedule();
                mySchedule.EquipmentID = int.Parse(equipmentID);

                return(View(mySchedule));
            }

            return(View());
        }
        public ActionResult PageData(IDataTablesRequest request)
        {
            CodeFirst.CodeFirst db = new CodeFirst.CodeFirst();

            // Nothing important here. Just creates some mock data.
            var data = EquipmentSchedule.GetData();

            //This code is for joining if we want to show information of the Vehicle instead of the ID
            var Equipments = db.Equipments.ToList();
            var newData    = (from s in data
                              join e in Equipments on s.EquipmentID equals e.EquipmentID
                              select new
            {
                ScheduleID = s.LineID,
                Date = s.Date,
                StartTime = s.TimeStart,
                EndTime = s.TimeEnd,
                Status = s.Status,
                ManufacturerName = e.ManufacturerName,
                Model = e.ModelNumber
            }).ToList();

            // Global filtering.
            // Filter is being manually applied due to in-memmory (IEnumerable) data.
            // If you want something rather easier, check IEnumerableExtensions Sample.
            var filteredData = newData.Where(_item =>
                                             _item.ScheduleID.ToString().Contains(request.Search.Value) ||
                                             _item.Date.ToUpper().Contains(request.Search.Value.ToUpper()) ||
                                             _item.StartTime.ToString().ToUpper().Contains(request.Search.Value.ToUpper()) ||
                                             _item.EndTime.ToString().ToUpper().Contains(request.Search.Value.ToUpper()) ||
                                             _item.Status.ToUpper().Contains(request.Search.Value.ToUpper()) ||
                                             _item.ManufacturerName.ToUpper().Contains(request.Search.Value.ToUpper()) ||
                                             _item.Model.ToUpper().Contains(request.Search.Value.ToUpper())
                                             );

            // Paging filtered data.
            // Paging is rather manual due to in-memmory (IEnumerable) data.
            var dataPage = filteredData.Skip(request.Start).Take(request.Length);

            // Response creation. To create your response you need to reference your request, to avoid
            // request/response tampering and to ensure response will be correctly created.
            var response = DataTablesResponse.Create(request, data.Count(), filteredData.Count(), dataPage);

            // Easier way is to return a new 'DataTablesJsonResult', which will automatically convert your
            // response to a json-compatible content, so DataTables can read it when received.
            return(new DataTablesJsonResult(response, JsonRequestBehavior.AllowGet));
        }