Пример работы С#+ MS Sql Server + Entity Framework 6 + Dadata(2 часть)

Итак, это продолжение построения нашего приложения для маркетологов).

Часть 2: Dadata

Dadata.ru это сервис, который помимо всего прочего занимается повышением качества данных, в нашем случаи в этот сервис мы будем выгружать наши email, а сервис будет возвращать исправленные email. Тут хотелось бы отметить, что при решении рабочей задачи мне этот сервис не подошел, т.к. он обрабатывает слишком маленькое кол-во опечаток, мне пришлось делать свой, но это совсем другая история, в качестве примера dadata сойдет.

1) Переходим на сайт dadata.ru и регистрируемся, после чего перейдя в личный кабинет вы обнаружите, что вам дали 10 рублей на «потестить», так же в личном кабинете можно обнаружить API ключ и Секретный ключ, они нам понадобятся чуть позже.

2) Теперь нам необходимо найти библиотеку, с помощью которой мы сможем работать с сервисом, у меня ушло минут 15 на поиски, но в конечном итоге я обнаружил проект на github (https://github.com/hflabs/dadata-csharp), немного почитав я понял, что нужна по факту только одна dll-ка и она выложена на Nuget.
3) Идем обратно в студию и открываем менеджер пакетов Nuget, ищем и устанавливаем Dadata.

4) Теперь переходим на форму и дважды нажимаем левой кнопкой мыши на кнопку «Отправить данные в Dadata»
5) Теперь переходим обратно в проект на github и смотрим, что нужно чтобы обратиться к сервису. В принципе, все просто.
6) Возвращаемся обратно в метод обработки нажатия на кнопку «Отправить данные в Dadata», сначала нам нужно получить данные из бд и положить их коллекцию, далее,

ModelDb model = new ModelDb();
List<Client> clientList = model.Client.ToList(); //Складываем все строки из БД в коллекцию.

7) Теперь просто следуем инструкции и добавляем пространство имен перед using System; создаем api и отправляем в цикле данные в dadata.

На выходе метод должен выглядеть так:

        private void buttonSubmitDadata_Click(object sender, EventArgs e)
        {
            ModelDb modelDb = new ModelDb();
            List<Client> clientList = modelDb.Client.ToList();

            var api = new CleanClient("7868dd299cace51f81edef339d7c4dd0bdeb0212", "b14a16a5e346cc9a853bcde62a6e55afb86fe2fb");

            foreach (var item in clientList.Select(c=>c.Email))
            {
                var dadata = api.Clean<Email>(item);
                if (dadata.email != null) //Чтобы убрать не читаемые данные иначе Exception
                {
                    checkedListBoxRowsDadata.Items.Add(dadata.email, (dadata.qc == "4"));
                }
            }
        }

*Вам нужно подставить свои ключи, т.к. на момент вашей работы со статей мои ключи уже устареют*
Теперь объясню зачем нужно это (dadata.qc==»4″), дело в том, что при отправке данных в сервис, сервис в ответ возвращает кучу информации по мимо прочего флаг статуса обработки, подробнее можно посмотреть здесь(https://dadata.ru/api/clean/email/#qc) так вот qc=4 — это значит опечатка исправлена. Такие строки помечаются check, чтобы можно было сразу обновить некорректными данные в БД на корректные из Dadata.

8) Запускаем проект и нажимаем на кнопку «Отправить данные в Dadata», получаем след.

9) Хорошо, кажется сервис исправил все ошибки.

Конец второй части, впереди вас ждет короткая третья(финальная) часть по работе с БД.

Один комментарий к “Пример работы С#+ MS Sql Server + Entity Framework 6 + Dadata(2 часть)”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.