public async Task <IActionResult> FixUserInconcistencies() { List <string> messages = new List <string>(); OperationResultListVo <string> result = new OperationResultListVo <string>(messages) { Message = "Update Handlers Task" }; try { IQueryable <ApplicationUser> allUsers = await GetUsersAsync(); OperationResultListVo <ProfileViewModel> profileResult = ProfileAppService.GetAll(CurrentUserId, true); if (!profileResult.Success) { return(View("TaskResult", profileResult)); } IQueryable <ApplicationUser> usersWithoutDate = allUsers.Where(x => x.CreateDate == DateTime.MinValue); foreach (ApplicationUser user in usersWithoutDate) { ProfileViewModel profile = profileResult.Value.FirstOrDefault(x => x.UserId.ToString().Equals(user.Id)); if (profile != null) { user.CreateDate = profile.CreateDate; await UserManager.UpdateAsync(user); } } foreach (ProfileViewModel profile in profileResult.Value) { ApplicationUser user = allUsers.FirstOrDefault(x => x.Id.Equals(profile.UserId.ToString())); if (user == null) { messages.Add($"ERROR: user for {profile.Handler} ({profile.UserId}) NOT FOUND"); } else { string handler = user.UserName.ToLower(); if (string.IsNullOrWhiteSpace(profile.Handler) || !profile.Handler.Equals(handler)) { profile.Handler = handler; OperationResultVo <Guid> saveResult = ProfileAppService.Save(CurrentUserId, profile); messages.Add($"SUCCESS: {profile.Name} handler updated to \"{handler}\""); } } } } catch (Exception ex) { result.Success = false; messages.Add("ERROR: " + ex.Message); } result.Value = messages.OrderBy(x => x); return(View("TaskResult", result)); }
public async Task <IActionResult> CheckUserInconsistencies() { List <string> messages = new List <string>(); OperationResultListVo <string> result = new OperationResultListVo <string>(messages) { Message = "Check User Inconsistencies Task" }; try { IQueryable <ApplicationUser> allUsers = await GetUsersAsync(); OperationResultListVo <ProfileViewModel> profileResult = ProfileAppService.GetAll(CurrentUserId, true); if (!profileResult.Success) { return(View("TaskResult", profileResult)); } foreach (ProfileViewModel profile in profileResult.Value) { ApplicationUser user = allUsers.FirstOrDefault(x => x.Id.Equals(profile.UserId.ToString())); if (user == null) { messages.Add($"profile {profile.Name} ({profile.Id}) without user {profile.UserId}"); } else { if (string.IsNullOrWhiteSpace(profile.Handler)) { messages.Add($"profile {profile.Name} ({profile.Id}) without handler (should be {user.UserName.ToLower()})"); } else { if (!profile.Handler.Equals(profile.Handler.ToLower())) { messages.Add($"profile {profile.Name} ({profile.Id}) handler ({profile.Handler}) not lowercase"); } } } } foreach (ApplicationUser user in allUsers) { Guid guid = Guid.Parse(user.Id); ProfileViewModel profile = profileResult.Value.FirstOrDefault(x => x.UserId == guid); if (profile == null) { messages.Add($"user {user.UserName} ({user.Id}) without profile"); } if (user.CreateDate == DateTime.MinValue) { messages.Add($"user {user.UserName} without create date"); } } } catch (Exception ex) { result.Success = false; messages.Add(ex.Message); } result.Value = messages.OrderBy(x => x); return(View("TaskResult", result)); }