Итак, это продолжение построения нашего приложения для маркетологов).
Часть 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) Хорошо, кажется сервис исправил все ошибки.
Конец второй части, впереди вас ждет короткая третья(финальная) часть по работе с БД.
жаль у Вас обратная связь не работает