Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }