コード例 #1
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            Int64 AppUserId;

            if (IsAuthorizedRequest(Request, Response, true, out AppUserId))
            {
                Response.ContentType = @"application/json";

                try
                {
                    AppMembership.AppUserLoggedInAction(AppUserId);
                }
                catch { }

                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();

                        jsonWriter.WritePropertyName(@"user_id");
                        jsonWriter.WriteValue(AppUserId);

                        Int64?cityId = AppUser.FetchByID(AppUserId).CityId;
                        jsonWriter.WritePropertyName(@"is_city_exists");
                        jsonWriter.WriteValue(cityId != null && cityId != 0);

                        jsonWriter.WriteEndObject();
                    }
                }
            }
        }
コード例 #2
0
        protected void btnResetPassword_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }
            AppMembership.AppUserRecoveryResults results = AppMembership.VerifyRecoveryKey(Email, RecoveryKey, txtNewPassword.Text);
            switch (results)
            {
            case AppMembership.AppUserRecoveryResults.Success:
                mcMessageCenter.DisplaySuccessMessage(AppForgotPasswordStrings.GetText(@"ResetPasswordSuccess"));
                phResetFields.Visible = false;
                break;

            default:
            case AppMembership.AppUserRecoveryResults.Expired:
            case AppMembership.AppUserRecoveryResults.KeyDoNotMatch:
                mcMessageCenter.DisplayErrorMessage(AppForgotPasswordStrings.GetText(@"InvalidRecoveryKey"));
                phResetFields.Visible = false;
                break;

            case AppMembership.AppUserRecoveryResults.AppUserDoesNotExist:
                mcMessageCenter.DisplayErrorMessage(AppForgotPasswordStrings.GetText(@"EmailDoesNotExist"));
                phResetFields.Visible = false;
                break;
            }
        }
コード例 #3
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string email = inputData.Value <string>(@"email") ?? "";

            Response.ContentType = @"application/json";

            string  key  = AppMembership.GenerateRecoveryKey(email);
            AppUser user = null;

            if (key != null)
            {
                user = AppUser.FetchByEmail(email);
            }

            if (key == null || user == null)
            {
                RespondNotFound(Response);
            }
            else
            {
                EmailMessagingService.SendPasswordRecoveryMailForAppUser(user, key, "he-IL");

                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();
                        jsonWriter.WriteEndObject();
                    }
                }
            }
        }
コード例 #4
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);



            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            try
            {
                string version            = inputData.Value <string>(@"version");
                int    osType             = inputData.Value <int>(@"os_type");
                AppMembership.OsType type = (AppMembership.OsType)Enum.ToObject(typeof(AppMembership.OsType), osType);
                if (AppMembership.AuthenticateDeviceVersionSupplier(version, type))
                {
                    RespondError(Response, HttpStatusCode.Forbidden, @"device-version-not-updated");
                }
                else
                {
                    using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                    {
                        using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                        {
                            jsonWriter.WriteStartObject();
                            jsonWriter.WriteEndObject();
                        }
                    }
                }
            }
            catch
            {
            }
        }
コード例 #5
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            Int64 SupplierId;

            if (IsAuthorizedRequestSupplier(Request, Response, true, out SupplierId))
            {
                Response.ContentType = @"application/json";
                List <object> SupplierStatus = new List <object>();
                try
                {
                    AppMembership.AppSupplierLoggedInAction(SupplierId, out SupplierStatus);
                }
                catch { }

                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();

                        jsonWriter.WritePropertyName(@"user_id");
                        jsonWriter.WriteValue(SupplierId);

                        jsonWriter.WritePropertyName(@"status");
                        jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[0] : false);

                        jsonWriter.WritePropertyName(@"allow_change_status_join_bids");
                        jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[1] : false);

                        jsonWriter.WritePropertyName(@"is_auto_join_bid");
                        jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[2] : false);

                        jsonWriter.WritePropertyName(@"max_winning_num");
                        jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[3] : 0);

                        jsonWriter.WritePropertyName(@"is_service_supplier");
                        jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[4] : false);

                        jsonWriter.WriteEndObject();
                    }
                }
            }
        }
