private async Task DeleteUser() { var(isNickname, user) = await DeleteUserByNickname(); if (isNickname) { lock (messenger.OnlineLock) { foreach (var userOnline in messenger.online) { if (userOnline.Nickname == user.Nickname) { userOnline.communication.EndTask = true; break; } } } await userDeleter.Run(user.Nickname, false); } else { Console.WriteLine("Don`t have this nickname"); } }
private async Task<bool> DeleteAccount(IEnumerable<UserNicknameAndPasswordAndIPs> usersData) { var userNicknameAndPassword = await CheckNicknameAndPassword(usersData); if (userNicknameAndPassword.Equals(default(UserNicknameAndPasswordAndIPs))) { return false; } if (await communication.SendMessageListenClient("Do you realy want, delete your accaunt? if yes, click Enter") != "Yes") { return await SelectMode(usersData); } var result = await FileMaster.UpdateFile<UserNicknameAndPasswordAndIPs>(FilePath, oldData => { if (oldData == null) { return (oldData, false); } else { if (!LastFindData(oldData, userNicknameAndPassword.Nickname)) { return (oldData, false); } oldData = oldData.Where(x => x.Nickname != userNicknameAndPassword.Nickname).ToList(); } return (oldData, true); }); if (result) { await communication.SendMessage("Account was deleted"); UserDeleter userDeleter = new UserDeleter(messenger); await userDeleter.Run(userNicknameAndPassword.Nickname, false); return false; } else { await communication.SendMessage("Don`t have this nickname"); return await SelectMode(usersData); } }