ASP.Net WebAPI + winforms

330
07 января 2018, 03:53

Всем доброго времени суток. Есть задание, создать набор приложений для парсинг лог файла. Суть заключается в том что бы парсить лог файл по определенным полям и сохранять результат в базу данных(допустим MS SQL),набор полученных в результате парсинга данных расширить полем Геолокации и при помощи доступных онлайн сервисов заполнить его страной клиента. Само приложение парсера выполняется как отдельный проект в winforms , а приложение для отображения результата парсинга в формате JSON - asp.net webAPI с набором роутов.

Сам файл мне распарсить вроде бы удалось через file.readline и splitы. Правда у разных запросов бывает разное кол во частей , я это попытался устранить с помощью switch(проверяя длинну массива , тоесть каждой разбитой строки). Вопрос это вообще нормальный вариант и решение задачи для такого? Слышал что можно использовать regexpы но в них я очень туго разбираюсь, и не знаю какой вариант для парсинга будет более правильным. А вот основные вопросы: 1. как расширять данных с помощью поля геолокации? Откуда и как брать данные страны? В запросах лога есть или имя хоста или ip адрес. Перерыл очень много гугла но дельного так ничего не нашел. 2. Так как у меня опыта с самим asp.net webAPI маловато, я не понял что значит набор приложений, asp + winforms. Вот у меня есть приложение на winforms и там открываю файл парсю его и сохраняю в бд(без геолокации пока), вот , а как дальше , я так понял нужно создать еще проект asp и в нем подключить пространство имен по winforms что бы был доступ к бд, или как то их еще можно по человечески соединить?

Заранее спасибо за помощь!

Answer 1

Соединить приложение winform и asp.net с одной базой не чего сложного нет. Я думаю ты используешь Entity Framework. Просто в двух проектах делаешь одинаковые модели если есть и одинаковый класс для контекста и опять же одну и туже строку подключения используешь. Вот есть пример

Я тут приложение на wpf и asp.net mvc с одной базой взаимодействуют. вот сервер

https://github.com/Ascolon/CinemaBackend

вот приложение для рабочего стола

https://github.com/Ascolon/CinameDesktop

В wpf приложении есть Helper.cs

и там метод

static public List<Movie> List()
        {
            var request = (HttpWebRequest)WebRequest.Create("http://cinema.somee.com/api/values");
            request.ContentType = "application/xml";
            var root = new XmlRootAttribute("ArrayOfMovie")
            {
                Namespace = "http://schemas.datacontract.org/2004/07/BackendPart.Models"
            };
            XmlSerializer serializer = new XmlSerializer(typeof(List<Movie>), root);
            var result = new List<Movie>();
            XmlDocument c = new XmlDocument();
            using (Stream stream = request.GetResponse().GetResponseStream())
            {
                result = (List<Movie>)serializer.Deserialize(stream);
            }
            return result;
        }

идет запрос на сервер в ответ приходил xml документ. Его на основе модели превращаем в List и там уже с коллекцией делаем что хотим

Вместо

var request = (HttpWebRequest)WebRequest.Create("http://cinema.somee.com/api/values");

адрес который будет при запуске сервера типа

`http://localhost:45344/api/values"`
READ ALSO
FoxPro DBF и C#

FoxPro DBF и C#

Столкнулся с проблемой открытия файлаdbf созданным в VFP

326
Плавное исчезновение текста при scroll

Плавное исчезновение текста при scroll

при скролле в низ текст начинает исчезать

303
Диаграмма Ганта

Диаграмма Ганта

Пытаюсь использовать для построения диаграммы скрипт jsgantt, с помощью файла XML пытаюсь подгрузить данные, но браузер файл не видит, подскажите...

274
Включить js в другой js

Включить js в другой js

Здравствуйте, имеется скрипт(1)

279