public ActionResult DeleteConfirmed(int id)
        {
            AspNetTimeslot aspNetTimeslot = db.AspNetTimeslots.Find(id);

            db.AspNetTimeslots.Remove(aspNetTimeslot);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "Id,Name,Start_Time,End_Time,Minutes")] AspNetTimeslot aspNetTimeslot)
 {
     if (ModelState.IsValid)
     {
         db.Entry(aspNetTimeslot).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(aspNetTimeslot));
 }
        // GET: AspNetTimeslots/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AspNetTimeslot aspNetTimeslot = db.AspNetTimeslots.Find(id);

            if (aspNetTimeslot == null)
            {
                return(HttpNotFound());
            }
            return(View(aspNetTimeslot));
        }
        public ActionResult Create([Bind(Include = "Id,Name,Start_Time,End_Time,Minutes")] AspNetTimeslot aspNetTimeslot)
        {
            var StartDate = Convert.ToDateTime(Request.Form["Start_Time"]);
            var EndDate   = Convert.ToDateTime(Request.Form["End_Time"]);

            aspNetTimeslot.Start_Time = StartDate;
            aspNetTimeslot.End_Time   = EndDate;


            if (ModelState.IsValid)
            {
                db.AspNetTimeslots.Add(aspNetTimeslot);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(aspNetTimeslot));
        }
        public ActionResult TimeTableFromFile()
        {
            var dbTransaction = db.Database.BeginTransaction();

            HttpPostedFileBase file = Request.Files["subjects"];

            if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
            {
                string fileName        = file.FileName;
                string fileContentType = file.ContentType;
                byte[] fileBytes       = new byte[file.ContentLength];
                var    data            = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength));
            }
            var studentList = new List <RegisterViewModel>();

            using (var package = new ExcelPackage(file.InputStream))
            {
                var currentSheet = package.Workbook.Worksheets;
                var workSheet    = currentSheet.First();
                var noOfCol      = workSheet.Dimension.End.Column;
                var noOfRow      = workSheet.Dimension.End.Row;

                string ErrorMsg = null;
                int    rowIterator;
                for (rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                {
                    var TimeTable   = new AspNetTimeTable();
                    var SessionName = workSheet.Cells[rowIterator, 6].Value.ToString();
                    int GetSessionID;
                    int GetClassID;

                    AspNetSession Session = db.AspNetSessions.Where(x => x.SessionName == SessionName).FirstOrDefault();

                    if (Session == null)
                    {
                        ErrorMsg = "Error in Row " + Convert.ToString(rowIterator - 1) + " Session Name is not valid or empty";

                        TempData["ErrorMsg"] = ErrorMsg;

                        return(RedirectToAction("Create", "AspNetTimeTable"));
                    }
                    else
                    {
                        GetSessionID = Session.Id;
                        GetClassID   = db.AspNetClasses.Where(x => x.SessionID == GetSessionID).Select(x => x.Id).FirstOrDefault();
                    }

                    var CourseType = workSheet.Cells[rowIterator, 5].Value.ToString();

                    var CourseTypeLower = CourseType.ToLower();

                    if (CourseTypeLower == "css" || CourseTypeLower == "pms")
                    {
                        //valid course Type css or pms
                    }
                    else
                    {
                        ErrorMsg             = "Error in Row " + Convert.ToString(rowIterator - 1) + "Course Type  is not valid or empty";
                        TempData["ErrorMsg"] = ErrorMsg;
                        return(RedirectToAction("Create", "AspNetTimeTable"));
                    }

                    var RoomName = workSheet.Cells[rowIterator, 1].Value.ToString();
                    //RoomID;
                    int        RoomID = db.AspNetRooms.Where(x => x.Name == RoomName).FirstOrDefault().Id;
                    AspNetRoom room   = new AspNetRoom();

                    room = db.AspNetRooms.Where(x => x.Name == RoomName).FirstOrDefault();

                    if (room == null)
                    {
                        ErrorMsg = "Error in Row " + Convert.ToString(rowIterator - 1) + "Room Name is not valid or empty";

                        TempData["ErrorMsg"] = ErrorMsg;

                        return(RedirectToAction("Create", "AspNetTimeTable"));
                    }
                    else
                    {
                        RoomID = room.Id;
                    }

                    var SlotName = workSheet.Cells[rowIterator, 2].Value.ToString();
                    //var SlotID = db.AspNetTimeslots.Where(x => x.Name == SlotName).FirstOrDefault().Id;

                    int            SlotID = db.AspNetTimeslots.Where(x => x.Name == SlotName).FirstOrDefault().Id;
                    AspNetTimeslot slot   = new AspNetTimeslot();

                    slot = db.AspNetTimeslots.Where(x => x.Name == SlotName).FirstOrDefault();

                    if (slot == null)
                    {
                        ErrorMsg = "Error in Row " + Convert.ToString(rowIterator - 1) + " Slot Name is not valid or empty";

                        TempData["ErrorMsg"] = ErrorMsg;

                        return(RedirectToAction("Create", "AspNetTimeTable"));
                    }
                    else
                    {
                        SlotID = slot.Id;
                    }

                    string        SubName = workSheet.Cells[rowIterator, 3].Value.ToString();
                    int           SubjectID;
                    AspNetSubject subject = new AspNetSubject();

                    subject = db.AspNetSubjects.Where(x => x.SubjectName == SubName && x.ClassID == GetClassID && x.CourseType == CourseType).FirstOrDefault();

                    if (subject == null)
                    {
                        ErrorMsg             = "Error in Row " + Convert.ToString(rowIterator - 1) + " Subject Name is not valid or empty";
                        TempData["ErrorMsg"] = ErrorMsg;
                        return(RedirectToAction("Create", "AspNetTimeTable"));
                    }
                    else
                    {
                        SubjectID = subject.Id;
                    }

                    //var UserName = workSheet.Cells[rowIterator, 4].Value.ToString();

                    //string TeacherID;
                    //AspNetUser teacher = new AspNetUser();

                    //teacher = db.AspNetUsers.Where(x => x.UserName == UserName).FirstOrDefault();

                    //if (teacher == null)
                    //{
                    //    ErrorMsg = "Error in Row " + Convert.ToString(rowIterator - 1) + " Teacher Name is not valid or empty";

                    //    TempData["ErrorMsg"] = ErrorMsg;

                    //    return RedirectToAction("Create", "AspNetTimeTable");

                    //}
                    //else
                    //{
                    //    TeacherID = teacher.Id;
                    //}

                    DateTime Day         = Convert.ToDateTime(workSheet.Cells[rowIterator, 4].Value.ToString());
                    var      Description = (workSheet.Cells[rowIterator, 7].Value.ToString());
                    //var Date = workSheet.Cells[rowIterator, 5].Value.ToString();
                    //DateTime Day = DateTime.ParseExact(Date, "dd/MM/yyyy", null);

                    TimeTable.RoomID      = RoomID;
                    TimeTable.SlotID      = SlotID;
                    TimeTable.SubjectID   = SubjectID;
                    TimeTable.Description = Description;
                    //TimeTable.Teacher_ID = TeacherID;
                    TimeTable.Day         = Day.ToString();
                    TimeTable.IsPopulated = false;
                    //    TimeTable.SessionID = GetSessionID;


                    db.AspNetTimeTables.Add(TimeTable);
                    db.SaveChanges();
                }
            }
            dbTransaction.Commit();

            //   return RedirectToAction("Index", "AspNetTimeTable");

            //catch (Exception e)
            //{
            //    dbTransaction.Dispose();
            //}

            return(RedirectToAction("CreateTimetable"));
        }