コード例 #6
0
        protected void btnForgotPassword_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            string key = AppMembership.GenerateRecoveryKey(txtEmail.Text);

            if (!string.IsNullOrEmpty(key))
            {
                EmailMessagingService.SendPasswordRecoveryMailForAppUser(core.DAL.AppUser.FetchByEmail(txtEmail.Text), key, null);
                mcMessageCenter.DisplaySuccessMessage(AppForgotPasswordStrings.GetText(@"ForgotPasswordSent"));
                phForgotFields.Visible = false;
            }
            else
            {
                mcMessageCenter.DisplayErrorMessage(AppForgotPasswordStrings.GetText(@"ForgotPasswordFailed"));
                phForgotFields.Visible = false;
            }
        }
コード例 #7
0
        protected void btnImport_Click(object sender, EventArgs e)
        {
            if (CsvDataTable != null)
            {
                int count = 0;
                try
                {
                    foreach (DataRow appUserRow in CsvDataTable.Rows)
                    {
                        if (appUserRow["Comments"].ToString() == "")
                        {
                            AppUser app_user = null;
                            AppMembership.AppUserCreateResults results = AppMembership.CreateAppUser(appUserRow["Email"].ToString(), appUserRow["Password"].ToString(), @"", out app_user);
                            if (results != AppMembership.AppUserCreateResults.Success)
                            {
                                throw new Exception();
                            }
                            app_user.FirstName = appUserRow["FirstName"].ToString();
                            app_user.LastName  = appUserRow["LastName"].ToString();
                            app_user.IsLocked  = appUserRow["IsLocked"].ToString() == "0" ? false : true;;
                            app_user.Phone     = appUserRow["Phone"].ToString();
                            // app_user.OrderDisplay = OrderDisplay.GetLastOrder() + 1;

                            app_user.Save();
                            count++;
                        }
                    }
                    lblImportResult.Text = AppUsersStrings.GetText(@"MessageImportSuccess");
                }
                catch
                {
                    lblImportResult.Text = AppUsersStrings.GetText(@"MessageImportFailedUnknown");
                }
                phImportResult.Visible = true;
                lblTotalImported.Text  = count.ToString();
                btnImport.Enabled      = false;
                phErrors.Visible       = false;
                phAppUsersList.Visible = false;
            }
        }
コード例 #8
0
 private void Save(AppSupplier supplier)
 {
     supplier.BusinessName = txtbusiness.Text;
     supplier.ContactName  = txtContactName.Text;
     supplier.Email        = txtEmail.Text;
     supplier.ContactPhone = txtContactPhone.Text;
     supplier.HouseNum     = txtNumber.Text;
     supplier.Street       = txtStreet.Text;
     supplier.CityId       = Convert.ToInt64(ddlCity.SelectedValue);
     supplier.Phone        = txtPhone.Text;
     supplier.Description  = txtDescription.Text;
     supplier.Discount     = txtDiscount.Text;
     if (txtPassword.Text.Trim() != "" && txtConfirmPassword.Text.Trim() != "")
     {
         string pwd, salt;
         AppMembership.EncodePassword(txtPassword.Text.Trim(), out pwd, out salt);
         supplier.Password     = pwd;
         supplier.PasswordSalt = salt;
     }
     if (supplier.IsService)
     {
         supplier.ApprovedTermsDate = DateTime.Now;
         if (fuImage.HasFile)
         {
             string fn = MediaUtility.SaveFile(fuImage.PostedFile, "SupplupCityier/225x225", 0, true);
             supplier.ProfileImage = fn;
             imgImage.ImageUrl     = Snoopi.core.MediaUtility.GetImagePath("Supplier", supplier.ProfileImage, 0, 225, 225);
             ImageFileHandler(fuImage, imgImage, btnDeleteImage, imgImage.ImageUrl);
         }
         else if (supplier.ProfileImage != "" && fuImage.Visible)
         {
             MediaUtility.DeleteImageFilePath("Supplier", supplier.ProfileImage, 225, 225, 0);
             supplier.ProfileImage = "";
         }
     }
     supplier.Save();
     Response.Redirect("MyProfile.aspx");
     Master.MessageCenter.DisplaySuccessMessage(SupplierProfileStrings.GetText(@"Success"));
 }
