Проверка повторяющихся записей электронной почты в службе ASP.NET ЯДРО MVC (c #)

#c# #validation #asp.net-core

#c# #проверка #asp.net-ядро

Вопрос:

  1. Я хочу, чтобы мой метод редактирования на моей странице CRUD не допускал дублирования записей электронной почты. Если пользователь пытается ввести электронное письмо, которое уже существует при редактировании, пользователь должен получить сообщение об ошибке. Пока у меня есть это. Кто-нибудь сможет мне помочь 🙂

МЕТОД РЕДАКТИРОВАНИЯ

         public async Task<DataOperationResult> EditAsync(Guid id, string name, string email)
        {
            try
            {
                DataOperationResult result = new DataOperationResult();
                var originalUser = _context.InterestedParties.Find(id);

                // Found the user, update it.
                originalUser.Name = name;

                //TODO: validate - duplicate email
                if (originalUser.Name == name)
                {

                    return new DataOperationResult
                    {
                        Success = false,
                        Message = $"Could not locate a user with this ID {id}"
                    };
                }

                _context.Update(originalUser);
                await _context.SaveChangesAsync();
                result.Success = true;
                result.Message = "User updated.";
                _logger.LogTrace($"User {id} has been updated.");

                return resu<
            }
            catch (Exception ex)
            {
                throw new Exception($"Failed to update user.", ex);
            }
        }
 

СОЗДАТЬ МЕТОД

  1. Я хочу, чтобы мой метод Create на моей странице crud не допускал дублирования записей электронной почты. Если пользователь пытается ввести электронное письмо, которое уже существует при создании, пользователь должен получить сообщение об ошибке. Пока у меня есть это.
         public async Task CreateInterestedPartyAsync(string name, string email)
        {
            DataOperationResult result = new DataOperationResult();
            var dbInterestedParty = _context.InterestedParties.ToList();
            if (dbInterestedParty.Any(dbInterestedParty => dbInterestedParty.Email == email))

            {
                result.Success = false;
                result.Message = "Interested Party already exists in database";
            }
            else
            {
                _context.Add(new InterestedParty()
                {
                    Name = name,
                    Email = email
                });

                await _context.SaveChangesAsync();
            }
        }
 

Комментарии:

1. И с какой проблемой вы столкнулись? Перед выполнением вставки вы должны попытаться получить пользователя с электронной почтой и вернуть ошибку, если вы найдете пользователя с электронной почтой.

2. Я бы сделал это с помощью originalUser.Email = Email; ?

3. if (dbInterestedParty.Any(dbInterestedParty => dbInterestedParty.Email == email)) { result.Success = false; result.Message = "Interested Party already exists in database"; } Насколько я знаю, этот оператор «if» проверяет, существует ли электронное письмо уже?

4. Да, один из dbInterestedParty имеет тот же адрес электронной почты, он вернет true .