public JsonResult SaveComission(string StartDate, string EndDate, string Comission)
        {
            PropertyComissionRepository objupdate = new PropertyComissionRepository();
            int i = 0;
            try
            {
                AssignBizContext();

                int id = Convert.ToInt32(BizContext.HotelID);
                DateTime StartDat = DateTime.ParseExact(StartDate, @"d/M/yyyy", null);
                DateTime EndDat = DateTime.ParseExact(EndDate, @"d/M/yyyy", null);
                DataTable ComissionTable = objupdate.GetComissionTable(id);
                DataRow[] sameIntervalComission = ComissionTable.Select(string.Format("StartDate ='{0}' and EndDate='{1}'", StartDat, EndDat));

                if (sameIntervalComission.Length > 0)
                {
                    i = objupdate.UpdateComission(Convert.ToInt16(sameIntervalComission[0]["ID"]), Comission, this);
                }
                else
                {
                    string comissionIDsToBeDeleted = "";
                    DataRow[] previousComission = ComissionTable.Select(string.Format("StartDate <'{0}' and EndDate>='{1}'", StartDat, EndDat));
                    if (previousComission.Length > 0)
                    {
                        i = objupdate.SaveComission(id, Convert.ToDateTime((previousComission[0]["StartDate"])), StartDat.AddDays(-1), Convert.ToString(previousComission[0]["Comission"]), this);
                        if (comissionIDsToBeDeleted == "")
                        {
                            comissionIDsToBeDeleted = Convert.ToString(previousComission[0]["ID"]);
                        }
                        else
                        {
                            comissionIDsToBeDeleted = comissionIDsToBeDeleted + "," + Convert.ToString(previousComission[0]["ID"]);
                        }

                    }

                    DataRow[] nextComission = ComissionTable.Select(string.Format("StartDate <='{0}' and EndDate>'{1}'", StartDat, EndDat));
                    if (nextComission.Length > 0)
                    {
                        i = objupdate.SaveComission(id, StartDat.AddDays(1), Convert.ToDateTime(nextComission[0]["EndDate"]), Convert.ToString(nextComission[0]["Comission"]), this);
                        if (comissionIDsToBeDeleted == "")
                        {
                            comissionIDsToBeDeleted = Convert.ToString(nextComission[0]["ID"]);
                        }
                        else
                        {
                            comissionIDsToBeDeleted = comissionIDsToBeDeleted + "," + Convert.ToString(nextComission[0]["ID"]);
                        }
                    }

                    DataRow[] intervalComissions = ComissionTable.Select(string.Format("StartDate >='{0}' and EndDate<='{1}'", StartDat, EndDat));
                    if (intervalComissions.Length > 0)
                    {
                        foreach (DataRow DRIC in intervalComissions)
                        {
                            if (comissionIDsToBeDeleted == "")
                            {
                                comissionIDsToBeDeleted = Convert.ToString(DRIC["ID"]);
                            }
                            else
                            {
                                comissionIDsToBeDeleted = comissionIDsToBeDeleted + "," + Convert.ToString(DRIC["ID"]);
                            }
                        }
                    }
                    i = objupdate.SaveComission(id, StartDat, EndDat, Comission, this);
                    if (comissionIDsToBeDeleted != "")
                    {
                        objupdate.DeleteComission(comissionIDsToBeDeleted);
                    }
                }

            }
            catch(Exception ex)
            {
                string hostName1 = Dns.GetHostName();
                string GetUserIPAddress = Dns.GetHostByName(hostName1).AddressList[0].ToString();
                string PageName = Convert.ToString(Session["PageName"]);
                //string GetUserIPAddress = GetUserIPAddress1();
                using (BaseRepository baseRepo = new BaseRepository())
                {
                    //BizContext BizContext1 = new BizContext();
                    BizApplication.AddError(baseRepo.BizDB, PageName, ex.Message, ex.StackTrace, DateTime.Now, GetUserIPAddress);
                }
                Session["PageName"] = "";
                string error = ErrorHandling.HandleException(ex);
                return this.Json(new DataSourceResult { Errors = error });
            }

            return Json(i, JsonRequestBehavior.AllowGet);
        }
 public ActionResult _Read([DataSourceRequest]DataSourceRequest request)
 {
     DataSourceResult result = null;
     try
     {
         AssignBizContext();
         int id = Convert.ToInt32(BizContext.HotelID);
         PropertyComissionRepository modelRepo = new PropertyComissionRepository();
         result = modelRepo.GetComission(id).ToDataSourceResult(request);
     }
     catch(Exception ex)
     {
         string hostName1 = Dns.GetHostName();
         string GetUserIPAddress = Dns.GetHostByName(hostName1).AddressList[0].ToString();
         string PageName = Convert.ToString(Session["PageName"]);
         //string GetUserIPAddress = GetUserIPAddress1();
         using (BaseRepository baseRepo = new BaseRepository())
         {
             //BizContext BizContext1 = new BizContext();
             BizApplication.AddError(baseRepo.BizDB, PageName, ex.Message, ex.StackTrace, DateTime.Now, GetUserIPAddress);
         }
         Session["PageName"] = "";
         string error = ErrorHandling.HandleException(ex);
         return this.Json(new DataSourceResult { Errors = error });
     }
     return Json(result);
 }