Example #1
0
        public HttpResponseMessage Login([FromBody] string email)
        {
            db = new DBOperationService();
            HttpResponseMessage result = null;

            try {
                var data     = db.FindUser(email);
                var saveData = new NameValueCollection();
                saveData["email"] = data.Email;
                var cookie = new CookieHeaderValue("session", saveData)
                {
                    Domain  = Request.RequestUri.Host,
                    Path    = "/",
                    Expires = DateTime.Now.AddMinutes(60)
                };
                TopObject <string> returnData = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.OK),
                    input   = email,
                    message = "登入成功"
                };
                //傳cookie+登入成功訊息
                result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <TopObject <string> >(returnData, new JsonMediaTypeFormatter())
                };
                result.Headers.AddCookies(new CookieHeaderValue[] { cookie });
                return(result);
            }
            catch (EmailNotVertifyException ex) {
                TopObject <string> mesg = new TopObject <string>()
                {
                    input   = email,
                    status  = Convert.ToInt32(HttpStatusCode.Unauthorized),
                    message = msg
                };
                result = new HttpResponseMessage(HttpStatusCode.Unauthorized)
                {
                    Content = new ObjectContent <TopObject <string> >(mesg, new JsonMediaTypeFormatter())
                };
                return(result);
            }
            catch (UserNotFoundException ex) {
                TopObject <string> obj = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.NotFound),
                    input   = email,
                    message = "沒有這位使用者或Email輸入錯誤,請先註冊再登入"
                };
                //送註冊JSON訊息
                var errorData = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new ObjectContent <TopObject <string> >(obj, new JsonMediaTypeFormatter())
                };
                return(errorData);
            }
        }
Example #2
0
        public HttpResponseMessage SignUp([FromBody] UserData userData)
        {
            //發信給使用者作信箱驗證
            email = new EmailService();
            TopObject <UserData> result;
            HttpResponseMessage  reData;

            db = new DBOperationService();
            if (!db.isEmailExist(userData.email))
            {
                User data = new User()
                {
                    Email            = userData.email,
                    location         = userData.location,
                    schoolName       = userData.schoolName,
                    identities       = userData.identity,
                    verificationCode = Guid.NewGuid().ToString().Replace("-", string.Empty),
                    isPass           = "******"
                };
                //在DB中新增一位使用者
                db.CreateUser(data);
                email.SendMail(data.Email, data.verificationCode, Request.RequestUri.ToString());
                //送出註冊成功的JSON 字串
                result = new TopObject <UserData>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.OK),
                    input   = userData,
                    message = "已寄發驗證信至您的電子郵件信箱,請先驗證您的電子郵件信箱之後再使用本系統"
                };
                reData = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <TopObject <UserData> >(result, new JsonMediaTypeFormatter())
                };
                return(reData);
            }
            else
            {
                result = new TopObject <UserData>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.Created),
                    input   = userData,
                    message = "此Email已經註冊過,請更換Email信箱"
                };
                reData = new HttpResponseMessage(HttpStatusCode.Created)
                {
                    Content = new ObjectContent <TopObject <UserData> >(result, new JsonMediaTypeFormatter())
                };
                return(reData);
            }
        }
        public HttpResponseMessage History([FromBody] Input data)
        {
            db = new DBOperationService();
            ChangeDataType    change  = new ChangeDataType();
            CookieHeaderValue cookie  = Request.Headers.GetCookies("session").FirstOrDefault();
            UseHistory        history = change.Mapper(data, cookie["session"].Values["email"], DateTime.Now);

            db.StoreHistory(history);
            TopObject <Input> result = new TopObject <Input>()
            {
                status  = Convert.ToInt32(HttpStatusCode.OK),
                input   = data,
                message = "記錄成功~!!"
            };
            var resp = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ObjectContent <TopObject <Input> >(result, new JsonMediaTypeFormatter())
            };

            return(resp);
        }
Example #4
0
        public HttpResponseMessage ResendEmail([FromBody] string address)
        {
            db    = new DBOperationService();
            email = new EmailService();
            TopObject <string>  result;
            HttpResponseMessage resp;
            var user = db.search(address);

            if (user.verificationCode != null)
            {
                email.SendMail(user.Email, user.verificationCode, Request.RequestUri.ToString());
                //丟訊息給前端
                result = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.OK),
                    input   = address,
                    message = "已寄發驗證信至您的電子郵件信箱,請先驗證您的電子郵件信箱之後再使用本系統"
                };
                resp = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <TopObject <string> >(result, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
            else
            {
                //
                result = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.NotAcceptable),
                    input   = address,
                    message = "您的信箱已驗證過了,請重新登入"
                };
                resp = new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content = new ObjectContent <TopObject <string> >(result, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
        }
Example #5
0
 public IHttpActionResult EmailVerify(string address, string authcode)
 {
     db = new DBOperationService();
     db.UpdateUserInfo(address, authcode, "Y");
     return(Redirect(redirectURL));
 }