public JsonResult AddClass_TimeTable(int Section_Id, long Academic_Year)
        {
            //List<Class_TimeTableList_ViewModel> Class_TimeTableList_ViewModelobj = new List<Model.ViewModel.Class_TimeTableList_ViewModel>();
            List <Class_TimeTable> Class_TimeTableList_ViewModelobj = new List <Class_TimeTable>();

            using (var dbcontext = new SchoolERPDBContext())
            {
                using (var transaction = dbcontext.Database.BeginTransaction())
                {
                    try
                    {
                        PropertyInfo[] proeprties = typeof(Class_TimeTable).GetProperties();


                        if (dbcontext.Class_TimeTable.Where(x => x.Section_Id == Section_Id && x.Academic_Year == Academic_Year && (x.Is_Deleted == null || x.Is_Deleted == false)).Count() == 0)
                        {
                            for (int nCount = 0; nCount <= 5; nCount++)
                            {
                                Class_TimeTable classTimeTableViewModel = new Class_TimeTable();

                                foreach (PropertyInfo property in proeprties)
                                {
                                    if (property.Name == "Week")
                                    {
                                        if (nCount == 0)
                                        {
                                            classTimeTableViewModel.Week = 1;
                                        }
                                        else if (nCount == 1)
                                        {
                                            classTimeTableViewModel.Week = 2;
                                        }
                                        else if (nCount == 2)
                                        {
                                            classTimeTableViewModel.Week = 3;
                                        }
                                        else if (nCount == 3)
                                        {
                                            classTimeTableViewModel.Week = 4;
                                        }
                                        else if (nCount == 4)
                                        {
                                            classTimeTableViewModel.Week = 5;
                                        }
                                        else if (nCount == 5)
                                        {
                                            classTimeTableViewModel.Week = 6;
                                        }
                                    }
                                    //if (nCount == 0)
                                    //{

                                    //}
                                    //else
                                    //{

                                    //}
                                }

                                Class_TimeTableList_ViewModelobj.Add(classTimeTableViewModel);
                            }
                            return(Json(Class_TimeTableList_ViewModelobj.ToArray(), JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            var existingClassTimeTable = dbcontext.Class_TimeTable.Where(x => x.Section_Id == Section_Id && x.Academic_Year == Academic_Year && (x.Is_Deleted == null || x.Is_Deleted == false)).ToList();
                            return(Json(existingClassTimeTable.ToArray(), JsonRequestBehavior.AllowGet));
                        }
                    }
                    catch (Exception ex)
                    {
                        return(Json(ex.InnerException.Message.ToString(), JsonRequestBehavior.AllowGet));
                    }
                }
            }
        }
        public ActionResult SaveTimeTable_For_Class(string[][] data)
        {
            string sReturnText = string.Empty;

            using (var dbcontext = new SchoolERPDBContext())
            {
                using (var transaction = dbcontext.Database.BeginTransaction())
                {
                    try
                    {
                        if (data.Length > 0)
                        {
                            int  nSection_Id    = Convert.ToInt32(data[0][8]);
                            long nAcademic_Year = Convert.ToInt64(data[0][9]);

                            for (int nRowCount = 0; nRowCount < data.Length; nRowCount++)
                            {
                                Class_TimeTable class_TimeTable = new Class_TimeTable();

                                if (dbcontext.Class_TimeTable.Where(x => x.Section_Id == nSection_Id && x.Academic_Year == nAcademic_Year && (x.Is_Deleted == null || x.Is_Deleted == false) && x.Week == (nRowCount + 1)).Count() == 0)
                                {
                                    class_TimeTable.Academic_Year       = nAcademic_Year;
                                    class_TimeTable.Section_Id          = nSection_Id;
                                    class_TimeTable.Class_Id            = dbcontext.Section.Where(x => x.Id == nSection_Id).FirstOrDefault().Class_Id;
                                    class_TimeTable.Subject_Id_Period_1 = Convert.ToInt16(data[nRowCount][0]);
                                    class_TimeTable.Subject_Id_Period_2 = Convert.ToInt16(data[nRowCount][1]);
                                    class_TimeTable.Subject_Id_Period_3 = Convert.ToInt16(data[nRowCount][2]);
                                    class_TimeTable.Subject_Id_Period_4 = Convert.ToInt16(data[nRowCount][3]);
                                    class_TimeTable.Subject_Id_Period_5 = Convert.ToInt16(data[nRowCount][4]);
                                    class_TimeTable.Subject_Id_Period_6 = Convert.ToInt16(data[nRowCount][5]);
                                    class_TimeTable.Subject_Id_Period_7 = Convert.ToInt16(data[nRowCount][6]);
                                    class_TimeTable.Subject_Id_Period_8 = Convert.ToInt16(data[nRowCount][7]);
                                    class_TimeTable.Week       = nRowCount + 1;
                                    class_TimeTable.Created_By = 5;
                                    class_TimeTable.Created_On = DateTime.Now;
                                    class_TimeTable.Is_Active  = true;

                                    dbcontext.Class_TimeTable.Add(class_TimeTable);
                                    dbcontext.SaveChanges();
                                }
                                else
                                {
                                    var class_TimeTable_Id_ToBeModified = dbcontext.Class_TimeTable.Where(x => x.Section_Id == nSection_Id && x.Academic_Year == nAcademic_Year && (x.Is_Deleted == null || x.Is_Deleted == false) && x.Week == (nRowCount + 1)).FirstOrDefault().Id;

                                    var Class_TimeTable_ToBeModified = dbcontext.Class_TimeTable.Find(class_TimeTable_Id_ToBeModified);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_1 = Convert.ToInt16(data[nRowCount][0]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_2 = Convert.ToInt16(data[nRowCount][1]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_3 = Convert.ToInt16(data[nRowCount][2]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_4 = Convert.ToInt16(data[nRowCount][3]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_5 = Convert.ToInt16(data[nRowCount][4]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_6 = Convert.ToInt16(data[nRowCount][5]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_7 = Convert.ToInt16(data[nRowCount][6]);
                                    Class_TimeTable_ToBeModified.Subject_Id_Period_8 = Convert.ToInt16(data[nRowCount][7]);
                                    Class_TimeTable_ToBeModified.Updated_By          = 5;
                                    Class_TimeTable_ToBeModified.Updated_On          = DateTime.Now;

                                    dbcontext.Entry(Class_TimeTable_ToBeModified).State = EntityState.Modified;
                                    dbcontext.SaveChanges();
                                }
                                if (nRowCount == (data.Length - 1))
                                {
                                    transaction.Commit();
                                    sReturnText = "OK";
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        sReturnText = ex.InnerException.Message.ToString();
                    }
                }
            }
            return(Json(sReturnText, JsonRequestBehavior.AllowGet));
        }