public async Task <ActionResult> Index(string username)
        {
            metricSender.SendCount("restore_password.try");
            var users = await FindUsers(username);

            var answer = new RestorePasswordModel
            {
                UserName = username
            };

            if (!users.Any())
            {
                answer.Messages.Add(new Message($"Пользователь {username} не найден"));
                return(View(answer));
            }

            metricSender.SendCount("restore_password.found_users");

            foreach (var user in users)
            {
                if (string.IsNullOrWhiteSpace(user.Email))
                {
                    answer.Messages.Add(new Message($"У пользователя {user.UserName} не указана электронная почта"));
                    continue;
                }

                if (!user.EmailConfirmed)
                {
                    answer.Messages.Add(new Message($"У пользователя {user.UserName} не подтверждена электронная почта"));
                    continue;
                }

                var requestId = await requestRepo.CreateRequest(user.Id);

                if (requestId == null)
                {
                    answer.Messages.Add(new Message($"Слишком частые запросы для пользователя {user.UserName}. Попробуйте ещё раз через несколько минут"));
                    continue;
                }

                await SendRestorePasswordEmail(requestId, user);

                answer.Messages.Add(new Message($"Письмо с инструкцией по восстановлению пароля для пользователя {user.UserName} отправлено вам на почту", false));
            }

            return(View(answer));
        }
        public async Task <ActionResult> Index(string username)
        {
            var users = await FindUsers(username);

            var answer = new RestorePasswordModel
            {
                UserName = username
            };

            if (!users.Any())
            {
                answer.Messages.Add(new Message(string.Format("Пользователь {0} не найден", username)));
                return(View(answer));
            }

            foreach (var user in users)
            {
                if (string.IsNullOrWhiteSpace(user.Email))
                {
                    answer.Messages.Add(new Message(string.Format("У пользователя {0} не указан email", user.UserName)));
                    continue;
                }

                var requestId = await requestRepo.CreateRequest(user.Id);

                if (requestId == null)
                {
                    answer.Messages.Add(new Message(string.Format("Слишком частые запросы для пользователя {0}. Попробуйте ещё раз через несколько минут", user.UserName)));
                    continue;
                }

                await SendRestorePasswordEmail(requestId, user);

                answer.Messages.Add(new Message(string.Format("Письмо с инструкцией по восстановлению пароля для пользователя {0} отправлено на Ваш email", user.UserName), false));
            }

            return(View(answer));
        }