public IsSubscribedWithRemainingDate checkUserStatus(string userNo) { //Check weather user is subcribed or new user.... var resultmodel = db.objCheckSubcription.Where(t => t.UserName == userNo).Select(t => t).ToList(); IsSubscribedWithRemainingDate isSubscribedWithRemainingDate = new IsSubscribedWithRemainingDate(); //for new user or unsubscribed user assign false and o isSubscribedWithRemainingDate.Renew = false; isSubscribedWithRemainingDate.ExpiredRemainingDate = 0; //if New user if (resultmodel.Count == 0) { isSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_NEW_USER_ID; //4 } //if user exists else { // 1 mean subscribed if (resultmodel[0].Status == ConstantValues.STATUS_SUBSCRIBE_ID) { isSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_SUBSCRIBE_ID;//1 isSubscribedWithRemainingDate.ExpiredDate = Convert.ToString(resultmodel[0].ExpireDate.ToString("MM/dd/yyyy HH:mm:ss tt")); // isSubscribedWithRemainingDate.ExpiredDate = resultmodel[0].ExpireDate; //.ToString("MM/dd/yyyy HH:mm:ss tt") //Compare Expiread DateTime with Current DateTime variable.CheckResult = DateTime.Compare(DateTime.Now, resultmodel[0].ExpireDate); //variable.CheckResult<0 means DateTime.Now<resultmodel[0].ExpireDate //variable.CheckResult==0 means DateTime.Now==resultmodel[0].ExpireDate //variable.CheckResult>0 means DateTime.Now>resultmodel[0].ExpireDate if (variable.CheckResult > 0) { //expiread date over so status is Unsubscribed ChangeCurrentStatus(userNo); isSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_UN_SUBSCRIBE_ID; //1 } else { isSubscribedWithRemainingDate.ExpiredRemainingDate = Convert.ToInt32((resultmodel[0].ExpireDate - DateTime.Now).TotalDays); //has some time but days 0 so we give day =1 if (isSubscribedWithRemainingDate.ExpiredRemainingDate == 0) { isSubscribedWithRemainingDate.ExpiredRemainingDate = 1; } //check if ExpiredRemainingDate is less 30 renew true else renew false if (isSubscribedWithRemainingDate.ExpiredRemainingDate < ConstantValues.SUB_DATE_RANGE) { isSubscribedWithRemainingDate.Renew = true; } } } //unsubscribed else if (resultmodel[0].Status == ConstantValues.STATUS_UN_SUBSCRIBE_ID) { isSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_UN_SUBSCRIBE_ID; //2 } //Exception else { isSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_EXCEPTION_ID; //5 } } return(isSubscribedWithRemainingDate); }
public override void OnAuthorization(AuthorizationContext filterContext) // { var rd = filterContext.HttpContext.Request.RequestContext.RouteData; variable.ActionName = rd.GetRequiredString("action"); variable.ControllerName = rd.GetRequiredString("controller"); variable.Parameter = filterContext.HttpContext.Request["IsDevice"] as string; if (variable.Parameter == null) { variable.Parameter = rd.Values["IsDevice"] as string; } if (filterContext.HttpContext.User.Identity.IsAuthenticated) { variable.UserPhoneNo = filterContext.HttpContext.User.Identity.Name; } else { //get User No from Header variable.UserPhoneNo = objMsisdnUserStatus.GetMSISDNHeader(filterContext); // variable.UserPhoneNo = "8801865554868"; } // //check if user No is not found if (variable.UserPhoneNo == null) { //header not found redirect //if request does not come from device/apk redirect a page filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Subscribe", action = "HeaderError", IsDevice = variable.Parameter })); } // //if user exists else { //To Do check user is in Role //base.OnAuthorization(filterContext); //get this user status from SubscribeController at IsSubscribedWithRemainingDate(string userNo) method checkStatus = objMsisdnUserStatus.checkUserStatus(variable.UserPhoneNo); //if status is subscribed statusId=1 if (checkStatus.StatusID == ConstantValues.STATUS_SUBSCRIBE_ID) //1 { //check is already authenticate then grant paermission if not try to login if (!filterContext.HttpContext.Request.IsAuthenticated) { //try to login checkStatus.LoginResult = objAccount.DeviceAuthorizationLogin(variable.UserPhoneNo); //if login does not success if (checkStatus.LoginResult == ConstantValues.LOGIN_STATUS_FAILED_ID) //0 { //todo login error try again filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Subscribe", action = "LoginFailed", IsDevice = variable.Parameter })); } else { //access granted nothing to do heare } } } else { //for Unsubscribe or New user do throw Subscribe page if request does not come from Device if (variable.Parameter == ConstantValues.Device) { //request come from a Device/apk //Redirect Subscribe/DeviceSubscribe Action with parameter filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Subscribe", action = "DeviceSubscribe", Option = checkStatus.StatusID })); } else { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Subscribe", action = "Subscribe", Option = checkStatus.StatusID })); } } } }
public ActionResult DeviceLogin(string versionName) //Task<string> string username=null, string password=null double? versionName { //version check if (versionName != ConstantValues.RIP_APK_VERSION_Name) { IsSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_APK_VERSION_NOT_ALLOWLED; } else { //Header Check variable.UserPhoneNo = objCheckMsisdnUserStatus.GetHeaderWhileActionRequested(Request); if (variable.UserPhoneNo != null && !variable.UserPhoneNo.Equals("")) { //check is user subscribed or unsubscribed or new user IsSubscribedWithRemainingDate = objCheckMsisdnUserStatus.checkUserStatus(variable.UserPhoneNo); //obj.IsSubscribedWithRemainingDate(variable.UserPhoneNo); //then add UserPhoneNO to IsSubscribedWithRemainingDate object IsSubscribedWithRemainingDate.UserPhoneNo = variable.UserPhoneNo; //assign login Status 0 means Failed variable._loginResult = IsSubscribedWithRemainingDate.LoginResult = ConstantValues.LOGIN_STATUS_FAILED_ID; //if user is a subescribed (1) user then check identityUser table if (IsSubscribedWithRemainingDate.StatusID == ConstantValues.STATUS_SUBSCRIBE_ID) { //add userPhone and Login Status ID "0" or "1" //if already Authenticated if (User.Identity.IsAuthenticated) { IsSubscribedWithRemainingDate.LoginResult = ConstantValues.LOGIN_STATUS_SUCCESS_ID; } else { IsSubscribedWithRemainingDate.LoginResult = DeviceAuthorizationLogin(variable.UserPhoneNo); } //return With Login Success 1 or Failed 0 return(Json(new { IsSubscribedWithRemainingDate }, JsonRequestBehavior.AllowGet)); } //if user is UnSubscribed else if (IsSubscribedWithRemainingDate.StatusID == ConstantValues.STATUS_UN_SUBSCRIBE_ID) { //add userPhone and LOGIN_STATUS_FAILED_ID return(Json(new { IsSubscribedWithRemainingDate }, JsonRequestBehavior.AllowGet)); } else { //if it new user add userPhone and LOGIN_STATUS_FAILED_ID return(Json(new { IsSubscribedWithRemainingDate }, JsonRequestBehavior.AllowGet)); } } //if header is not found LOGIN_STATUS_NOT_ROBI_ID 2 IsSubscribedWithRemainingDate.StatusID = ConstantValues.STATUS_NOT_ROBI_ID; } return(Json(new { IsSubscribedWithRemainingDate }, JsonRequestBehavior.AllowGet)); // }