コード例 #9
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;
            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string email = inputData.Value<string>(@"email") ?? "";
            string password = inputData.Value<string>(@"password") ?? "";

            Response.ContentType = @"application/json";

            Int64 SupplierId;
            AppMembership.AppUserAuthenticateResults res = AppMembership.AuthenticateAppSupplier(email, password, out SupplierId);
            switch (res)
            {
                case AppMembership.AppUserAuthenticateResults.Success:
                    {
                        List<object> SupplierStatus = new List<object>();
                        AppSupplierAuthToken at = AuthTokens.GenerateAuthTokenForAppSupplierId(SupplierId, 0);

                        try
                        {
                            AppMembership.AppSupplierLoggedInAction(SupplierId, out SupplierStatus);
                        }
                        catch { }

                        using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                        {
                            using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                            {
                                jsonWriter.WriteStartObject();

                                jsonWriter.WritePropertyName(@"access_token");
                                jsonWriter.WriteValue(AuthTokens.AccessToken(at));

                                jsonWriter.WritePropertyName(@"user_id");
                                jsonWriter.WriteValue(SupplierId);

                                jsonWriter.WritePropertyName(@"status");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[0] : false);

                                jsonWriter.WritePropertyName(@"allow_change_status_join_bids");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[1] : false);

                                jsonWriter.WritePropertyName(@"is_auto_join_bid");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[2] : false);
                                
                                jsonWriter.WritePropertyName(@"is_service_supplier");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[4] : false);

                                jsonWriter.WritePropertyName(@"max_winning_num");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[3] : 0);

                                jsonWriter.WriteEndObject();
                            }
                        }
                    }
                    break;
                default:
                case AppMembership.AppUserAuthenticateResults.LoginError:
                    {
                        RespondBadRequest(Response);
                    }
                    break;
                case AppMembership.AppUserAuthenticateResults.NotVerified:
                    {
                        RespondError(Response, HttpStatusCode.Forbidden, @"not-verified");
                    }
                    break;
                case AppMembership.AppUserAuthenticateResults.NoMatch:
                    {
                        RespondError(Response, HttpStatusCode.Forbidden, @"no-match");
                    }
                    break;
                case AppMembership.AppUserAuthenticateResults.Locked:
                    {
                        RespondError(Response, HttpStatusCode.Forbidden, @"locked");
                    }
                    break;
            }
        }
コード例 #10
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string accessToken = inputData.Value <string>(@"access_token") ?? "";

            Response.ContentType = @"application/json";

            AppUser user;

            AppMembership.AppUserFacebookConnectResults res = AppMembership.ConnectAppUserToFacebook(accessToken, out user);
            switch (res)
            {
            case AppMembership.AppUserFacebookConnectResults.Success:
            {
                AppUserAuthToken at = AuthTokens.GenerateAuthTokenForAppUserId(user.AppUserId, 0);

                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();

                        jsonWriter.WritePropertyName(@"access_token");
                        jsonWriter.WriteValue(AuthTokens.AccessToken(at));

                        jsonWriter.WritePropertyName(@"user_id");
                        jsonWriter.WriteValue(user.AppUserId);

                        Int64?cityId = user.CityId;
                        jsonWriter.WritePropertyName(@"is_city_exists");
                        jsonWriter.WriteValue(cityId != null && cityId != 0);

                        jsonWriter.WriteEndObject();
                    }
                }
            }
            break;

            default:
            case AppMembership.AppUserFacebookConnectResults.LoginError:
            {
                RespondForbidden(Response);
            }
            break;
            }
        }
