public async Task Delete([FromBody] DeleteAccountRequestModel model) { var user = await _userService.GetUserByPrincipalAsync(User); if (user == null) { throw new UnauthorizedAccessException(); } if (!await _userService.CheckPasswordAsync(user, model.MasterPasswordHash)) { ModelState.AddModelError("MasterPasswordHash", "Invalid password."); await Task.Delay(2000); } else { var result = await _userService.DeleteAsync(user); if (result.Succeeded) { return; } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } throw new BadRequestException(ModelState); }
public async Task PostDelete([FromBody] DeleteAccountRequestModel model) { var user = _currentContext.User; if (!await _userManager.CheckPasswordAsync(user, model.MasterPasswordHash)) { ModelState.AddModelError("MasterPasswordHash", "Invalid password."); await Task.Delay(2000); } else { var result = await _userService.DeleteAsync(user); if (result.Succeeded) { return; } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } throw new BadRequestException(ModelState); }
public void RemoveMember(int memberId, DeleteAccountRequestModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.Member member = dbc.Members.SingleOrDefault(r => (!r.DelFlag) && r.Id.Equals(memberId)); if (member == null) { throw new OrgException("Invalid profile"); } if (!member.PasswordHash.Equals(GenerateHash(member.Salt, model.Password))) { throw new OrgException("Incorrect password"); } member.DelFlag = true; var tokens = dbc.Tokens.Where(r => r.MemberId.Equals(memberId)); if (tokens.Count() > 0) { dbc.Tokens.RemoveRange(tokens); } var devices = dbc.Devices.Where(r => r.MemberId.Equals(memberId)); if (devices.Count() > 0) { dbc.Devices.RemoveRange(devices); } new FriendBL().RemoveFriendByMemberId(member.Id); new GroupBL().LeaveAllGroupsByMemberId(member.Id); new UploadBL().RemoveFilesByMemberId(member.Id); new NoteBL().RemoveNoteByMemberId(member.Id); dbc.SaveChanges(); } }
public ResultModel DeleteAccount(DeleteAccountRequestModel param) { ResultModel result = new ResultModel(); try { int?memberId = IdentityHelper.GetMemberId(); if (!memberId.HasValue) { throw new OrgException("Invalid MemberId"); } MemberBL bl = new MemberBL(); bl.RemoveMember(memberId.Value, param); result.Status = true; result.Message = "Your account has been deleted"; } catch (OrgException oex) { result.Status = false; result.Message = oex.Message; } catch (Exception ex) { result.Status = false; result.Message = AppConfigs.InternalErrorMessage; if (AppConfigs.DebugInternalMessage) { result.InternalMessage = ex.Message; } } return(result); }