Exemple #1
0
        public HttpResponseMessage RequestOTP([FromBody] UserModel model)
        {
            try
            {
                var user = _iUserServices.GetUserByInfo(model.email);
                if (user == null)
                {
                    return(ResponseHelper.ErrorResult(Request, HttpStatusCode.BadRequest,
                                                      ErrorMessages.ERROR_MSG_USER_NOT_EXISTED, ErrorCodeStrings.USER_IS_NOT_EXISTED, null));
                }

                var userAuthInfo = _iUserAuthInfoServices.GetUserAuthInfoByUserId(user.id);
                if (userAuthInfo == null)
                {
                    return(ResponseHelper.ErrorResult(Request, HttpStatusCode.BadRequest,
                                                      ErrorMessages.ERROR_MSG_USER_AUTH_INFO_NOT_EXISTED, ErrorCodeStrings.USER_IS_NOT_REGISTERED, null));
                }

                // Generate OTP
                var otpCode = Utils.OTPNumber();

                // Send OTP Email
                //string link = string.Format(Request.Url.Host + "/satraservices/api/confirm?session={0}&otp={1}", sessionKey, OTPKey);
                string mailbody = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("~/Template/MailTemplate.html"));
                mailbody = mailbody.Replace("--OTP--", otpCode);
                mailbody = mailbody.Replace("source-path", "http://210.211.118.178/PetsAPI/Template/background-4.jpg");
                Utils.GoogleMail(user.email, ConfigKey.MAILTITLE, mailbody, ConfigKey.EMAIL, ConfigKey.PASSWORD);

                // Send OTP SMS

                var otp = new OTPEntity()
                {
                    otpCode        = otpCode,
                    userAuthInfoId = userAuthInfo.id,
                    expiredOn      = DateTime.Now.AddMinutes(UserAppConstant.OTP_CODE_EXPIRED_ON)
                };

                _iOtpServices.CreateOTP(otp);
                const string data = "Send OTP Successfully";
                return(Request.CreateResponse(HttpStatusCode.OK, new { data }));
            }
            catch (Exception e)
            {
                return(ResponseHelper.ErrorResult(Request, HttpStatusCode.InternalServerError, ErrorMessages.ERROR_MSG_SERVER_ERROR, ErrorCodeStrings.SERVER_ERROR, e.ToString()));
            }
        }
        public HttpResponseMessage Post([FromBody] UserModel model)
        {
            try
            {
                var user = _iUserServices.GetUserByInfo(model.info);
                if (user == null)
                {
                    return(ResponseHelper.ErrorResult(Request, HttpStatusCode.BadRequest,
                                                      ErrorMessages.ERROR_MSG_USER_NOT_EXISTED, ErrorCodeStrings.USER_IS_NOT_EXISTED, null));
                }
                var userAuthInfo = _iUserAuthInfoServices.GetUserAuthInfoByUserId(user.id);
                if (userAuthInfo == null)
                {
                    return(ResponseHelper.ErrorResult(Request, HttpStatusCode.BadRequest,
                                                      ErrorMessages.ERROR_MSG_USER_AUTH_INFO_NOT_EXISTED, ErrorCodeStrings.USER_IS_NOT_REGISTERED, null));
                }
                if (userAuthInfo.passwordHash != model.passwordHash)
                {
                    return(ResponseHelper.ErrorResult(Request, HttpStatusCode.BadRequest,
                                                      ErrorMessages.ERROR_MSG_INVALID_PASSWORD, ErrorCodeStrings.INVALID_PASSWORD, null));
                }

                var authToken     = Utils.NewGuid();
                var sessionEntity = new SessionEntity
                {
                    authToken      = Utils.MD5Hash(authToken),
                    userAuthInfoId = userAuthInfo.id,
                    isVerified     = true,
                    expiredOn      = DateTime.Now.AddMonths(1)
                };
                var session = _iSessionServices.CreateSession(sessionEntity);
                return(Request.CreateResponse(HttpStatusCode.OK, session));
            }

            catch (Exception e)
            {
                return(ResponseHelper.ErrorResult(Request, HttpStatusCode.InternalServerError, ErrorMessages.ERROR_MSG_SERVER_ERROR, ErrorCodeStrings.SERVER_ERROR, e.ToString()));
            }
        }