//Update Rank
        public static int UpdateRecord(etblRankManagement eobj)
        {
            int retval = 0;

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                try
                {
                    bool checkExists = false;
                    checkExists = db.tblRankManagements.Any(
                        p => p.iPropId == eobj.iPropId &&
                        p.iID != eobj.iID &&
                        (((p.dtStartdate <= eobj.dtStartdate && p.dtEndDate >= eobj.dtStartdate) || (p.dtStartdate <= eobj.dtEndDate && p.dtEndDate >= eobj.dtEndDate)) ||
                         ((eobj.dtStartdate <= p.dtStartdate && eobj.dtEndDate >= p.dtStartdate) || (eobj.dtStartdate <= p.dtEndDate && eobj.dtEndDate >= p.dtEndDate)))
                        );
                    if (checkExists != true)
                    {
                        OneFineRate.tblRankManagement obj = (OneFineRate.tblRankManagement)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblRankManagement());
                        db.tblRankManagements.Attach(obj);
                        db.Entry(obj).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                        retval = 1;
                    }
                    else
                    {
                        retval = 2;
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(retval);
        }
        public ActionResult Update(int Id)
        {
            etblRankManagement obj = new etblRankManagement();

            obj             = BL_tblRankManagement.GetRankManagementByID(Id);
            obj.Mode        = "Update";
            obj.dtValidFrom = obj.dtStartdate.ToString("dd/MM/yyyy");
            obj.dtValidTo   = obj.dtEndDate.ToString("dd/MM/yyyy");
            if (obj.IsSponsored == true)
            {
                obj.IsSponsoredYes = true;
                obj.IsSponsoredNo  = false;
            }
            else if (obj.IsSponsored == false)
            {
                obj.IsSponsoredYes = false;
                obj.IsSponsoredNo  = true;
            }
            else
            {
                obj.IsSponsoredYes = false;
                obj.IsSponsoredNo  = false;
            }

            if (obj.iNewRank == 0)
            {
                obj.iNewRank = null;
            }


            return(PartialView("pvRankManagement", obj));
        }
        public ActionResult Add()
        {
            etblRankManagement obj = new etblRankManagement();

            obj.IsSponsored = true;
            obj.Mode        = "Add";
            return(PartialView("pvRankManagement", obj));
        }
        public static etblRankManagement GetRankManagementByID(int a)
        {
            etblRankManagement promorec = new etblRankManagement();

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                var rec = (from m in db.tblRankManagements
                           join c in db.tblUserMs on m.iActionBy equals c.iUserId
                           select new
                {
                    m.iID,
                    m.iPropId,
                    m.dtStartdate,
                    m.dtEndDate,
                    m.IsSponsored,
                    m.IsRateDisparity,
                    m.iNewRank,
                    m.iOldRank,
                    m.cStatus,
                    UserName = c.sFirstName + " " + c.sLastName,
                    m.dtActionDate,
                    m.iActionBy
                }).Where(u => u.iID == a).AsQueryable();
                var data = rec.ToList();

                etblRankManagement objMain = new etblRankManagement();
                objMain = (etblRankManagement)OneFineRateAppUtil.clsUtils.ConvertToObject(data[0], objMain);

                promorec.iID             = objMain.iID;
                promorec.iPropId         = objMain.iPropId;
                promorec.dtStartdate     = objMain.dtStartdate;
                promorec.dtEndDate       = objMain.dtEndDate;
                promorec.IsSponsored     = objMain.IsSponsored;
                promorec.IsRateDisparity = objMain.IsRateDisparity;
                promorec.iNewRank        = objMain.iNewRank;
                promorec.iOldRank        = objMain.iOldRank;
                promorec.cStatus         = objMain.cStatus;
                promorec.dtActionDate    = objMain.dtActionDate;
                promorec.iActionBy       = objMain.iActionBy;

                return(promorec);
            }
        }
        //Delete Rank
        public static int DeleteRecord(etblRankManagement eobj)
        {
            int retval = 0;

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                try
                {
                    OneFineRate.tblRankManagement obj = (OneFineRate.tblRankManagement)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblRankManagement());
                    db.tblRankManagements.Attach(obj);
                    db.Entry(obj).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                    retval = 1;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(retval);
        }
        public ActionResult Delete(int Id)
        {
            string strReturn = string.Empty;

            try
            {
                etblRankManagement prop = new etblRankManagement();
                prop = BL_tblRankManagement.GetRankManagementByID(Id);
                if (prop.cStatus == "A")
                {
                    prop.cStatus = "I";
                }
                else if (prop.cStatus == "I")
                {
                    prop.cStatus = "A";
                }

                int val = BL_tblRankManagement.DeleteRecord(prop);
                if (val == 1)
                {
                    if (prop.cStatus == "I")
                    {
                        TempData["msg"] = "Disabled successfully";
                    }
                    else
                    {
                        TempData["msg"] = "Enabled successfully";
                    }
                }
                else
                {
                    TempData["ERROR"] = "Kindly try after some time";
                }
            }
            catch (Exception)
            {
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Save(etblRankManagement prop)
        {
            string strReturn = string.Empty;
            int    val       = 0;
            object result    = null;

            foreach (ModelState modelState in ViewData.ModelState.Values)
            {
                foreach (ModelError error in modelState.Errors)
                {
                    string str;
                    str = "a";
                    // DoSomethingWith(error);
                }
            }
            if (ModelState.IsValid)
            {
                #region Add Rank
                if (prop.Mode == "Add")
                {
                    etblRankManagement eobj = new etblRankManagement();
                    eobj.iPropId     = prop.iPropId;
                    eobj.dtStartdate = clsUtils.ConvertddmmyyyytoDateTime(prop.dtValidFrom);
                    eobj.dtEndDate   = clsUtils.ConvertddmmyyyytoDateTime(prop.dtValidTo);

                    if (prop.IsSponsoredYes == false && prop.IsSponsoredNo == false)
                    {
                        eobj.IsSponsored = null;
                    }
                    else
                    {
                        eobj.IsSponsored = prop.IsSponsoredYes;
                    }

                    eobj.IsRateDisparity = prop.IsRateDisparity;

                    if (prop.IsSponsoredNo == false)
                    {
                        eobj.iNewRank = null;
                        eobj.iOldRank = Convert.ToInt32(0);
                    }
                    else
                    {
                        eobj.iNewRank = prop.iNewRank;
                        eobj.iOldRank = prop.iOldRank;
                    }


                    eobj.cStatus      = "A";
                    eobj.dtActionDate = DateTime.Now;
                    eobj.iActionBy    = ((OneFineRateBLL.BL_Login.UserDetails)(Session["UserDetails"])).iUserId;
                    val = BL_tblRankManagement.AddRecord(eobj);
                    if (val == 1)
                    {
                        strReturn = "Added successfully.";
                        return(Json(new { st = 1, msg = strReturn }, JsonRequestBehavior.AllowGet));
                    }
                    else if (val == 2)
                    {
                        strReturn = "Property within same validity already exists";
                        return(Json(new { st = 0, msg = strReturn }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        strReturn = "Kindly try after some time.";
                        return(Json(new { st = 0, msg = strReturn }, JsonRequestBehavior.AllowGet));
                    }
                }
                #endregion


                #region Update Rank
                if (prop.Mode == "Update")
                {
                    prop.dtStartdate = clsUtils.ConvertddmmyyyytoDateTime(prop.dtValidFrom);
                    prop.dtEndDate   = clsUtils.ConvertddmmyyyytoDateTime(prop.dtValidTo);
                    if (prop.IsSponsoredYes == false && prop.IsSponsoredNo == false)
                    {
                        prop.IsSponsored = null;
                    }
                    else
                    {
                        prop.IsSponsored = prop.IsSponsoredYes;
                    }

                    if (prop.IsSponsoredNo == false)
                    {
                        prop.iNewRank = null;
                        prop.iOldRank = Convert.ToInt32(0);
                    }


                    val = BL_tblRankManagement.UpdateRecord(prop);
                    if (val == 1)
                    {
                        strReturn = "Updated successfully.";
                        return(Json(new { st = 1, msg = strReturn }, JsonRequestBehavior.AllowGet));
                    }
                    else if (val == 2)
                    {
                        strReturn = "Property within same validity already exists";
                        return(Json(new { st = 0, msg = strReturn }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        strReturn = "Kindly try after some time.";
                        return(Json(new { st = 0, msg = strReturn }, JsonRequestBehavior.AllowGet));
                    }
                }
                #endregion
            }
            else
            {
                strReturn = "Kindly try after some time.";
            }
            return(Json(new { st = 0, msg = strReturn }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Index()
        {
            etblRankManagement obj = new etblRankManagement();

            return(View(obj));
        }