Beispiel #1
0
        public HttpResponseMessage PostValidateCode([FromBody] ValidateInputViewModel validate)
        {
            HttpResponseMessage resp = null;
            var hasPhone             = db.Validations.Find(validate.phone);

            if (hasPhone == null)
            {
                sms.PhoneNumber = validate.phone;
                var result = sms.send();
                //var code = sms.responseFormat(result);
                var data = new Validation()
                {
                    phone      = validate.phone,
                    code       = sms.code,
                    isValidate = "N",
                    createAt   = DateTime.Now
                };

                try
                {
                    db.Validations.Add(data);
                    db.SaveChanges();
                    OutputViewModel output = new OutputViewModel()
                    {
                        status   = Convert.ToInt32(HttpStatusCode.OK),
                        input    = null,
                        validate = validate,
                        message  = "發送成功,請至您的手機查看驗證碼"
                    };
                    resp = new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                    };
                }
                catch (DbUpdateException ex)
                {
                    OutputViewModel output = new OutputViewModel()
                    {
                        status   = Convert.ToInt32(HttpStatusCode.Conflict),
                        input    = null,
                        validate = validate,
                        message  = "此門號已被驗證過,無法再驗證"
                    };
                    resp = new HttpResponseMessage(HttpStatusCode.Conflict)
                    {
                        Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                    };
                }
            }
            else if (hasPhone != null && hasPhone.isValidate != "N")
            {
                OutputViewModel output = new OutputViewModel()
                {
                    status   = Convert.ToInt32(HttpStatusCode.BadRequest),
                    input    = null,
                    validate = validate,
                    message  = "此門號已被驗證過,無法再驗證"
                };
                resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                };
            }
            else
            {
                OutputViewModel output = new OutputViewModel()
                {
                    status   = Convert.ToInt32(HttpStatusCode.Conflict),
                    input    = null,
                    validate = validate,
                    message  = "簡訊驗證碼已經產生,請確認您的簡訊驗證碼"
                };
                resp = new HttpResponseMessage(HttpStatusCode.Conflict)
                {
                    Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                };
            }
            return(resp);
        }
Beispiel #2
0
        public HttpResponseMessage PostValidate([FromBody] ValidateInputViewModel validate)
        {
            HttpResponseMessage resp = null;
            var data = db.Validations.Find(validate.phone);

            if (data == null)
            {
                OutputViewModel output = new OutputViewModel()
                {
                    status   = Convert.ToInt32(HttpStatusCode.NotFound),
                    input    = null,
                    validate = validate,
                    message  = "找不到手機門號,請確認您有取得簡訊驗證碼再行驗證"
                };
                resp = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
            else if (data.code == validate.code && data.isValidate == "N")
            {
                data.isValidate = "Y";
                try
                {
                    db.SaveChanges();
                    OutputViewModel output = new OutputViewModel()
                    {
                        status   = Convert.ToInt32(HttpStatusCode.OK),
                        input    = null,
                        validate = validate,
                        message  = "驗證成功"
                    };
                    resp = new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                    };
                    return(resp);
                }
                catch (DbUpdateException ex)
                {
                    OutputViewModel output = new OutputViewModel()
                    {
                        status   = Convert.ToInt32(HttpStatusCode.InternalServerError),
                        input    = null,
                        validate = validate,
                        message  = ex.Message
                    };
                    resp = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                    {
                        Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                    };
                    return(resp);
                }
            }
            else if (data.code != validate.code && data.isValidate == "N")  //驗證碼不對
            {
                OutputViewModel output = new OutputViewModel()
                {
                    status   = Convert.ToInt32(HttpStatusCode.BadRequest),
                    input    = null,
                    validate = validate,
                    message  = "驗證碼錯誤,請再確認您手機簡訊中的驗證碼"
                };
                resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
            else
            {
                OutputViewModel output = new OutputViewModel()
                {
                    status   = Convert.ToInt32(HttpStatusCode.Unauthorized),
                    input    = null,
                    validate = validate,
                    message  = "此門號已被驗證過,無法再驗證"
                };
                resp = new HttpResponseMessage(HttpStatusCode.Unauthorized)
                {
                    Content = new ObjectContent <OutputViewModel>(output, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
        }