コード例 #11
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string email      = inputData.Value <string>(@"email") ?? "";
            string password   = inputData.Value <string>(@"password") ?? "";
            string lang_code  = inputData.Value <string>(@"lang_code") ?? "";
            bool   isTestUser = inputData.Value <bool>(@"is_test_user");

            Int64 tempAppUserId = inputData.Value <Int64>(@"temp_app_user_id");

            Response.ContentType = @"application/json";
            if (isTestUser)
            {
                User userBack;
                Membership.TestUser(email, password.Trim(), out userBack);
                RespondBadRequest(Response, @"is_succeeded", (userBack != null).ToString());
            }

            AppUser user;

            AppMembership.AppUserCreateResults res = AppMembership.CreateAppUser(email, password, lang_code, out user);

            switch (res)
            {
            case AppMembership.AppUserCreateResults.Success:
            {
                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        if (!user.IsVerified && Settings.GetSettingBool(Settings.Keys.APPUSER_VERIFY_EMAIL, false))
                        {
                            jsonWriter.WriteStartObject();

                            jsonWriter.WritePropertyName(@"needs_verification");
                            jsonWriter.WriteValue(true);

                            jsonWriter.WriteEndObject();
                        }
                        else
                        {
                            AppUserAuthToken at = AuthTokens.GenerateAuthTokenForAppUserId(user.AppUserId, 0);

                            jsonWriter.WriteStartObject();

                            //jsonWriter.WritePropertyName(@"auth_token_secret");
                            //jsonWriter.WriteValue(at.Secret.ToString(@"N"));

                            //jsonWriter.WritePropertyName(@"auth_token_key");
                            //jsonWriter.WriteValue(at.Key);
                            if (tempAppUserId != 0)
                            {
                                BidController.UpdateTempAppUserBidsToUserBid(tempAppUserId, user.AppUserId);
                            }
                            jsonWriter.WritePropertyName(@"access_token");
                            jsonWriter.WriteValue(AuthTokens.AccessToken(at));

                            jsonWriter.WritePropertyName(@"user_id");
                            jsonWriter.WriteValue(user.AppUserId);

                            jsonWriter.WriteEndObject();
                        }
                    }
                }
            }
            break;

            case AppMembership.AppUserCreateResults.AlreadyExists:
            {
                RespondBadRequest(Response, @"user-already-exists", @"the supplied email address is in use");
            }
            break;

            case AppMembership.AppUserCreateResults.InvalidEmailAddress:
            {
                RespondBadRequest(Response, @"invalid-email", @"the supplied email address is invalid");
            }
            break;

            default:
            case AppMembership.AppUserCreateResults.UnknownError:
            {
                RespondInternalServerError(Response);
            }
            break;
            }
        }
コード例 #12
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            string AppUserEmail = null;
            bool   EmailChanged = false;

            AppUser app_user = null;

            if (IsNewMode)
            {
                AppMembership.AppUserCreateResults results = AppMembership.CreateAppUser(txtEmail.Text, txtPassword.Text.Trim(), @"", out app_user);
                switch (results)
                {
                default:
                case AppMembership.AppUserCreateResults.UnknownError:
                    Master.MessageCenter.DisplayErrorMessage(AppUsersStrings.GetText(@"MessageCreateFailedUnknown"));
                    return;

                case AppMembership.AppUserCreateResults.AlreadyExists:
                    Master.MessageCenter.DisplayErrorMessage(AppUsersStrings.GetText(@"MessageCreateFailedAlreadyExists"));
                    return;

                case AppMembership.AppUserCreateResults.InvalidEmailAddress:
                    Master.MessageCenter.DisplayErrorMessage(AppUsersStrings.GetText(@"MessageCreateFailedEmailAddressInvalid"));
                    return;

                case AppMembership.AppUserCreateResults.Success:
                    break;
                }
                AppUserId    = app_user.AppUserId;
                AppUserEmail = app_user.Email;
                //app_user.OrderDisplay = OrderDisplay.GetLastOrder() + 1;
            }
            else
            {
                app_user     = core.DAL.AppUser.FetchByID(AppUserId);
                AppUserEmail = app_user.Email;
            }
            app_user.CityId          = Convert.ToInt64(ddlCity.SelectedValue);
            app_user.IsLocked        = chkIsLocked.Checked;
            app_user.FirstName       = txtFirstName.Text;
            app_user.LastName        = txtlastName.Text;
            app_user.Phone           = txtPhone.Text;
            app_user.Street          = txtStreet.Text;
            app_user.CityId          = Int64.Parse(ddlCity.SelectedValue);
            app_user.ApartmentNumber = txtAptNum.Text;
            app_user.HouseNum        = txtHouseNum.Text;
            app_user.Floor           = txtFloor.Text;

            try
            {
                string city = ddlCity.SelectedItem.Text;
                //var address = (city != "" ? city + " " : "") + " " + (txtStreet.Text != "" ? txtStreet.Text + " " : "") + (txtHouseNum.Text != "" ? txtHouseNum.Text : "");
                var locationService = new GoogleLocationService();
                var point           = (city.Trim() != "" ? locationService.GetLatLongFromAddress(city) : new MapPoint());
                app_user.AddressLocation = new Geometry.Point(point.Latitude, point.Longitude);
            }
            catch
            {
                Master.MessageCenter.DisplayErrorMessage(AppUsersStrings.GetText(@"MessageAddressInvalid"));
                return;
            }
            app_user.Save();
            if (IsNewMode)
            {
                AppUserId = app_user.AppUserId;
            }

            if (app_user.Email != txtEmail.Text.Trim().NormalizeEmail())
            {
                if (AppUser.FetchByEmail(txtEmail.Text.Trim().NormalizeEmail()) != null)
                {
                    Master.MessageCenter.DisplayWarningMessage(AppUsersStrings.GetText(@"MessageEmailChangeFailed"));
                }
                else
                {
                    app_user.Email          = txtEmail.Text.Trim().NormalizeEmail();
                    app_user.UniqueIdString = app_user.Email;
                    AppUserEmail            = app_user.Email;
                    EmailChanged            = true;
                }
            }

            AppUserEmail = app_user.Email;

            app_user.Save();

            if (txtPassword.Text.Length > 0)
            {
                AppMembership.AppUserPasswordChangeResults results;
                //if (AppUserId == SessionHelper.UserId())
                //{
                //    results = AppMembership.ChangeAppUserPassword(app_user.Email, txtCurrentPassword.Text, txtPassword.Text);
                //}
                //else
                //{
                results = AppMembership.ChangeAppUserPassword(app_user.Email, txtPassword.Text);
                //}
                switch (results)
                {
                default:
                    Master.MessageCenter.DisplayWarningMessage(AppUsersStrings.GetText(@"MessagePasswordChangeFailedUnknown"));
                    break;

                case AppMembership.AppUserPasswordChangeResults.PasswordDoNotMatch:
                    Master.MessageCenter.DisplayWarningMessage(AppUsersStrings.GetText(@"MessagePasswordChangeBadOldPassword"));
                    break;

                case AppMembership.AppUserPasswordChangeResults.Success:
                    break;
                }
            }

            if (IsNewMode)
            {
                string successMessage = AppUsersStrings.GetText(@"MessageAppUserCreated");
                string url            = @"EditAppUser.aspx?Email=" + AppUserEmail;
                url += @"&message-success=" + Server.UrlEncode(successMessage);
                Response.Redirect(url, true);
            }
            else
            {
                string successMessage = AppUsersStrings.GetText(@"MessageAppUserSaved");
                if (EmailChanged)
                {
                    string url = @"EditAppUser.aspx?message-success=" + Server.UrlEncode(successMessage);
                    if (AppUserId != SessionHelper.UserId())
                    {
                        url += @"&Email=" + AppUserEmail;
                    }
                    Response.Redirect(url, true);
                }
                else
                {
                    Master.MessageCenter.DisplaySuccessMessage(successMessage);
                    LoadView();
                }
            }
        }
コード例 #13
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string email    = inputData.Value <string>(@"email") ?? "";
            string password = inputData.Value <string>(@"password") ?? "";

            Response.ContentType = @"application/json";

            Int64 AppUserId;

            AppMembership.AppUserAuthenticateResults res = AppMembership.AuthenticateAppUser(email, password, out AppUserId);
            switch (res)
            {
            case AppMembership.AppUserAuthenticateResults.Success:
            {
                AppUserAuthToken at = AuthTokens.GenerateAuthTokenForAppUserId(AppUserId, 0);

                try
                {
                    AppMembership.AppUserLoggedInAction(AppUserId);
                }
                catch { }

                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();

                        jsonWriter.WritePropertyName(@"access_token");
                        jsonWriter.WriteValue(AuthTokens.AccessToken(at));

                        jsonWriter.WritePropertyName(@"user_id");
                        jsonWriter.WriteValue(AppUserId);

                        Int64?cityId = AppUser.FetchByID(AppUserId).CityId;
                        jsonWriter.WritePropertyName(@"is_city_exists");
                        jsonWriter.WriteValue(cityId != null && cityId != 0);

                        jsonWriter.WriteEndObject();
                    }
                }
            }
            break;

            default:
            case AppMembership.AppUserAuthenticateResults.LoginError:
            {
                RespondBadRequest(Response);
            }
            break;

            case AppMembership.AppUserAuthenticateResults.NotVerified:
            {
                RespondError(Response, HttpStatusCode.Forbidden, @"not-verified");
            }
            break;

            case AppMembership.AppUserAuthenticateResults.NoMatch:
            {
                RespondError(Response, HttpStatusCode.Forbidden, @"no-match");
            }
            break;

            case AppMembership.AppUserAuthenticateResults.Locked:
            {
                RespondError(Response, HttpStatusCode.Forbidden, @"locked");
            }
            break;
            }
        }
