private void SaveToSql() { SplashScreenManager.ShowForm(typeof(frmWaitForm), true, true); SplashScreenManager.Default.SetWaitFormCaption("Обновление данных"); string ReferenceId = mainViewModel.SelectedNsi.ReferenceId; var db = mainViewModel.NsiModel; List <string> incorrectList = new List <string>(); bool isIncorrect = false; int rowIndex = 1; try { foreach (var record in mainViewModel.Records) { SplashScreenManager.Default.SetWaitFormDescription(String.Format("Идёт сохранение в базу данных..." + "\nОбработка строки:{0} из {1}" + "\nНайдено {2} ошибок", rowIndex, mainViewModel.Records.Count, incorrectList.Count)); long recordId = Convert.ToInt64(record.ValueDictionary.FirstOrDefault(x => x.Key == "RecId").Value); //Update GM_NSIReferenceRecord db.GM_NSIReferenceRecordSet.FirstOrDefault(x => x.RecId == recordId).RecordId = record.ValueDictionary.FirstOrDefault(x => x.Key == "Id").Value.ToString(); db.GM_NSIReferenceRecordSet.FirstOrDefault(x => x.RecId == recordId).RecordName = record.ValueDictionary.FirstOrDefault(x => x.Key == "Name").Value.ToString(); //Update GM_NSIReferenceRecordAttribute foreach (var key in record.ValueDictionary.Keys) { if (key != "RecId" && key != "Id" && key != "Name") { long RecId = db.GM_NSIReferenceAttributeSet.FirstOrDefault(x => x.ReferenceAttributeName == key && x.ReferenceId == ReferenceId).RecId; switch ((NSIDataTypes)db.GM_NSIReferenceAttributeSet.FirstOrDefault(x => x.RecId == RecId).ReferenceAttributeType) { case NSIDataTypes.String: db.GM_NSIReferenceRecordAttributeSet.FirstOrDefault(x => x.ReferenceAttributeRecId == RecId && x.ReferenceRecordRecId == recordId).ValueString = record.ValueDictionary.FirstOrDefault(x => x.Key == key).Value.ToString(); break; case NSIDataTypes.Integer: db.GM_NSIReferenceRecordAttributeSet.FirstOrDefault(x => x.ReferenceAttributeRecId == RecId && x.ReferenceRecordRecId == recordId).ValueInteger = Convert.ToInt64(record.ValueDictionary.FirstOrDefault(x => x.Key == key).Value); break; case NSIDataTypes.Real: db.GM_NSIReferenceRecordAttributeSet.FirstOrDefault(x => x.ReferenceAttributeRecId == RecId && x.ReferenceRecordRecId == recordId).ValueReal = Convert.ToDecimal(record.ValueDictionary.FirstOrDefault(x => x.Key == key).Value.ToString()); break; case NSIDataTypes.DateTime: db.GM_NSIReferenceRecordAttributeSet.FirstOrDefault(x => x.ReferenceAttributeRecId == RecId && x.ReferenceRecordRecId == recordId).ValueDate = Convert.ToDateTime(record.ValueDictionary.FirstOrDefault(x => x.Key == key).Value.ToString()); break; case NSIDataTypes.ReferenceRecord: if (record.ValueDictionary.FirstOrDefault(x => x.Key == key).Value == null) { db.GM_NSIReferenceRecordAttributeSet .FirstOrDefault( x => x.ReferenceAttributeRecId == RecId && x.ReferenceRecordRecId == recordId).ValueRecordRecId = 0; } else { string referenceRecordRecordId = record.ValueDictionary.FirstOrDefault(x => x.Key == key).Value.ToString(); var result = db.GM_NSIReferenceRecordSet.FirstOrDefault(x => x.RecordId == referenceRecordRecordId); if (result != null) { long referenceRecordRecId = db.GM_NSIReferenceRecordSet.FirstOrDefault(x => x.RecordId == referenceRecordRecordId).RecId; db.GM_NSIReferenceRecordAttributeSet .FirstOrDefault( x => x.ReferenceAttributeRecId == RecId && x.ReferenceRecordRecId == recordId).ValueRecordRecId = referenceRecordRecId; } else { isIncorrect = true; var incorrectRecordId = String.Format("\nВ сохраняемых данных пристутствует некорректный элемент, проверьте строку номер {0}, значение {1}!", record.ValueDictionary.FirstOrDefault(x => x.Key == "Id").Value, referenceRecordRecordId); incorrectList.Add(incorrectRecordId); } } break; } } } rowIndex++; } } catch (Exception ex) { MessageBox.Show("Что пошло не так!:" + ex); } finally { SplashScreenManager.CloseForm(); if (!isIncorrect) { db.SaveChanges(); mainViewModel.ExportSQL = false; mainViewModel.gridChanged = false; } else { string resultToBox = String.Join("\n", incorrectList); MessageBox.Show("Список ошибок:" + resultToBox); } } }
public static void Error(string msg) { MessageBox.Show(msg, "Error", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); }
/// <summary> /// создать сервер /// </summary> /// <param name="type"> тип сервера</param> /// <param name="neadLoadTicks">нужно ли подгружать тики из хранилища. Актуально в режиме робота для серверов Квик, Плаза 2</param> public static void CreateServer(ServerType type, bool neadLoadTicks) { try { if (_servers == null) { _servers = new List <IServer>(); } if (_servers.Find(server => server.ServerType == type) != null) { return; } if (type == ServerType.Lmax) { LmaxServer serv = new LmaxServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.Bitfinex) { BitfinexServer serv = new BitfinexServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.Binance) { BinanceServer serv = new BinanceServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.NinjaTrader) { NinjaTraderServer serv = new NinjaTraderServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.BitStamp) { BitStampServer serv = new BitStampServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.Kraken) { KrakenServer serv = new KrakenServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.Oanda) { OandaServer serv = new OandaServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.BitMex) { BitMexServer serv = new BitMexServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.QuikLua) { QuikLuaServer serv = new QuikLuaServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.QuikDde) { QuikServer serv = new QuikServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } if (type == ServerType.InteractivBrokers) { InteractivBrokersServer serv = new InteractivBrokersServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } else if (type == ServerType.SmartCom) { try { SmartComServer serv = new SmartComServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } catch (Exception e) { MessageBox.Show(e.ToString()); throw; } } else if (type == ServerType.Plaza) { try { PlazaServer serv = new PlazaServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } catch (Exception e) { MessageBox.Show(e.ToString()); throw; } } else if (type == ServerType.AstsBridge) { try { AstsBridgeServer serv = new AstsBridgeServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } catch (Exception e) { MessageBox.Show(e.ToString()); throw; } } else if (type == ServerType.Tester) { try { TesterServer serv = new TesterServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } catch (Exception e) { MessageBox.Show(e.ToString()); throw; } } else if (type == ServerType.Finam) { try { FinamServer serv = new FinamServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(serv); } } catch (Exception e) { MessageBox.Show(e.ToString()); throw; } } SendNewLogMessage(OsLocalization.Market.Message3 + _servers[_servers.Count - 1].ServerType, LogMessageType.System); } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
public override List <ExplorerItem> GetSchemaAndBuildAssembly(IConnectionInfo cxInfo, AssemblyName assemblyToBuild, ref string nameSpace, ref string typeName) { _nameSpacesToAdd = new List <string>(); var xInputs = cxInfo.DriverData.Element("inputDefs"); if (xInputs == null) { return(new List <ExplorerItem>()); } var jss = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; var inputDefs = JsonConvert.DeserializeObject <List <IJsonInput> >(xInputs.Value, jss).ToList(); var ns = nameSpace; // generate class definitions var classDefinitions = inputDefs .AsParallel() .SelectMany(i => { i.GenerateClasses(ns); return(i.GeneratedClasses); }) .ToList(); // add namespaces _nameSpacesToAdd.AddRange(inputDefs.SelectMany(i => i.NamespacesToAdd)); _nameSpacesToAdd.AddRange(classDefinitions.Select(c => c.Namespace)); // remove the error'd inputs var classGenErrors = inputDefs.SelectMany(i => i.Errors).ToList(); classDefinitions = classDefinitions .Where(c => c.Success) .ToList(); // resolve duplicates classDefinitions .GroupBy(c => c.ClassName) .Where(c => c.Count() > 1) .SelectMany(cs => cs.Select((c, i) => new { Class = c, Index = i + 1 }).Skip(1)) .ToList() .ForEach(c => c.Class.ClassName += "_" + c.Index); // create code to compile var usings = "using System;\r\n" + "using System.Collections.Generic;\r\n" + "using System.IO;\r\n" + "using Newtonsoft.Json;\r\n" + "using System.Web;\r\n" + "using JsonDataContext;\r\n"; usings += String.Join("\r\n", classDefinitions.Select(c => String.Format("using {0};", c.Namespace))); var contextProperties = inputDefs.SelectMany(i => i.ContextProperties); var context = String.Format("namespace {1} {{\r\n\r\n public class {2} : JsonDataContextBase {{\r\n\r\n\t\t{0}\r\n\r\n}}\r\n\r\n}}", String.Join("\r\n\r\n\t\t", contextProperties), nameSpace, typeName); var code = String.Join("\r\n", classDefinitions.Select(c => c.ClassDefinition)); var contextWithCode = String.Join("\r\n\r\n", usings, context, code); var provider = new CSharpCodeProvider(); var parameters = new CompilerParameters { IncludeDebugInformation = true, OutputAssembly = assemblyToBuild.CodeBase, ReferencedAssemblies = { typeof(JsonDataContextBase).Assembly.Location, typeof(JsonConvert).Assembly.Location, typeof(UriBuilder).Assembly.Location, typeof(HttpUtility).Assembly.Location } }; var result = provider.CompileAssemblyFromSource(parameters, contextWithCode); if (!result.Errors.HasErrors) { // Pray to the gods of UX for redemption.. // We Can Do Better if (classGenErrors.Any()) { MessageBox.Show(String.Format("Couldn't process {0} inputs:\r\n{1}", classGenErrors.Count, String.Join(Environment.NewLine, classGenErrors))); } return (LinqPadSampleCode.GetSchema(result.CompiledAssembly.GetType(String.Format("{0}.{1}", nameSpace, typeName))) .Concat(inputDefs.SelectMany(i => i.ExplorerItems ?? new List <ExplorerItem>())) .ToList()); } else { // compile failed, this is Bad var sb = new StringBuilder(); sb.AppendLine("Could not generate a typed context for the given inputs. The compiler returned the following errors:\r\n"); foreach (var err in result.Errors) { sb.AppendFormat(" - {0}\r\n", err); } if (classGenErrors.Any()) { sb.AppendLine("\r\nThis may have been caused by the following class generation errors:\r\n"); sb.AppendLine(String.Join(Environment.NewLine, String.Join(Environment.NewLine, classGenErrors))); } MessageBox.Show(sb.ToString()); NotepadHelper.ShowMessage(contextWithCode, "Generated source code"); throw new Exception("Could not generate a typed context for the given inputs"); } }
/// <summary> /// 导出数据到Excel /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="dt"></param> /// <param name="patch">导出的绝对路径</param> /// <param name="isCreateTitle">是否创建标题</param> /// <param name="inputStartRow">数据从第几行开始插入 请默认设置为 1 </param> private static void m_ExportToExcel <T>(List <T> dt, string patch, bool isCreateTitle, int inputStartRow) { if (dt.Count > 0) { ISheet tb = null; IWorkbook wk = null; if (File.Exists(patch)) //如果文件存在 说明是从模板创建的 { wk = WorkbookFactory.Create(patch); tb = wk.GetSheet(wk.GetSheetName(0)); } else //如果文件不存在,说明需要新建一个Excel { wk = new XSSFWorkbook(); tb = wk.CreateSheet("mySheet"); } if (isCreateTitle) //创建标题 { var row = tb.CreateRow(0); var temCell = 0; var properties = dt[0].GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var item in properties) //为新行 myRow 赋值 { row.CreateCell(temCell).SetCellValue(item.Name); temCell++; } } foreach (var t in dt) //创建数据填充 { var datarow = tb.CreateRow(inputStartRow); var myproperties = t.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); var cellD = 0; foreach (var item2 in myproperties) { var value = item2.GetValue(t, null); if (value != null) { switch (value.GetType().ToString()) { case "System.String": //字符串类型 datarow.CreateCell(cellD).SetCellValue(string.Format("{0}", value)); break; //case "System.DateTime"://日期类型 // DateTime dateV; // DateTime.TryParse(value.ToString(), out dateV); // datarow.CreateCell(cellD).SetCellValue(dateV); // datarow.CreateCell(cellD).CellStyle = //break; case "System.Boolean": //布尔型 bool boolV = false; bool.TryParse(value.ToString(), out boolV); datarow.CreateCell(cellD).SetCellValue(boolV); break; case "System.Int16": //整型 case "System.Int32": case "System.Int64": case "System.Byte": int intV = 0; int.TryParse(value.ToString(), out intV); datarow.CreateCell(cellD).SetCellValue(intV); break; case "System.Decimal": //浮点型 case "System.Double": double doubV = 0; double.TryParse(value.ToString(), out doubV); datarow.CreateCell(cellD).SetCellValue(doubV); break; case "System.DBNull": //空值处理 datarow.CreateCell(cellD).SetCellValue(""); break; default: datarow.CreateCell(cellD).SetCellValue(string.Format("{0}", value)); break; } } cellD++; } inputStartRow++; } var fs2 = File.Create(patch); wk.Write(fs2); //向打开的这个xls文件中写入mySheet表并保存。 MessageBox.Show("提示:导出完成!"); } else { MessageBox.Show("无任何需要导出的项目!"); } }
public async void TestMainWindowThenMessageBoxThenBackgroundModalBoxReverseClose() { LoggerResult loggerResult; const string messageBoxName = nameof(TestMainWindowThenMessageBoxThenBackgroundModalBoxReverseClose); var dispatcher = await WindowManagerHelper.CreateUIThread(); using (WindowManagerHelper.InitWindowManager(dispatcher, out loggerResult)) { var window = dispatcher.Invoke(() => new StandardWindow()); // Open the main window var shown = WindowManagerHelper.NextMainWindowChanged(window); dispatcher.Invoke(() => WindowManager.ShowMainWindow(window)); await WindowManagerHelper.TaskWithTimeout(shown); dispatcher.Invoke(() => { WindowManagerHelper.AssertWindowsStatus(window); }); // Open a message box var messageBoxOpened = WindowManagerHelper.NextMessageBoxOpened(); dispatcher.InvokeAsync(() => MessageBox.Show("Test", messageBoxName)); await WindowManagerHelper.TaskWithTimeout(messageBoxOpened); dispatcher.Invoke(() => { WindowManagerHelper.AssertWindowsStatus(window, null); }); // Open a modal window var modalWindow = dispatcher.Invoke(() => new StandardWindow { Title = messageBoxName }); var modalWindowOpened = WindowManagerHelper.NextModalWindowOpened(modalWindow); dispatcher.InvokeAsync(() => WindowManager.ShowModal(modalWindow, WindowOwner.MainWindow)); await WindowManagerHelper.TaskWithTimeout(modalWindowOpened); dispatcher.Invoke(() => { WindowManagerHelper.AssertWindowsStatus(window, modalWindow, null); }); // Close the modal window var modalWindowInfo = WindowManager.ModalWindows[0]; var modalWindowClosed = WindowManagerHelper.NextModalWindowClosed(modalWindow); dispatcher.Invoke(() => modalWindow.Close()); await WindowManagerHelper.TaskWithTimeout(modalWindowClosed); dispatcher.Invoke(() => { WindowManagerHelper.AssertWindowClosed(modalWindowInfo); WindowManagerHelper.AssertWindowsStatus(window, null); }); // Close the messageBox var messageBoxInfo = WindowManager.ModalWindows[0]; var messageBoxClosed = WindowManagerHelper.NextMessageBoxClosed(); WindowManagerHelper.KillWindow(messageBoxInfo.Hwnd); await WindowManagerHelper.TaskWithTimeout(messageBoxClosed); dispatcher.Invoke(() => { WindowManagerHelper.AssertWindowClosed(messageBoxInfo); WindowManagerHelper.AssertWindowsStatus(window); }); // Close the main window var mainWindow = WindowManager.MainWindow; var hidden = WindowManagerHelper.NextMainWindowChanged(null); dispatcher.Invoke(() => window.Close()); await WindowManagerHelper.TaskWithTimeout(hidden); dispatcher.Invoke(() => { WindowManagerHelper.AssertWindowClosed(mainWindow); WindowManagerHelper.AssertWindowsStatus(null); }); } Assert.AreEqual(false, loggerResult.HasErrors); dispatcher.InvokeShutdown(); }
private void AddNewSubjectProc() { var nameIsTaken = false; var colorIsTaken = false; if (SubjectModel.Name.Length > 14) { MessageBox.Show("Maximum character length is 14 characters"); return; } foreach (var v in AssociatedPerson.Subjects) { if (v.Name == SubjectModel.Name) { MessageBox.Show("Subject name is already taken"); return; } if (v.Color != SubjectModel.Color) { continue; } MessageBox.Show("Color is already taken"); return; } if (SubjectModel.StartTime >= SubjectModel.EndTime) { MessageBox.Show("Invalid times; Start time cannot be greater than end time"); return; } bool isTooWhite = true; var brightness = (int)Math.Sqrt( SubjectModel.Color.R * SubjectModel.Color.R * .241 + SubjectModel.Color.G * SubjectModel.Color.G * .691 + SubjectModel.Color.B * SubjectModel.Color.B * .068); isTooWhite = brightness > 240 ? true : false; if (SubjectModel.Color == Colors.Transparent || SubjectModel.Color == Colors.White || isTooWhite) { MessageBox.Show("Invalid color value"); return; } List <Subject> Subjects = new List <Subject>(); bool conflict = false; for (int x = 0; x < 7; x++) { if (DaysChecked[x]) { var subjectModel = new Subject(); switch (x) { case 0: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Sunday; break; case 1: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Monday; break; case 2: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Tuesday; break; case 3: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Wednesday; break; case 4: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Thursday; break; case 5: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Friday; break; case 6: subjectModel.DayOfTheWeek = ViewModel.DaysOfTheWeek.Saturday; break; default: break; } subjectModel.Id = Guid.NewGuid().ToString(); subjectModel.Name = SubjectModel.Name; subjectModel.StartTime = SubjectModel.StartTime; subjectModel.EndTime = SubjectModel.EndTime; subjectModel.Color = SubjectModel.Color; subjectModel.Height = ConvertToMinutes(SubjectModel.EndTime) - ConvertToMinutes(SubjectModel.StartTime); subjectModel.IsTooSmall = subjectModel.Height <= 30; if (conflict == false) { conflict = CheckIfConflict(subjectModel); } Subjects.Add(subjectModel); } } if (conflict == false) { foreach (var v in Subjects) { AssociatedPerson.Subjects.Add(v); _textToSave = $"{v.Id},{v.Name},{v.Color},{v.StartTime},{v.EndTime},{v.DayOfTheWeek}"; SaveSubjectToText(); using (File.Create(Path.Combine(Directory.GetCurrentDirectory(), "Data", AssociatedPerson.Username, "Subject Data", v.Name + " Tests.txt"))); using (File.Create(Path.Combine(Directory.GetCurrentDirectory(), "Data", AssociatedPerson.Username, "Subject Data", v.Name + " Grading System.txt"))); AssociatedPerson.SetGroupedSubjects(); } MessageBox.Show("Subject added"); } else { MessageBox.Show("Invalid times; will cause schedule conflict"); } //SaveTask(); // DaysSelected.Clear(); AddSubjectWindow.Close(); }
/// <summary> /// создать сервер /// </summary> /// <param name="type"> тип сервера</param> /// <param name="neadLoadTicks">нужно ли подгружать тики из хранилища. Актуально в режиме робота для серверов Квик, Плаза 2</param> public static void CreateServer(ServerType type, bool neadLoadTicks) { try { if (_servers == null) { _servers = new List <IServer>(); } if (type == ServerType.Binance) { if (_servers.Find(server => server.ServerType == ServerType.Binance) != null) { return; } BinanceServer serv = new BinanceServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.NinjaTrader) { if (_servers.Find(server => server.ServerType == ServerType.NinjaTrader) != null) { return; } NinjaTraderServer serv = new NinjaTraderServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.BitStamp) { if (_servers.Find(server => server.ServerType == ServerType.BitStamp) != null) { return; } BitStampServer serv = new BitStampServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.Kraken) { if (_servers.Find(server => server.ServerType == ServerType.Kraken) != null) { return; } KrakenServer serv = new KrakenServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.Oanda) { if (_servers.Find(server => server.ServerType == ServerType.Oanda) != null) { return; } OandaServer serv = new OandaServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.BitMex) { if (_servers.Find(server => server.ServerType == ServerType.BitMex) != null) { return; } BitMexServer serv = new BitMexServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.QuikLua) { if (_servers.Find(server => server.ServerType == ServerType.QuikLua) != null) { return; } QuikLuaServer serv = new QuikLuaServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.QuikDde) { if (_servers.Find(server => server.ServerType == ServerType.QuikDde) != null) { return; } QuikServer serv = new QuikServer(neadLoadTicks); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } if (type == ServerType.InteractivBrokers) { if (_servers.Find(server => server.ServerType == ServerType.InteractivBrokers) != null) { return; } InteractivBrokersServer serv = new InteractivBrokersServer(); _servers.Add(serv); if (ServerCreateEvent != null) { ServerCreateEvent(); } } else if (type == ServerType.SmartCom) { if (_servers.Find(server => server.ServerType == ServerType.SmartCom) != null) { return; } try { SmartComServer serv = new SmartComServer(); _servers.Add(serv); } catch (Exception) { MessageBox.Show( "Произошла ошибка создания сервера СмартКом. Вероятно у Вас не установлена соответствующая программа. SmartCOM_Setup_3.0.146.msi "); return; } if (ServerCreateEvent != null) { ServerCreateEvent(); } } else if (type == ServerType.Plaza) { if (_servers.Find(server => server.ServerType == ServerType.Plaza) != null) { return; } try { PlazaServer serv = new PlazaServer(neadLoadTicks); _servers.Add(serv); } catch (Exception) { MessageBox.Show( "Произошла ошибка создания сервера Плаза. Вероятно у Вас не установлено соответствующее программное обеспечение."); return; } if (ServerCreateEvent != null) { ServerCreateEvent(); } } else if (type == ServerType.AstsBridge) { if (_servers.Find(server => server.ServerType == ServerType.AstsBridge) != null) { return; } try { AstsBridgeServer serv = new AstsBridgeServer(neadLoadTicks); _servers.Add(serv); } catch (Exception) { MessageBox.Show( "Произошла ошибка создания сервера Плаза. Вероятно у Вас не установлено соответствующее программное обеспечение."); return; } if (ServerCreateEvent != null) { ServerCreateEvent(); } } else if (type == ServerType.Tester) { try { TesterServer serv = new TesterServer(); _servers.Add(serv); } catch (Exception) { MessageBox.Show( "Произошла ошибка создания тестового сервера."); return; } if (ServerCreateEvent != null) { ServerCreateEvent(); } } else if (type == ServerType.Finam) { try { FinamServer serv = new FinamServer(); _servers.Add(serv); } catch (Exception) { MessageBox.Show( "Произошла ошибка создания тестового сервера."); return; } if (ServerCreateEvent != null) { ServerCreateEvent(); } } } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }