예제 #1
0
        public object PostLogout(Postloginreq _login)
        {
            try
            {
                using (newconecommerce dataContext = new newconecommerce())
                {
                    dataContext.Database.Connection.Open();

                    tbl_OTP _logoutInput = dataContext.tbl_OTP.Single(e => e.int_user_id == _login.intloginId && e.dt_logout_time == null);
                    _logoutInput.dt_logout_time = DateTime.Now;
                    dataContext.SaveChanges();
                    dataContext.Database.Connection.Close();

                    return(new ResponseModel {
                        StatusCode = (int)CCommon.StatusCode.Success, StatusMessaage = CCommon.StatusCode.Success.ToString(), data = ""
                    });
                }
            }
            catch (Exception ex)
            {
                CMail.SendSystemGeneratedMailSync(CCommon.strAdminEmailID, "TRACKING-ERROR-MAIL", ex.ToString(), CCommon.strEmailFrom, true);
                return(new ResponseModel {
                    StatusCode = (int)CCommon.StatusCode.ExceptionOccured, StatusMessaage = CCommon.StatusCode.ExceptionOccured.ToString(), data = ""
                });
            }
        }
예제 #2
0
        public object PostLogin(Postloginreq _login)
        {
            try
            {
                Random generator  = new Random();
                string number     = generator.Next(1, 10000).ToString("D4");
                string strMessage = "Your OTP for Just Cool App is :" + number + ". Regards Corvi.com";

                using (newconecommerce dataContext = new newconecommerce())
                {
                    var query = (from x in dataContext.tbl_OTP
                                 where x.int_user_id == _login.intloginId && x.dt_logout_time == null
                                 select x.int_user_id).FirstOrDefault();

                    if (query != null)
                    {
                        return(new ResponseModel {
                            StatusCode = (int)CCommon.StatusCode.Fail, StatusMessaage = CCommon.StatusCode.Fail.ToString(), data = "Already logged in with other device."
                        });
                    }
                    else
                    {
                        dataContext.Database.Connection.Open();

                        tbl_OTP _objLoginInput = new tbl_OTP();
                        _objLoginInput.int_moduleType_id = _login.intModuleTypeId;
                        _objLoginInput.int_user_id       = _login.intloginId;
                        _objLoginInput.int_OTP           = Convert.ToInt32(number);
                        _objLoginInput.dt_OTP_created    = DateTime.Now;
                        _objLoginInput.dt_login_time     = DateTime.Now;
                        _objLoginInput.v_device_id       = _login.strDeviceId;
                        _objLoginInput.v_device_token    = _login.strDevicetoken;
                        _objLoginInput.v_device_token    = _login.strDevicemode;
                        _objLoginInput.dt_created_on     = DateTime.Now;
                        dataContext.tbl_OTP.Add(_objLoginInput);
                        dataContext.SaveChanges();
                        dataContext.Database.Connection.Close();

                        return(new ResponseModel {
                            StatusCode = (int)CCommon.StatusCode.Success, StatusMessaage = CCommon.StatusCode.Success.ToString(), data = "Login success"
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                CMail.SendSystemGeneratedMailSync(CCommon.strAdminEmailID, "TRACKING-ERROR-MAIL", ex.ToString(), CCommon.strEmailFrom, true);
                return(new ResponseModel {
                    StatusCode = (int)CCommon.StatusCode.ExceptionOccured, StatusMessaage = CCommon.StatusCode.ExceptionOccured.ToString(), data = "Failed to login."
                });
            }
        }
예제 #3
0
        public BaseOutput GenarateOTPByNumber(string phoneNumber, out string itemOut)
        {
            CRUDOperation cRUDOperation = new CRUDOperation();
            BaseOutput    baseOutput;

            try
            {
                if (string.IsNullOrEmpty(phoneNumber))
                {
                    itemOut = null;
                    return(baseOutput = new BaseOutput(true, CustomError.PhoneNumberErrorCode, CustomError.PhoneNumberErrorDesc, ""));
                }

                byte[] bytes  = System.Text.Encoding.UTF8.GetBytes(phoneNumber);
                var    window = new VerificationWindow(previous: 1, future: 1);
                var    totp   = new Totp(bytes, step: 300);
                var    result = totp.ComputeTotp(DateTime.UtcNow);
                poctgoyerciniSRV.smsservice srv = new poctgoyerciniSRV.smsservice();
                List <string> lists             = new List <string>();
                string[]      numbers           = new string[1];
                numbers[0] = phoneNumber;
                string[] resultArray = new string[1];
                resultArray = srv.SmsInsert_1_N(WebServiceUtil.SMSUserName, WebServiceUtil.SMSPassword, DateTime.Now, null, numbers, result);

                if (!string.IsNullOrEmpty(resultArray[0]))
                {
                    tbl_OTP _OTP = new tbl_OTP()
                    {
                        PhoneNumber = phoneNumber,
                        CreateTime  = DateTime.Now,
                        OTPCode     = result,
                        ISsuccess   = 0,
                    };

                    tbl_OTP oTP = cRUDOperation.AddOTP(_OTP);
                    itemOut = _OTP.OTPCode;
                    return(baseOutput = new BaseOutput(true, BOResultTypes.Success.GetHashCode(), BOBaseOutputResponse.SuccessResponse, ""));
                }
                else
                {
                    itemOut = null;
                    return(baseOutput = new BaseOutput(true, CustomError.OTPCodeNotSendSMSServiceCode, CustomError.OTPCodeNotSendSMSServiceDesc, ""));
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #4
0
        public BaseOutput VerifyOTPByNumber(string phoneNumber, string otptext, out bool verify)
        {
            CRUDOperation cRUDOperation = new CRUDOperation();
            BaseOutput    baseOutput;

            try
            {
                if (string.IsNullOrEmpty(phoneNumber))
                {
                    verify = false;
                    return(baseOutput = new BaseOutput(true, CustomError.PhoneNumberErrorCode, CustomError.PhoneNumberErrorDesc, ""));
                }
                else if (string.IsNullOrEmpty(otptext))
                {
                    verify = false;
                    return(baseOutput = new BaseOutput(true, CustomError.EmptyOTPCodeErrorCode, CustomError.EmptyOTPCodeErrorDesc, ""));
                }

                else
                {
                    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(phoneNumber);
                    var    totp  = new Totp(bytes, step: 300);
                    var    input = otptext;
                    long   timeStepMatched;
                    verify = totp.VerifyTotp(input, out timeStepMatched, window: null);

                    tbl_OTP OTPObj = cRUDOperation.GetOTPByOtpCode(otptext, phoneNumber);
                    if (verify)
                    {
                        OTPObj.ISsuccess = 1;
                        tbl_OTP OTPupdate = cRUDOperation.UpdateOTP(OTPObj);
                    }
                    else
                    {
                        OTPObj.ISsuccess = 2;
                        tbl_OTP OTPupdate = cRUDOperation.UpdateOTP(OTPObj);
                    }

                    return(baseOutput = new BaseOutput(true, BOResultTypes.Success.GetHashCode(), BOBaseOutputResponse.SuccessResponse, ""));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #5
0
        public BaseOutput VerifyOTP(string userName, string otptext, out bool verify)
        {
            CRUDOperation cRUDOperation = new CRUDOperation();
            BaseOutput    baseOutput;

            try
            {
                if (string.IsNullOrEmpty(userName))
                {
                    verify = false;
                    return(baseOutput = new BaseOutput(true, CustomError.EmptyUserNameErrorCode, CustomError.EmptyUserNameErrorDesc, ""));
                }
                else if (string.IsNullOrEmpty(otptext))
                {
                    verify = false;
                    return(baseOutput = new BaseOutput(true, CustomError.EmptyOTPCodeErrorCode, CustomError.EmptyOTPCodeErrorDesc, ""));
                }

                tbl_User user = cRUDOperation.GetUserByUserName(userName);

                if (user == null)
                {
                    verify = false;
                    return(baseOutput = new BaseOutput(true, CustomError.UserNameNotFoundCode, CustomError.UserNameNotFoundDesc, ""));
                }
                else
                {
                    string phoneNumber = string.Empty;
                    if (user.UserType_EVID == (long)UserType.Customer)
                    {
                        phoneNumber = userName;
                    }
                    else if (user.UserType_EVID == (long)UserType.Provider)
                    {
                        tbl_Provider customer = cRUDOperation.GetProviderByUserName(user.UserName);
                        phoneNumber = customer.RelatedPersonPhone;
                    }
                    else if (user.UserType_EVID == (long)UserType.ProviderBranch)
                    {
                        tbl_Provider customer = cRUDOperation.GetProviderByUserName(user.UserName);
                        phoneNumber = customer.RelatedPersonPhone;
                    }
                    if (string.IsNullOrEmpty(phoneNumber))
                    {
                        verify = false;
                        return(baseOutput = new BaseOutput(true, CustomError.PhoneNumberErrorCode, CustomError.PhoneNumberErrorDesc, ""));
                    }



                    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(userName);
                    var    totp  = new Totp(bytes, step: 300);
                    var    input = otptext;
                    long   timeStepMatched;
                    verify = totp.VerifyTotp(input, out timeStepMatched, window: null);

                    tbl_OTP OTPObj = cRUDOperation.GetOTPByOtpCode(otptext, phoneNumber);
                    if (verify)
                    {
                        OTPObj.ISsuccess = 1;
                        tbl_OTP OTPupdate = cRUDOperation.UpdateOTP(OTPObj);
                    }
                    else
                    {
                        OTPObj.ISsuccess = 2;
                        tbl_OTP OTPupdate = cRUDOperation.UpdateOTP(OTPObj);
                    }

                    return(baseOutput = new BaseOutput(true, BOResultTypes.Success.GetHashCode(), BOBaseOutputResponse.SuccessResponse, ""));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }