using SyncDicts.AsbCloudApi; using System.Collections.Generic; using System.Net; using System.Text; using System.Text.Json; namespace SyncDicts { class Program { /// /// Описывает процесс синхронизации словарей БД /// /// static void Main(/*string[] args*/) { //bool res; //var context = new ArchiveDbContext(@"c:\temp\default.sqlite3"); //// sync Events //var events = context.EventsDictionary.ToList() // .Select(e => new EventDto // { // EventType = e.EventType, // Id = e.Id, // IdCategory = e.CategoryId, // IdSound = e.SoundId, // Message = e.MessageTemplate, // Tag = e.Tag, // }); //var info = new TelemetryInfoDto //{ // Caption = "скв 111", // Deposit = "мр 111", // Cluster = "куст 111", // TimeZoneId = TimeZoneInfo.Local.Id, // TimeZoneOffsetTotalHours = TimeZoneInfo.Local.BaseUtcOffset.TotalHours, // Date = DateTime.Now, //}; //var users = context.Users.ToList() // .Select(u => new TelemetryUserDto // { // Id = u.Id, // Level = u.Level, // Name = u.Name, // Patronymic = u.Patronymic, // Surname = u.Surname, // }); //var messages = context.Messages.Take(1024).ToList() // .Select(m => new TelemetryMessageDto // { // Id = m.Id, // Date = DateTime.UnixEpoch.AddSeconds(m.TimeStamp), // IdEvent = m.EventItemId, // IdTelemetryUser = m.UserId, // State = m.State, // Arg0 = m.Arg0, // Arg1 = m.Arg1, // Arg2 = m.Arg2, // Arg3 = m.Arg3, // }); var cli = new AsbCloudApi.Client("https://localhost:5001/", new System.Net.Http.HttpClient()); var fileName = @"C:\temp\default.sqlite3"; var fileStream = System.IO.File.OpenRead(fileName); var file = new FileParameter(fileStream, System.IO.Path.GetFileName(fileName)); cli.ApiTelemetryDbAsync("1", new List { file }).Wait(); //var cli = new swaggerClient("https://localhost:5001/", new System.Net.Http.HttpClient()); //cli.InfoAsync("aaa",info).Wait(); //res = Send("http://127.0.0.1:5000/api/telemetry/asdasd/event", events); //res = Send("http://127.0.0.1:5000/api/telemetry/asdasd/info", info); //res = Send("http://127.0.0.1:5000/api/telemetry/asdasd/user", users); //res = Send("http://127.0.0.1:5000/api/telemetry/asdasd/message", messages); } private static bool Send(string url, T obj) { // sending data var requestBodyJson = JsonSerializer.Serialize(obj); var data = Encoding.UTF8.GetBytes(requestBodyJson); var request = MakeRequest(url); using var streamWriter = request.GetRequestStream(); streamWriter.Write(data); streamWriter.Close(); // getting response if (request.GetResponse() is not HttpWebResponse response) {//FAILED return false; } if (response.StatusCode == HttpStatusCode.OK) {// sent succesfilly return true; } else {//failed return false; } } private static HttpWebRequest MakeRequest(string url, string contentType = "application/json") { var request = WebRequest.CreateHttp(url); request.Method = "POST"; request.Timeout = 4900; request.ContentType = contentType; request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; request.ServicePoint.Expect100Continue = false; return request; } } }