/// <summary>
        /// This permanently deletes without any confirmation.
        /// </summary>
        /// <returns></returns>
        public async System.Threading.Tasks.Task DeleteAsync()
        {
            if (Account.IsOnlineAccount)
            {
                if (DeleteOnlineAccountToo)
                {
                    try
                    {
                        DeleteAccountResponse resp = await Account.PostAuthenticatedAsync <DeleteAccountRequest, DeleteAccountResponse>(Website.URL + "deleteaccountmodern", new DeleteAccountRequest());

                        if (resp.Error != null)
                        {
                            await new PortableMessageDialog(resp.Error, PowerPlannerResources.GetString("Settings_DeleteAccountPage_Errors_ErrorDeletingHeader")).ShowAsync();
                        }

                        else
                        {
                            deleteAndFinish();
                        }
                    }

                    catch { await new PortableMessageDialog(PowerPlannerResources.GetString("Settings_DeleteAccountPage_Errors_UnknownErrorDeletingOnline"), PowerPlannerResources.GetString("Settings_DeleteAccountPage_Errors_ErrorDeletingHeader")).ShowAsync(); }
                }

                //otherwise just remove device
                else
                {
                    //no need to check whether delete device succeeded
                    try { var dontWait = Account.PostAuthenticatedAsync <DeleteDevicesRequest, DeleteDevicesResponse>(Website.URL + "deletedevicesmodern", new DeleteDevicesRequest()
                        {
                            DeviceIdsToDelete = new List <int>()
                            {
                                Account.DeviceId
                            }
                        }); }

                    catch { }

                    deleteAndFinish();
                }
            }

            else
            {
                deleteAndFinish();
            }
        }
Пример #2
0
        public HttpResponseMessage Delete(int id)
        {
            DeleteAccountResponse response = accountService.DeleteAccount(new DeleteAccountRequest(id));

            return(Request.BuildResponse(response));
        }
Пример #3
0
        public DeleteAccountResponse DeleteAccount(DeleteAccountRequest request)
        {
            var response = new DeleteAccountResponse();

            try
            {
                var userName = request.UserName;
                var roles = Roles.GetRolesForUser(userName);
                if (roles.Any())
                {
                    Roles.RemoveUserFromRoles(userName, roles);
                }

                var membership = (SimpleMembershipProvider)Membership.Provider;
                membership.DeleteAccount(userName); // deletes record from webpages_Membership table
                membership.DeleteUser(userName, true); // deletes record from UserProfile table
            }
            catch (Exception ex)
            {
                response.Status = StatusCode.InternalServerError;
                this.exceptionHandler.HandleException(ex);
            }

            return response;
        }
Пример #4
0
        public async Task <IActionResult> Delete([FromQuery] DeleteAccountRequest request)
        {
            DeleteAccountResponse response = await _accountService.DeleteAccountAsync(request);

            return(Result(response));
        }