Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
 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");
            }
        }
Exemple #5
0
        /// <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("无任何需要导出的项目!");
            }
        }
Exemple #6
0
        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();
        }
Exemple #7
0
        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();
        }
Exemple #8
0
        /// <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);
            }
        }