コード例 #14
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            Int64 AppUserId;

            if (IsAuthorizedRequest(Request, Response, true, out AppUserId))
            {
                Response.ContentType = @"application/json";

                JToken jt;

                string first_name = null, last_name = null, email = null, gender = null, is_adv = null, password = null, city_id = null, house_num = null, apartment_number = null,
                       street = null, phone = null, lang_code = null, floor = null;
                if (inputData.TryGetValue(@"first_name", out jt))
                {
                    first_name = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"last_name", out jt))
                {
                    last_name = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"email", out jt))
                {
                    email = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"gender", out jt))
                {
                    gender = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"city_id", out jt))
                {
                    city_id = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"street", out jt))
                {
                    street = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"house_num", out jt))
                {
                    house_num = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"apartment_number", out jt))
                {
                    apartment_number = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"floor", out jt))
                {
                    floor = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"password", out jt))
                {
                    password = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"phone", out jt))
                {
                    phone = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"lang_code", out jt))
                {
                    lang_code = jt.Value <string>();
                }
                if (inputData.TryGetValue(@"is_adv", out jt))
                {
                    is_adv = jt.Value <string>();
                }

                string currentEmail = Query.New <AppUser>().Select(AppUser.Columns.Email).Where(AppUser.Columns.AppUserId, AppUserId).ExecuteScalar() as string;
                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        if (email != null && !email.IsValidEmail())
                        {
                            RespondBadRequest(Response, @"invalid-email", @"the supplied email address is invalid");
                        }
                        if (password != null && password != "")
                        {
                            AppMembership.AppUserPasswordChangeResults result = AppMembership.ChangeAppUserPassword(currentEmail, password);
                            switch (result)
                            {
                            default:
                            case AppMembership.AppUserPasswordChangeResults.AppUserDoesNotExist:
                                RespondInternalServerError(Response);
                                break;

                            case AppMembership.AppUserPasswordChangeResults.PasswordDoNotMatch:
                                RespondBadRequest(Response, @"old-password-does-not-match", @"the supplied password does not match the old password");
                                break;

                            case AppMembership.AppUserPasswordChangeResults.Success:
                                break;
                            }
                        }

                        Query qry = Query.New <AppUser>().Where(AppUser.Columns.AppUserId, AppUserId);

                        if (first_name != null)
                        {
                            qry.Update(AppUser.Columns.FirstName, first_name);
                        }
                        if (last_name != null)
                        {
                            qry.Update(AppUser.Columns.LastName, last_name);
                        }
                        if (gender != null)
                        {
                            switch (gender)
                            {
                            default:
                            case @"unknown":
                                qry.Update(AppUser.Columns.Gender, AppUserGender.Unknown);
                                break;

                            case @"male":
                                qry.Update(AppUser.Columns.Gender, AppUserGender.Male);
                                break;

                            case @"female":
                                qry.Update(AppUser.Columns.Gender, AppUserGender.Female);
                                break;
                            }
                        }
                        if (city_id != null)
                        {
                            qry.Update(AppUser.Columns.CityId, int.Parse(city_id));
                        }
                        if (phone != null)
                        {
                            qry.Update(AppUser.Columns.Phone, phone);
                        }
                        if (lang_code != null)
                        {
                            qry.Update(AppUser.Columns.LangCode, lang_code);
                        }
                        if (floor != null)
                        {
                            qry.Update(AppUser.Columns.Floor, floor);
                        }
                        if (street != null)
                        {
                            qry.Update(AppUser.Columns.Street, street);
                        }

                        if (house_num != null)
                        {
                            qry.Update(AppUser.Columns.HouseNum, house_num);
                        }

                        if (apartment_number != null)
                        {
                            qry.Update(AppUser.Columns.ApartmentNumber, apartment_number);
                        }

                        if (is_adv != null)
                        {
                            qry.Update(AppUser.Columns.IsAdv, bool.Parse(is_adv));
                        }

                        if (city_id != null)
                        {
                            try
                            {
                                City c = City.FetchByID(int.Parse(city_id));
                                var  locationService = new GoogleLocationService();
                                var  point           = locationService.GetLatLongFromAddress(c.CityName);
                                qry.Update(AppUser.Columns.AddressLocation, new Geometry.Point(point.Latitude, point.Longitude));
                            }
                            catch (Exception)
                            {
                                qry.Update(AppUser.Columns.AddressLocation, new Geometry.Point(0, 0));
                            }
                        }

                        if (qry.QueryMode == QueryMode.Update)
                        {
                            qry.Execute();
                        }

                        if (email != null)
                        {
                            if (email != currentEmail)
                            {
                                if (email.NormalizeEmail() == currentEmail.NormalizeEmail())
                                {
                                    Query.New <AppUser>()
                                    .Update(AppUser.Columns.Email, email)
                                    .Where(AppUser.Columns.AppUserId, AppUserId)
                                    .AND(AppUser.Columns.UniqueIdString, email.NormalizeEmail()).Execute();
                                }
                                else
                                {
                                    Query.New <AppUser>()
                                    .Update(AppUser.Columns.UniqueIdString, email.NormalizeEmail())
                                    .Update(AppUser.Columns.Email, email)
                                    .Where(AppUser.Columns.AppUserId, AppUserId).Execute();
                                }
                            }
                        }

                        jsonWriter.WriteStartObject();

                        Int64?cityId = AppUser.FetchByID(AppUserId).CityId;
                        jsonWriter.WritePropertyName(@"is_city_exists");
                        jsonWriter.WriteValue(cityId != null && cityId != 0);

                        jsonWriter.WriteEndObject();
                    }
                }
            }
        }