public static void Log(ExcelLog log) { lock (_locker) { _log.Add(log); } }
/// <summary> /// Generates Xls format log. /// </summary> private void GenerateXlsButton_Click(object sender, RoutedEventArgs e) { var saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Excel file (*.xlsx)|*.xlsx"; saveFileDialog.DefaultExt = "xlsx"; saveFileDialog.AddExtension = true; saveFileDialog.ShowDialog(); ExcelLog excelLog = new ExcelLog(saveFileDialog.FileName, this._novelNetworksList, this.selectedUserProfile); }
// #426 private void MainForm_Load2(object sender, System.EventArgs e) { #region ==== DockSample load layout ==== string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config"); /* if (File.Exists(configFile)) * dockPanel.LoadFromXml(configFile, m_deserializeDockContent);*/ #endregion Assembly assem = Assembly.GetEntryAssembly(); AssemblyName assemName = assem.GetName(); Version ver = assemName.Version; this.Text = String.Format("{0} - {1} - ({2})", assemName.Name, ver.ToString(), Application.ProductVersion); // Form Title // myScriptInfo = assemName.Name + " - " + ver.ToString(); toolBar.Visible = false; #if a151223 var table = new DataTable(); using (CsvReader csv = new CsvReader( //new StreamReader(@"D:\OneDrive\0K\(K15)\5-EE\$EE\battery-CSV\L0004_8A_0_1200.csv"), true)) new StreamReader(@"D:\OneDrive\0K\(K15)\5-EE\$EE\battery-CSV\20151221_L0004_8A_Tool.csv"), true)) { table.Load(csv); } MessageBox.Show(String.Format("Table contains {0} rows.", table.Rows.Count)); #endif #if auto_log_decode var Log = new EEPROMLOG(); Log.DecodeFile(@"D:\Dropbox\Coding\sharp\DRT\2015-11-06_17-41-40_CA0311000001_eeprom_dump.txt", @"D:\Dropbox\Coding\sharp\DRT\logPlot2\logPlot\bin\Debug\EEPROM MAP\EEPROM MAP (VCU2.0) 150707 - 32bit-RTC.xls"); dataSource.Add(Log); #endif #if auto_xls var Log = new ExcelLog(); //Log.DecodeFile(@"D:\Dropbox\Coding\sharp\5000 pt 統達6.9AH檢查項目[email protected]"); //Log.DecodeFile(@"D:\Dropbox\0K\(K15)\5-EE\$EE\battery-CSV\L0004_8A_0_120.xls"); Log.DecodeFile(); if ((Log.DataSet != null) && (!dataSource.Contains(Log))) { dataSource.Add(Log); MessageBox.Show(String.Format("Load {0} table(s)", Log.DataSet.Tables.Count)); // from\n{1}", sFile1); } #endif if (Global.isRunning) { return; } Global.isRunning = true; backgroundWorker1.RunWorkerAsync(); }
protected void Page_Load(object sender, EventArgs e) { AdvantShop.Localization.Culture.InitializeCulture(); Page.Title = string.Format("{0}", Resource.Admin_ImportXLS_Title); if (!IsPostBack) { OutDiv.Visible = ImportStatistic.IsRun; linkCancel.Visible = ImportStatistic.IsRun; // Delete ImportLog data ExcelLog.DeleteLog(); } }
protected void Page_Load(object sender, EventArgs e) { if ((SaasDataService.IsSaasEnabled) && (!SaasDataService.CurrentSaasData.HaveExcel)) { mainDiv.Visible = false; notInTariff.Visible = true; } AdvantShop.Localization.Culture.InitializeCulture(); Page.Title = string.Format("{0} - {1}", SettingsMain.ShopName, Resource.Admin_ImportXLS_Title); if (!IsPostBack) { OutDiv.Visible = ImportStatistic.IsRun; linkCancel.Visible = ImportStatistic.IsRun; // Delete ImportLog data ExcelLog.DeleteLog(); } }
public async Task AutoForecast() { string lastFolder; const int dataHours = 200; const int periods = 24; const bool hourlySeasonality = false; const bool dailySeasonality = false; const string readFrom = "assets"; try { IEnumerable <string> assets; if (readFrom.ToLower().Equals("assets")) { assets = _fileManager.ReadAssetsFromExcel(_directoryManager.AsstesLocation); } else { assets = _fileManager.ReadAssetsFromExcel(_directoryManager.ObservablesLocation); } var currentTime = DateTime.Now; Parallel.ForEach(assets, asset => { var pathToFolder = _directoryManager.GenerateForecastFolder(asset, periods, DirSwitcher.Auto, currentTime); var normalized = _processModel.GetDataAuto(asset, dataHours); if (normalized == null || !normalized.Any()) { _directoryManager.RemoveFolder(pathToFolder); var zeroResults = new ExcelLog() { AssetName = asset, Log = Indicator.ZeroRezults.ToString(), Rate = "0", Width = "0", Volume = "0", Change = "0", Rsi = "0" }; Shared.Log(zeroResults); //Shared.Log(asset, Indicator.ZeroRezults, 0, "0", 0, 0, 0); return; } var csv = _fileManager.CreateDataCsv(normalized, pathToFolder); if (string.IsNullOrEmpty(csv)) { var zeroResults = new ExcelLog() { AssetName = asset, Log = Indicator.ZeroRezults.ToString(), Rate = "0", Width = "0", Volume = "0", Change = "0", Rsi = "0" }; Shared.Log(zeroResults); //Shared.Log(asset, Indicator.ZeroRezults, 0, "0", 0, 0, 0); return; } _directoryManager.SaveDataFile(csv, pathToFolder); _pythonExec.RunPython(pathToFolder, periods, hourlySeasonality, dailySeasonality); var pathToOut = _directoryManager.FilePathOut(pathToFolder); var pathToComponents = _directoryManager.FileComponentsOut(pathToFolder); var pathToForecast = _directoryManager.FileForecastOut(pathToFolder); var outCreated = _directoryManager.WaitForFile(pathToOut, 60); var componentsCreated = _directoryManager.WaitForFile(pathToComponents, 10); var forecastCreated = _directoryManager.WaitForFile(pathToForecast, 10); if (!outCreated.Result || !forecastCreated.Result || !componentsCreated.Result) { return; } var stats = _fileManager.BuildOutTableRows(pathToOut, periods); var performance = _utility.DefinePerformance(stats); var marketFeatures = _utility.GetFeatures(normalized, asset); var rsi = _utility.Rsi(normalized); var log = new ExcelLog() { AssetName = asset, Log = performance.Indicator.ToString(), Rate = performance.Rate.ToString(), Width = performance.Width.ToString(), Volume = marketFeatures.Volume.ToString() + "BTC", Change = marketFeatures.Change.ToString("N2"), Rsi = rsi.ToString("N2") + "%" }; Shared.Log(log); //Shared.Log(asset, performance.Indicator, performance.Rate, performance.Width.ToString(),marketFeatures.Volume, marketFeatures.Change, rsi); _directoryManager.SpecifyDirByTrend(performance.Indicator, pathToFolder); } ); lastFolder = _directoryManager.GetLastFolder(DirSwitcher.Auto); var results = _directoryManager.GetListByIndicator(lastFolder); var res = _fileManager.WriteLogExcel(lastFolder, Shared.GetLog); _directoryManager.WriteLogToExcel(lastFolder, res); Shared.ClearLog(); var model = _requestHelper.GetStats(); await _messenger.SendMessage("Done Assets"); } catch (Exception e) { lastFolder = _directoryManager.GetLastFolder(DirSwitcher.Auto); if (Shared.GetLog.Any()) { var res = _fileManager.WriteLogExcel(lastFolder, Shared.GetLog); _directoryManager.WriteLogToExcel(lastFolder, res); Shared.ClearLog(); } await _messenger.SendMessage("Failed Assets"); throw new Exception(e.Message); } }
private static void Log(string message, ExcelLog.ImportLogMessageType type) { ExcelLog.Log(message, type); }
private static void LogInvalidData(string value, int column, int row) { ExcelLog.LogInvalidData(value, column, row); ImportStatistic.TotalErrorRow++; ImportStatistic.RowPosition++; }
// #426 private void MainForm_Load2(object sender, System.EventArgs e) { #region ==== DockSample load layout ==== string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config"); /* if (File.Exists(configFile)) dockPanel.LoadFromXml(configFile, m_deserializeDockContent);*/ #endregion Assembly assem = Assembly.GetEntryAssembly(); AssemblyName assemName = assem.GetName(); Version ver = assemName.Version; this.Text = String.Format("{0} - {1} - ({2})", assemName.Name, ver.ToString(), Application.ProductVersion); // Form Title // myScriptInfo = assemName.Name + " - " + ver.ToString(); toolBar.Visible = false; #if a151223 var table = new DataTable(); using (CsvReader csv = new CsvReader( //new StreamReader(@"D:\OneDrive\0K\(K15)\5-EE\$EE\battery-CSV\L0004_8A_0_1200.csv"), true)) new StreamReader(@"D:\OneDrive\0K\(K15)\5-EE\$EE\battery-CSV\20151221_L0004_8A_Tool.csv"), true)) { table.Load(csv); } MessageBox.Show( String.Format("Table contains {0} rows.", table.Rows.Count) ); #endif #if auto_log_decode var Log = new EEPROMLOG(); Log.DecodeFile(@"D:\Dropbox\Coding\sharp\DRT\2015-11-06_17-41-40_CA0311000001_eeprom_dump.txt", @"D:\Dropbox\Coding\sharp\DRT\logPlot2\logPlot\bin\Debug\EEPROM MAP\EEPROM MAP (VCU2.0) 150707 - 32bit-RTC.xls"); dataSource.Add(Log); #endif #if auto_xls var Log = new ExcelLog(); //Log.DecodeFile(@"D:\Dropbox\Coding\sharp\5000 pt 統達6.9AH檢查項目[email protected]"); //Log.DecodeFile(@"D:\Dropbox\0K\(K15)\5-EE\$EE\battery-CSV\L0004_8A_0_120.xls"); Log.DecodeFile(); if ( (Log.DataSet != null) && (!dataSource.Contains(Log)) ) { dataSource.Add(Log); MessageBox.Show(String.Format("Load {0} table(s)", Log.DataSet.Tables.Count)); // from\n{1}", sFile1); } #endif if (Global.isRunning) return; Global.isRunning = true; backgroundWorker1.RunWorkerAsync(); }
public async Task <AutoViewModel> MakeAutoForecast(int dataHours, int periods, bool hourlySeasonality, bool dailySeasonality, string readFrom) { var viewModel = new AutoViewModel(); _logger.LogWarning($"Creating Auto Forecast for hours {dataHours}, " + $"for periods {periods}, " + $"from file {readFrom}, " + $"hourly seasonality: {hourlySeasonality}, " + $"daily seasonality: {dailySeasonality}."); string lastFolder; try { IEnumerable <string> assets; if (readFrom.ToLower() == "assets") { assets = _fileManager.ReadAssetsFromExcel(_directoryManager.AsstesLocation); } else { assets = _fileManager.ReadAssetsFromExcel(_directoryManager.ObservablesLocation); } var currentTime = DateTime.Now; Parallel.ForEach(assets, asset => { var pathToFolder = _directoryManager.GenerateForecastFolder(asset, periods, DirSwitcher.Auto, currentTime); var normalized = _processModel.GetDataAuto(asset, dataHours); if (normalized == null || !normalized.Any()) { _directoryManager.RemoveFolder(pathToFolder); var zeroResults = new ExcelLog() { AssetName = asset, Log = Indicator.ZeroRezults.ToString(), Rate = "0", Width = "0", Volume = "0", Change = "0", Rsi = "0" }; Shared.Log(zeroResults); return; } var csv = _fileManager.CreateDataCsv(normalized, pathToFolder); if (string.IsNullOrEmpty(csv)) { var zeroResults = new ExcelLog() { AssetName = asset, Log = Indicator.ZeroRezults.ToString(), Rate = "0", Width = "0", Volume = "0", Change = "0", Rsi = "0" }; Shared.Log(zeroResults); return; } _directoryManager.SaveDataFile(csv, pathToFolder); _pythonExec.RunPython(pathToFolder, periods, hourlySeasonality, dailySeasonality); var pathToOut = _directoryManager.FilePathOut(pathToFolder); var pathToComponents = _directoryManager.FileComponentsOut(pathToFolder); var pathToForecast = _directoryManager.FileForecastOut(pathToFolder); var outCreated = _directoryManager.WaitForFile(pathToOut, 60); var componentsCreated = _directoryManager.WaitForFile(pathToComponents, 10); var forecastCreated = _directoryManager.WaitForFile(pathToForecast, 10); if (!outCreated.Result || !forecastCreated.Result || !componentsCreated.Result) { return; } var stats = _fileManager.BuildOutTableRows(pathToOut, periods); var performance = _utility.DefinePerformance(stats); var marketFeatures = _utility.GetFeatures(normalized, asset); var rsi = _utility.Rsi(normalized); var log = new ExcelLog { AssetName = asset, Log = performance.Indicator.ToString(), Rate = performance.Rate.ToString(), Width = performance.Width.ToString(), Volume = marketFeatures.Volume.ToString() + "BTC", Change = marketFeatures.Change.ToString("N2"), Rsi = rsi.ToString("N2") + "%" }; Shared.Log(log); _directoryManager.SpecifyDirByTrend(performance.Indicator, pathToFolder); } ); lastFolder = _directoryManager.GetLastFolder(DirSwitcher.Auto); var results = _directoryManager.GetListByIndicator(lastFolder); viewModel.NegativeAssets = results.NegativeAssets; viewModel.NeutralAssets = results.NeutralAssets; viewModel.PositiveAssets = results.PositiveAssets; viewModel.StrongPositiveAssets = results.StrongPositiveAssets; var res = _fileManager.WriteLogExcel(lastFolder, Shared.GetLog); _directoryManager.WriteLogToExcel(lastFolder, res); Shared.ClearLog(); viewModel.Report = _directoryManager.GetReport(lastFolder); var model = _requestHelper.GetStats(); viewModel.CallsLeftHisto = model.CallsLeft.Histo; viewModel.CallsMadeHisto = model.CallsMade.Histo; _logger.LogWarning($"Finished auto forecast from file {readFrom}"); } catch (Exception e) { lastFolder = _directoryManager.GetLastFolder(DirSwitcher.Auto); if (Shared.GetLog.Any()) { var res = _fileManager.WriteLogExcel(lastFolder, Shared.GetLog); _directoryManager.WriteLogToExcel(lastFolder, res); Shared.ClearLog(); } _logger.LogError($"Error in Auto Forecast for hours {dataHours}, " + $"for periods {periods}, " + $"from file {readFrom}, " + $"hourly seasonality: {hourlySeasonality}, " + $"daily seasonality: {dailySeasonality}."); throw new Exception(e.Message); } return(viewModel); }
public void BaseApartmentsExport() { Logger.Log.Info("Start command AR-BaseApartmentsExport"); Document doc = Application.DocumentManager.MdiActiveDocument; if (doc == null) { return; } // Проверка допуска пользователя if (!AccessUsers.HasAccess()) { doc.Editor.WriteMessage("\nОтказано в доступе"); return; } if (!File.Exists(doc.Name)) { doc.Editor.WriteMessage("\nНужно сохранить текущий чертеж."); return; } try { Inspector.Clear(); Database db = doc.Database; Editor ed = doc.Editor; ExportApartmentsAbout(); Parameter.BlocksConstantAtrs = new Dictionary <ObjectId, List <Parameter> >(); // Проверка дубликатов блоков CheckDublicateBlocks.Tolerance = new Autodesk.AutoCAD.Geometry.Tolerance(0.02, 15); CheckDublicateBlocks.Check(new HashSet <string>() { "RV_EL_BS_Базовая стена", "RV_EL_BS_Вентиляционный блок" }); // Создание папки для экспорта подложек квуартир DefineDirExportFilesApartments(db); // Считывание блоков квартир из чертежа var apartments = Apartment.GetApartments(db); if (apartments.Count == 0) { throw new System.Exception($"Блоки квартир не найдены. Имя блока квартиры должно соответствовать условию Match = '{Options.Instance.BlockApartmentNameMatch}'"); } ed.WriteMessage($"\nВ Модели найдено {apartments.Count} блоков квартир."); Inspector.ShowDialog(); Inspector.Clear(); // Квартиры в базе var apartmentsInBase = GetBaseApartments.GetAll(); //Проверка всех элементов квартир в базе - категории, параметры. CheckApartments.Check(apartments, apartmentsInBase); // Сортировка квартир, модулей и элементов var alphaComparer = AcadLib.Comparers.AlphanumComparator.New; apartments.Sort((a1, a2) => a1.Name.CompareTo(a2.Name)); apartments.ForEach(a => { a.Modules.Sort((m1, m2) => m1.Name.CompareTo(m2.Name)); a.Modules.ForEach(m => m.Elements.Sort((e1, e2) => alphaComparer.Compare(e1.NodeName, e2.NodeName))); }); // Форма предпросмотра экспорта блоков FormBlocksExport formExport = new FormBlocksExport(apartments); var dlgRes = Application.ShowModalDialog(formExport); // Прервать if (dlgRes == System.Windows.Forms.DialogResult.Abort) { formExport.SetModaless(); Application.ShowModelessDialog(formExport); throw new System.Exception(AcadLib.General.CanceledByUser); } if (dlgRes == System.Windows.Forms.DialogResult.OK) { // Экспорт блоков в файлы var count = Apartment.ExportToFiles(apartments); ed.WriteMessage($"\nЭкспортированно '{count}' квартир в отдельные файлы."); // Выбор квартир записываемых в базу - изменившиеся и новые var apartsToDb = apartments.Where (a => !a.BaseStatus.HasFlag(EnumBaseStatus.Error) && !a.BaseStatus.HasFlag(EnumBaseStatus.NotInDwg) && ( a.BaseStatus.HasFlag(EnumBaseStatus.Changed) || a.BaseStatus.HasFlag(EnumBaseStatus.New) || a.Modules.Any(m => !m.BaseStatus.HasFlag(EnumBaseStatus.Error) && ( m.BaseStatus.HasFlag(EnumBaseStatus.Changed) || m.BaseStatus.HasFlag(EnumBaseStatus.New) )) )).ToList(); //var apartsNotToDB = apartments.Except(apartsToDb); //foreach (var apartNotToDB in apartsNotToDB) //{ // ed.WriteMessage($"\nКвартира не будет записана в базу, статус '{apartNotToDB.BaseStatus}' - '{apartNotToDB.Name}'."); //} //// Запись квартир в xml //string fileXml = Path.Combine(Path.GetDirectoryName(doc.Name), Path.GetFileNameWithoutExtension(doc.Name) + ".xml"); //Apartment.ExportToXML(fileXml, apartmentsToExport); // Запись в DB try { BaseApartments.Export(apartsToDb); } catch (System.Exception ex) { Inspector.AddError($"Ошибка экспорта в БД - {ex.Message}", icon: System.Drawing.SystemIcons.Error); } // Запись лога экспортированных блоков string logFile = Path.Combine(Path.GetDirectoryName(doc.Name), Options.Instance.LogFileName); ExcelLog excelLog = new ExcelLog(logFile); excelLog.AddtoLog(apartments); // Показ ошибок Inspector.Show(); } } catch (System.Exception ex) { doc.Editor.WriteMessage($"\nОшибка экспорта блоков: {ex.Message}"); if (!ex.Message.Contains(AcadLib.General.CanceledByUser)) { Logger.Log.Error(ex, $"Command: AR-BaseApartmentsExport. {doc.Name}"); } } }