public ActionResult SaveTimeTable_For_Staff(string[][] data)
        {
            string sReturnText = string.Empty;

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

                            for (int nRowCount = 0; nRowCount < data.Length; nRowCount++)
                            {
                                Staff_TimeTable staff_TimeTable = new Staff_TimeTable();

                                if (dbcontext.Staff_TimeTable.Where(x => x.Staff_Id == nStaff_Id && x.Academic_Year == nAcademic_Year && (x.Is_Deleted == null || x.Is_Deleted == false) && x.Week == (nRowCount + 1)).Count() == 0)
                                {
                                    staff_TimeTable.Academic_Year = nAcademic_Year;
                                    staff_TimeTable.Staff_Id      = nStaff_Id;
                                    //staff_TimeTable.Class_Id = dbcontext.Section.Where(x => x.Id == nSection_Id).FirstOrDefault().Class_Id;
                                    staff_TimeTable.Section_Id_Period1 = Convert.ToInt16(data[nRowCount][0]);
                                    staff_TimeTable.Section_Id_Period2 = Convert.ToInt16(data[nRowCount][1]);
                                    staff_TimeTable.Section_Id_Period3 = Convert.ToInt16(data[nRowCount][2]);
                                    staff_TimeTable.Section_Id_Period4 = Convert.ToInt16(data[nRowCount][3]);
                                    staff_TimeTable.Section_Id_Period5 = Convert.ToInt16(data[nRowCount][4]);
                                    staff_TimeTable.Section_Id_Period6 = Convert.ToInt16(data[nRowCount][5]);
                                    staff_TimeTable.Section_Id_Period7 = Convert.ToInt16(data[nRowCount][6]);
                                    staff_TimeTable.Section_Id_Period8 = Convert.ToInt16(data[nRowCount][7]);
                                    staff_TimeTable.Week       = nRowCount + 1;
                                    staff_TimeTable.Created_By = 5;
                                    staff_TimeTable.Created_On = DateTime.Now;
                                    staff_TimeTable.Is_Active  = true;

                                    dbcontext.Staff_TimeTable.Add(staff_TimeTable);
                                    dbcontext.SaveChanges();
                                }
                                else
                                {
                                    var staff_TimeTable_Id_ToBeModified = dbcontext.Staff_TimeTable.Where(x => x.Staff_Id == nStaff_Id && x.Academic_Year == nAcademic_Year && (x.Is_Deleted == null || x.Is_Deleted == false) && x.Week == (nRowCount + 1)).FirstOrDefault().Id;

                                    var Staff_TimeTable_ToBeModified = dbcontext.Staff_TimeTable.Find(staff_TimeTable_Id_ToBeModified);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period1 = Convert.ToInt16(data[nRowCount][0]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period2 = Convert.ToInt16(data[nRowCount][1]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period3 = Convert.ToInt16(data[nRowCount][2]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period4 = Convert.ToInt16(data[nRowCount][3]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period5 = Convert.ToInt16(data[nRowCount][4]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period6 = Convert.ToInt16(data[nRowCount][5]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period7 = Convert.ToInt16(data[nRowCount][6]);
                                    Staff_TimeTable_ToBeModified.Section_Id_Period8 = Convert.ToInt16(data[nRowCount][7]);
                                    Staff_TimeTable_ToBeModified.Updated_By         = 5;
                                    Staff_TimeTable_ToBeModified.Updated_On         = DateTime.Now;

                                    dbcontext.Entry(Staff_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));
        }
        public JsonResult AddStaff_TimeTable(int Staff_Id, long Academic_Year)
        {
            List <Staff_TimeTable> Staff_TimeTableList_ViewModelobj = new List <Staff_TimeTable>();

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


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

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

                                    //}
                                    //else
                                    //{

                                    //}
                                }

                                Staff_TimeTableList_ViewModelobj.Add(staffTimeTableViewModel);
                            }
                            return(Json(Staff_TimeTableList_ViewModelobj.ToArray(), JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            var existingstaffTimeTable = dbcontext.Staff_TimeTable.Where(x => x.Staff_Id == Staff_Id && x.Academic_Year == Academic_Year && (x.Is_Deleted == null || x.Is_Deleted == false)).ToList();
                            return(Json(existingstaffTimeTable.ToArray(), JsonRequestBehavior.AllowGet));
                        }
                    }
                    catch (Exception ex)
                    {
                        return(Json(ex.InnerException.Message.ToString(), JsonRequestBehavior.AllowGet));
                    }
                }
            }
        }