Пример #1
0
        private void DisplayLogWindow()
        {
            if (logUC == null)
            {
                logUC = new FormLog();
                logUC.DisposeEvent += HandleLogWindowClose;
                //To show trace on screen. Might need a switch later.
                logMemoListerner = new MemoTraceListener(logUC.Box);
                Trace.Listeners.Add(logMemoListerner);
                System.Drawing.Size size = ProgramSettings.Default.LogWinSize;
                if (size.Height < 250)
                {
                    size.Height = 250;
                }

                if (size.Width < 250)
                {
                    size.Width = 250;
                }

                MultiScreenHelper.RefineLocation(logUC, ProgramSettings.Default.LogWinLocation, ProgramSettings.Default.LogScreenDeviceName);

                logUC.Size = size;
                logUC.Show();
            }
            else
            {
                logUC.BringToFront();
            }
        }
Пример #2
0
        public async ValueTask Handle(HttpRequest request, HttpRequestLog logMessage, CancellationToken cancellationToken = default)
        {
            if (request == null)
            {
                throw new NullReferenceException(nameof(request));
            }

            if (logMessage == null)
            {
                throw new NullReferenceException(nameof(logMessage));
            }

            var form = await request.ReadFormAsync(cancellationToken);

            var sensitiveData = _options.Request.SensitiveData.Forms;

            var forms = form.Select(item =>
            {
                if (sensitiveData.Contains(item.Key))
                {
                    return(new KeyValuePair <string, StringValues>(item.Key, _dataProtector.Protect(item.Value)));
                }
                else
                {
                    return(new KeyValuePair <string, StringValues>(item.Key, item.Value));
                }
            }).ToList();

            var files = form.Files.Select(file => new FileLog(file)).ToList();

            var formLog = new FormLog(forms, files);

            logMessage.SetBody(formLog);
        }
Пример #3
0
        public static string InsertCostSql(NewOffer offer, FormLog stat)
        {
            if (offer.Costs == null)
            {
                return("");
            }

            var costs = offer.Costs.Where(c => c.Value > 0).ToArray();

            if (costs.Length == 0)
            {
                return("");
            }

            stat.InsertCostCount += costs.Length;

            var command = new StringBuilder()
                          .AppendFormat("insert into farm.CoreCosts (Core_ID, PC_CostCode, {0}) values ", Mapping.CostMapping.Select(m => m.Name).Implode())
                          .Append(costs.Select(c => String.Format("(@LastCoreID, {0}, {1})",
                                                                  c.Description.Id,
                                                                  Mapping.CostMapping.Select(m => ToSql(m.GetValue(c))).Implode()))
                                  .Implode())
                          .AppendLine(";");

            return(command.ToString());
        }
Пример #4
0
 public VisionJob(TreeView inputTreeView, FormLog inputFormLog, string jobName)
 {
     tvwOnWorkJob          = inputTreeView;
     this.myFormLog        = inputFormLog;
     this.JobName          = jobName;
     createLineDelegateFun = new CreateLineDelegate(CreateLine);
 }
Пример #5
0
 private void MenuItem日志查看_Click(object sender, RoutedEventArgs e)
 {
     using (FormLog flg = new FormLog())
     {
         flg.ShowDialog();
     }
 }
Пример #6
0
        private void btExit_Click(object sender, EventArgs e)
        {
            FormLog log = new FormLog();

            log.Show();
            this.Close();
        }
        public BasePriceParser(IReader reader, PriceFormalizationInfo priceInfo, bool saveInCore = false)
        {
            _logger = LogManager.GetLogger(GetType());
            _reader = reader;

            _priceInfo   = priceInfo;
            _loggingStat = new FormLog(priceInfo);

            _connection = new MySqlConnection(ConnectionHelper.GetConnectionString());
            dsMyDB      = new DataSet();

            priceItemId   = _priceInfo.PriceItemId;
            parentSynonym = _priceInfo.ParentSynonym;
            costType      = _priceInfo.CostType;

            string selectCostFormRulesSQL;

            if (costType == CostTypes.MultiColumn)
            {
                selectCostFormRulesSQL = String.Format("select *, (exists(select * from usersettings.pricesregionaldata prd where prd.pricecode=pc.pricecode and prd.basecost=pc.costcode limit 1)) as NewBaseCost from usersettings.PricesCosts pc, farm.CostFormRules cfr where pc.PriceCode={0} and cfr.CostCode = pc.CostCode", _priceInfo.PriceCode);
            }
            else
            {
                selectCostFormRulesSQL = String.Format("select *, (exists(select * from usersettings.pricesregionaldata prd where prd.pricecode=pc.pricecode and prd.basecost=pc.costcode limit 1)) as NewBaseCost from usersettings.PricesCosts pc, farm.CostFormRules cfr where pc.PriceCode={0} and cfr.CostCode = pc.CostCode and pc.CostCode = {1}", _priceInfo.PriceCode, _priceInfo.CostCode.Value);
            }
            var daPricesCost = new MySqlDataAdapter(selectCostFormRulesSQL, _connection);
            var dtPricesCost = new DataTable("PricesCosts");

            daPricesCost.Fill(dtPricesCost);
            _reader.CostDescriptions = dtPricesCost.Rows.Cast <DataRow>().Select(r => new CostDescription(r)).ToList();
            _logger.DebugFormat("Загрузили цены {0}.{1}", _priceInfo.PriceCode, _priceInfo.CostCode);
            _saveInCore = saveInCore;
        }
Пример #8
0
        public void ToolRun(int toolIndex, int inputItemNum, TreeNode selectNode, FormLog myFormLog, FormImageWindow myFormWindow, List <IToolInfo> L_toolList)
        {
            FindLine myFindLine = (FindLine)L_toolList[toolIndex].tool;

            for (int j = 0; j < inputItemNum; j++)
            {
                if (L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value == null)
                {
                    selectNode.ForeColor = Color.Red;
                    myFormLog.ShowLog(L_toolList[toolIndex].toolName + "  无输入图像");
                }
                else
                {
                    string sourceFrom = L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value.ToString();
                    if (L_toolList[toolIndex].toolInput[j].IOName == "InputImage")
                    {
                        string sourceToolName = Regex.Split(sourceFrom, " . ")[0];
                        sourceToolName = sourceToolName.Substring(3, Regex.Split(sourceFrom, " . ")[0].Length - 3);
                        string toolItem = Regex.Split(sourceFrom, " . ")[1];
                        myFindLine.inputImage = GlobalParams.myVisionJob.GetToolInfoByToolName(GlobalParams.myVisionJob.JobName, sourceToolName).GetOutput(toolItem).value as HObject;
                    }
                }
            }
            myFindLine.Run(SoftwareRunState.Release);
            if (myFindLine.toolRunStatu == ToolRunStatu.Succeed)
            {
                myFindLine.DispMainWindow(GlobalParams.myVisionJob.myFormImageWindow.myHWindow);
                GlobalParams.myVisionJob.FormLogDisp(L_toolList[toolIndex].toolName + "  运行成功", Color.Green, selectNode);
            }
            else
            {
                GlobalParams.myVisionJob.FormLogDisp(L_toolList[toolIndex].toolName + "  运行失败", Color.Red, selectNode);
            }
        }
Пример #9
0
        private void btBack_Click(object sender, EventArgs e)
        {
            FormLog formLog = new FormLog();

            formLog.Show();
            this.Close();
        }
Пример #10
0
        private void button1_Click(object sender, EventArgs e)
        {
            FormLog register = new FormLog();

            register.Show();
            this.Close();
        }
Пример #11
0
        private void LogSettingBtn_Click(object sender, EventArgs e)
        {
            FormLog FormLog = new FormLog();

            LogSettingBtn.Enabled = false;
            FormLog.Dock          = DockStyle.Fill;
            Add_TabPage("Log Setting", FormLog);
        }
Пример #12
0
        public static string UpdateOfferSql(NewOffer offer, FormLog stat)
        {
            var fields = BuildSetSql(offer, offer.ExistsOffer, Mapping.OfferMapping);

            if (fields.Length == 0)
            {
                return("");
            }
            stat.UpdateCoreCount++;
            return(String.Format("update farm.Core0 set {0} where Id = {1};\r\n", fields, offer.ExistsOffer.Id));
        }
Пример #13
0
        public void ToolRun(int toolIndex, int inputItemNum, TreeNode selectNode, FormLog myFormLog, FormImageWindow myFormWindow, List <IToolInfo> L_toolList)
        {
            Caliper myCaliper = (Caliper)L_toolList[toolIndex].tool;

            for (int j = 0; j < inputItemNum; j++)
            {
                if (L_toolList[toolIndex].toolInput[j].IOName == "InputImage" && L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value == null)
                {
                    selectNode.ForeColor = Color.Red;
                    myFormLog.ShowLog(L_toolList[toolIndex].toolName + "  无输入图像");
                    break;
                }
                else
                {
                    if (L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value != null)
                    {
                        string sourceFrom     = L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value.ToString();
                        string sourceToolName = Regex.Split(sourceFrom, " . ")[0];
                        sourceToolName = sourceToolName.Substring(3, Regex.Split(sourceFrom, " . ")[0].Length - 3);
                        string toolItem = Regex.Split(sourceFrom, " . ")[1];
                        if (L_toolList[toolIndex].toolInput[j].IOName == "InputImage")
                        {
                            myCaliper.inputImage = GlobalParams.myVisionJob.GetToolInfoByToolName(GlobalParams.myVisionJob.JobName, sourceToolName).GetOutput(toolItem).value as HObject;
                        }
                        if (L_toolList[toolIndex].toolInput[j].IOName == "inputCenterRow")
                        {
                            myCaliper.expectRecStartRow = GlobalParams.myVisionJob.GetToolInfoByToolName(GlobalParams.myVisionJob.JobName, sourceToolName).GetOutput(toolItem).value as HTuple;
                        }
                        if (L_toolList[toolIndex].toolInput[j].IOName == "inputCenterCol")
                        {
                            myCaliper.expectRecStartColumn = GlobalParams.myVisionJob.GetToolInfoByToolName(GlobalParams.myVisionJob.JobName, sourceToolName).GetOutput(toolItem).value as HTuple;
                        }
                        if (L_toolList[toolIndex].toolInput[j].IOName == "inputPhi")
                        {
                            myCaliper.expectAngle = GlobalParams.myVisionJob.GetToolInfoByToolName(GlobalParams.myVisionJob.JobName, sourceToolName).GetOutput(toolItem).value as HTuple;
                        }
                    }
                }
            }
            myCaliper.Run(SoftwareRunState.Release);
            if (myCaliper.toolRunStatu == ToolRunStatu.Succeed)
            {
                myCaliper.DispMainWindow(myFormWindow.myHWindow);
                GlobalParams.myVisionJob.FormLogDisp(L_toolList[toolIndex].toolName + "  运行成功", Color.Green, selectNode);
            }
            else
            {
                GlobalParams.myVisionJob.FormLogDisp(L_toolList[toolIndex].toolName + "  运行失败", Color.Red, selectNode);
            }
        }
        /// <summary>
        /// анализируем цены и формируем список, если ценовая колонка имеет более 85% позиций с неустановленной ценой
        /// </summary>
        private void ProcessUndefinedCost(FormLog stat)
        {
            var stringBuilder = new StringBuilder();

            foreach (var cost in _reader.CostDescriptions)
            {
                if (cost.UndefinedCostCount > stat.Form * 0.85)
                {
                    stringBuilder.AppendFormat("ценовая колонка \"{0}\" имеет {1} позиций с незаполненной ценой\n", cost.Name, cost.UndefinedCostCount);
                }
            }

            Alerts.ToManyZeroCostAlert(stringBuilder, _priceInfo);
        }
Пример #15
0
 public void ToolRun(int toolIndex, int inputItemNum, TreeNode selectNode, FormLog myFormLog, FormImageWindow myFormWindow, List <IToolInfo> L_toolList)
 {
     HalconTool.HalconTool myHalconTool = (HalconTool.HalconTool)L_toolList[toolIndex].tool;
     myHalconTool.Run(SoftwareRunState.Release);
     if (myHalconTool.outputImage == null)
     {
         GlobalParams.myVisionJob.FormLogDisp(L_toolList[toolIndex].toolName + "  运行失败", Color.Red, selectNode);
     }
     else
     {
         GlobalParams.myVisionJob.FormLogDisp(L_toolList[toolIndex].toolName + "  运行成功", Color.Green, selectNode);
         GlobalParams.myVisionJob.myFormImageWindow.myHWindow.HobjectToHimage(myHalconTool.outputImage);
     }
 }
        /// <summary>
        /// анализируем цены и формируем сообщение, если ценовая колонка имеет все позиции установленными в 0
        /// </summary>
        private void ProcessZeroCost(FormLog stat)
        {
            var stringBuilder = new StringBuilder();

            foreach (var cost in _reader.CostDescriptions)
            {
                if ((cost.ZeroCostCount > 0 && stat.Form.GetValueOrDefault() == 0) || cost.ZeroCostCount == stat.Form.GetValueOrDefault())
                {
                    stringBuilder.AppendFormat("ценовая колонка \"{0}\" полностью заполнена '0'\n", cost.Name);
                }
            }

            Alerts.ZeroCostAlert(stringBuilder, _priceInfo);
        }
Пример #17
0
        private void DisplayLogWindow()
        {
            if (logUC == null)
            {
                logUC = new FormLog();
                //  logUC.DisposeEvent += HandleLogWindowClose;
                //To show trace on screen. Might need a switch later.
                logMemoListerner = new MemoTraceListener(logUC.Box);
                Trace.Listeners.Add(logMemoListerner);
                System.Drawing.Size size = new Size(300, 300);

                logUC.Size = size;
                logUC.Show();
            }
        }
Пример #18
0
        private void HandleLogWindowClose(object sender, EventArgs e)
        {
            LocationSizeChangedEventArgs ev = e as LocationSizeChangedEventArgs;

            logUC = null;
            Trace.Listeners.Remove(logMemoListerner);
            logMemoListerner = null;
            if (ev != null)
            {
                ProgramSettings.Default.LogWinLocation      = ev.Location;
                ProgramSettings.Default.LogWinSize          = ev.Size;
                ProgramSettings.Default.LogScreenDeviceName = Screen.FromPoint(ev.Location).DeviceName;
                ProgramSettings.Default.Save();
            }
        }
Пример #19
0
        public static string UpdateCostsCommand(NewOffer offer, FormLog stat)
        {
            var command = new StringBuilder();
            var costs   = (offer.Costs ?? new Cost[0]).Where(c => c.Value > 0).ToArray();

            foreach (var cost in costs)
            {
                Cost existsCost = null;
                if (offer.ExistsOffer.Costs != null)
                {
                    existsCost = offer.ExistsOffer.Costs.FirstOrDefault(c => c.Description.Id == cost.Description.Id);
                }
                if (existsCost == null)
                {
                    stat.InsertCostCount++;
                    command.AppendFormat("insert into farm.CoreCosts (Core_ID, PC_CostCode, ")
                    .Append(Mapping.CostMapping.Select(m => m.Name).Implode())
                    .Append(") values (")
                    .AppendFormat("{0}, {1},", offer.ExistsOffer.Id, cost.Description.Id)
                    .Append(Mapping.CostMapping.Select(m => ToSql(m.GetValue(cost))).Implode())
                    .Append(");");
                }
                else
                {
                    var cmd = UpdateCostSql(offer.ExistsOffer, cost, existsCost);
                    if (!String.IsNullOrEmpty(cmd))
                    {
                        stat.UpdateCostCount++;
                        command.Append(cmd);
                    }
                }
            }

            if (offer.ExistsOffer.Costs != null)
            {
                var costsToDelete = offer.ExistsOffer.Costs
                                    .Where(c => costs.All(nc => nc.Description.Id != c.Description.Id))
                                    .Select(c => c.Description.Id.ToString()).ToArray();
                if (costsToDelete.Length > 0)
                {
                    stat.DeleteCostCount += costsToDelete.Length;
                    command.AppendFormat("delete from farm.CoreCosts where Core_Id = {0} and PC_CostCode in ({1});", offer.ExistsOffer.Id, String.Join(", ", costsToDelete));
                }
            }

            return(command.ToString());
        }
Пример #20
0
        public async ValueTask Handle(HttpRequest request, HttpRequestLog logMessage, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                throw new NullReferenceException(nameof(request));
            }

            if (logMessage == null)
            {
                throw new NullReferenceException(nameof(logMessage));
            }

            var formLog = new FormLog();

            var form = await request.ReadFormAsync(cancellationToken);

            var option = _options.Value;

            var sensitiveData = option.SensitiveData.Request.Forms;

            foreach (var item in form)
            {
                cancellationToken.ThrowIfCancellationRequested();

                string itemValue;

                if (sensitiveData.TryGetValue(item.Key, out var protectType))
                {
                    itemValue = _dataProtector.Protect(item.Value, protectType);
                }
                else
                {
                    itemValue = item.Value;
                }

                formLog.Form.Add(item.Key, itemValue);
            }

            foreach (var file in form.Files)
            {
                formLog.Files.Add(new FileLog(file));
            }

            logMessage.Body = formLog;
        }
Пример #21
0
        /// <summary>
        /// ログコントロールにアタッチ
        /// </summary>
        /// <param name="lvCreateShip"></param>
        /// <param name="lvCreateItem"></param>
        /// <param name="lvBattleResult"></param>
        /// <param name="lvMissionResult"></param>
        /// <param name="lvMaterialChange"></param>
        public void AttachLogControls(
            System.Windows.Forms.ListView lvCreateShip,
            System.Windows.Forms.ListView lvCreateItem,
            System.Windows.Forms.ListView lvBattleResult,
            System.Windows.Forms.ListView lvMissionResult,
            System.Windows.Forms.ListView lvMaterialChange,
            System.Windows.Forms.DataVisualization.Charting.Chart ctMaterial,
            FormLog frmLog)
        {
            _vlvBattleLog.Attach(lvBattleResult, _battleLog);
            _vlvCreateItem.Attach(lvCreateItem, _createItemLog);
            _vlvCreateShip.Attach(lvCreateShip, _createShipLog);
            _vlvMaterialChange.Attach(lvMaterialChange, _materialsLog);
            _vlvMissionResult.Attach(lvMissionResult, _missionLog);

            _ctMaterial = ctMaterial;
            _frmLog     = frmLog;
        }
Пример #22
0
        private void InitializeControl()
        {
            LogicStatus.Instance.Logic.Init();//模块任务添加到线程池
            point = new Point();


            posmachine           = new PosMachine();
            ShowMessge.StartMsg += new ShowMessge.SendStartMsgEventHandler(ShowMessage);
            clean       = new Clean();
            model       = new model();
            data        = new parameter();
            userInfo    = new UserInfo();
            Frm_Machine = new Frm_MotorParam();
            frmLog      = new FormLog();
            frm_jog     = new XYZ_Jog();
            frm_Machine = new Frm_Machine();


            comboBox1.SelectedIndex   = 1;
            tabControl1.SelectedIndex = 0;
            tabControl1.ItemSize      = new Size(0, 1);
            tabControl1.Appearance    = TabAppearance.FlatButtons;
            tabControl1.SizeMode      = TabSizeMode.Fixed;

            data.TopLevel        = false;                //将子窗体设置成非最高层,非顶级控件
            data.FormBorderStyle = FormBorderStyle.None; //去掉窗体边框
            data.Size            = this.panel16.Size;
            data.Parent          = this.panel16;         //指定子窗体显示的容器
            data.Dock            = DockStyle.Fill;
            data.Show();
            data.Activate();

            model.TopLevel        = false;                //将子窗体设置成非最高层,非顶级控件
            model.FormBorderStyle = FormBorderStyle.None; //去掉窗体边框
            model.Size            = this.panel13.Size;
            model.Parent          = this.panel13;         //指定子窗体显示的容器
            model.Dock            = DockStyle.Fill;
            model.Show();
            model.Activate();
        }
Пример #23
0
        public void InitializeControl()
        {
            StartUpdate.SendStartMsg("初始化控件");
            frmLog    = new FormLog();
            userInfo  = new UserInfo();
            frm_Stick = new Frm_Runing();


            frm_Stick.TopLevel        = false;                //将子窗体设置成非最高层,非顶级控件
            frm_Stick.FormBorderStyle = FormBorderStyle.None; //去掉窗体边框
            frm_Stick.Size            = this.panel1.Size;
            frm_Stick.Parent          = this.panel1;          //指定子窗体显示的容器
            frm_Stick.Dock            = DockStyle.Fill;
            frm_Stick.Show();
            frm_Stick.Activate();
            StartUpdate.SendStartMsg("控件初始化完成");

            frm_Stick.data.DataBanding();
            frm_Stick.clean.databanding();
            frm_Stick.frm_Machine.Binding();
            StartUpdate.SendStartMsg("数据绑定完成");
        }
Пример #24
0
        public void InitializeControl()
        {
            StartUpdate.SendStartMsg("初始化控件");
            frmLog   = new FormLog();
            userInfo = new UserInfo();
            //frm_Stick = null;

            Frm_Machine = new Frm_MotorParam();

            //frm_Stick.TopLevel = false; //将子窗体设置成非最高层,非顶级控件
            //frm_Stick.FormBorderStyle = FormBorderStyle.None;//去掉窗体边框
            //frm_Stick.Size = this.panel1.Size;
            //frm_Stick.Parent = this.panel1;//指定子窗体显示的容器
            //frm_Stick.Dock = DockStyle.Fill;
            //frm_Stick.Show();
            //frm_Stick.Activate();

            skinTabControl1.ItemSize    = new Size(0, 1);
            skinTabControl1.Appearance  = TabAppearance.FlatButtons;
            skinTabControl1.SizeMode    = TabSizeMode.Fixed;
            skinTabControl1.SelectedTab = 主页Tag;
            StartUpdate.SendStartMsg("控件初始化完成");
        }
Пример #25
0
 public void SendWarning(FormLog stat)
 {
     throw new NotImplementedException();
 }
Пример #26
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            VersionHelper.CheckVersion();

            //MY INIT:
            if (!Settings.Load())
            {
                Settings.Current = new Settings();
                Settings.Save();
            }

            string missionFileName          = null;
            string customVesselDataFileName = null;

            string[] argList = Environment.GetCommandLineArgs();
            if (argList.Length > 2 && argList[1] == "-v")
            {
                customVesselDataFileName = argList[2];
            }
            else if (argList.Length > 3 && argList[2] == "-v")
            {
                customVesselDataFileName = argList[3];
            }
            if ((argList.Length > 1) &&
                (argList[1] == "-?" || argList[1] == "/?" || argList[1] == "-h" || argList[1] == "/h"))
            {
                MessageBox.Show("ArtemisMissionEditor.exe [missionfilename] [-v vesseldatafilename]", "Command-line syntax");
                return;
            }
            else if (argList.Length > 1 && argList[1] != "-v")
            {
                missionFileName = argList[1];
            }

            FormLogInstance               = new FormLog();
            FormMainInstance              = new FormMain();
            FormSettingsInstance          = new FormSettings();
            FormFindReplaceInstance       = new   FormFindReplace();
            FormSearchResultsInstance     = new   FormSearchResults();
            FormDependencyInstance        = new   FormDependency();
            FormHelpInstance              = new   FormHelp();
            FormMissionPropertiesInstance = new   FormMissionProperties();
            FormNotepadInstance           = new FormNotepad();

            AllOwnedForms = new List <Form>();
            AllOwnedForms.Add(FormSettingsInstance);
            AllOwnedForms.Add(FormSettingsInstance);
            AllOwnedForms.Add(FormFindReplaceInstance);
            AllOwnedForms.Add(FormSearchResultsInstance);
            AllOwnedForms.Add(FormDependencyInstance);
            AllOwnedForms.Add(FormHelpInstance);
            AllOwnedForms.Add(FormMissionPropertiesInstance);
            AllOwnedForms.Add(FormNotepadInstance);
            AllOwnedForms.Add(FormLogInstance);

            foreach (Form form in AllOwnedForms)
            {
                form.Owner       = FormMainInstance;
                form.Deactivate += new EventHandler((object sender, EventArgs e) => { ((Form)sender).Opacity = Settings.Current.FormOpacity; });
                form.Activated  += new EventHandler((object sender, EventArgs e) => { ((Form)sender).Opacity = 1.0; });
            }

            string currentVesselDataPathToLoad = customVesselDataFileName ?? Settings.Current.DefaultVesselDataPath;

            if (File.Exists(currentVesselDataPathToLoad))
            {
                VesselData.Current.Load(currentVesselDataPathToLoad);
            }

            if (File.Exists(missionFileName))
            {
                Mission.Current.FromFile(missionFileName);
            }

            //Start
            Application.Run(FormMainInstance);
        }
Пример #27
0
 public void SendWarning(FormLog stat)
 {
     CheckColumnPresents();
 }
        /// <summary>
        /// прозводим обработку рабочих ниток
        /// </summary>
        protected void ProcessThreads()
        {
            lock (pt) {
                var statisticMessage = String.Empty;
                for (var i = pt.Count - 1; i >= 0; i--)
                {
                    var p = pt[i];

                    //Если нитка не работает, то удаляем ее
                    if (p.FormalizeEnd || !p.ThreadIsAlive || ((p.ThreadState & ThreadState.Stopped) > 0))
                    {
                        DeleteProcessThread(p);
                        pt.RemoveAt(i);
                    }
                    else if ((DateTime.UtcNow.Subtract(p.StartDate).TotalMinutes > Settings.Default.MaxLiveTime) && ((p.ThreadState & ThreadState.AbortRequested) == 0))
                    {
                        //Остановка нитки по сроку, если она работает дольше, чем можно
                        _logger.InfoFormat(System.Globalization.CultureInfo.CurrentCulture,
                                           "Останавливаем нитку по сроку {0}: IsAlive = {1}   ThreadState = {2}  FormalizeEnd = {3}  StartDate = {4}  ProcessState = {5}",
                                           p.TID,
                                           p.ThreadIsAlive,
                                           p.ThreadState,
                                           p.FormalizeEnd,
                                           p.StartDate.ToLocalTime(),
                                           p.ProcessState);
                        p.AbortThread();
                        _logger.InfoFormat("Останов нитки успешно вызван {0}", p.TID);
                    }
                    else if (p.IsAbortingLong)
                    {
                        //Принудительно завершаем прерванную нитку, т.к. время останова превысило допустимый интервал ожидания
                        _logger.InfoFormat("Принудительно завершаем прерванную нитку {0}.", p.TID);
                        DeleteProcessThread(p);
                        pt.RemoveAt(i);
                    }
                    else if (((p.ThreadState & ThreadState.AbortRequested) > 0) && ((p.ThreadState & ThreadState.WaitSleepJoin) > 0))
                    {
                        _logger.InfoFormat("Вызвали прерывание для нитки {0}.", p.TID);
                        p.InterruptThread();
                    }
                    else
                    {
                        statisticMessage += String.Format(
                            "{0} ID={1} IsAlive={2} StartDate={3} ThreadState={4} FormalizeEnd={5} ProcessState={6}, ",
                            Path.GetFileName(p.ProcessItem.FilePath),
                            p.TID,
                            p.ThreadIsAlive,
                            p.StartDate.ToLocalTime(),
                            p.ThreadState,
                            p.FormalizeEnd,
                            p.ProcessState);


                        //Если формализация выполняется более X минут, то создаем ошибку в логе, чтобы она отразилась в приложении статистике
                        if (!p.FormalizeEnd && DateTime.UtcNow.Subtract(p.StartDate).TotalMinutes >= Settings.Default.LongFormalizationWarningTimeout)
                        {
                            var log = new FormLog();
                            log.Host        = Environment.MachineName;
                            log.PriceItemId = (uint?)p.ProcessItem.PriceItemId;
                            log.LogTime     = DateTime.Now;
                            log.ResultId    = 15;
                            log.Addition    = "Прайс формализовался более " + Settings.Default.LongFormalizationWarningTimeout + " минут";
                            Session.Save(log);
                            Session.Flush();
                        }
                    }
                }

                if (DateTime.Now.Subtract(lastStatisticReport).TotalSeconds > statisticPeriodPerSecs)
                {
                    _logger.InfoFormat("Кол-во работающих нитей {0} : {1}", pt.Count, statisticMessage);
                }
            }
        }
Пример #29
0
        /// <summary>
        /// ログコントロールにアタッチ
        /// </summary>
        /// <param name="lvCreateShip"></param>
        /// <param name="lvCreateItem"></param>
        /// <param name="lvBattleResult"></param>
        /// <param name="lvMissionResult"></param>
        /// <param name="lvMaterialChange"></param>
        public void AttachLogControls(
            System.Windows.Forms.ListView lvCreateShip,
            System.Windows.Forms.ListView lvCreateItem,
            System.Windows.Forms.ListView lvBattleResult,
            System.Windows.Forms.ListView lvMissionResult,
            System.Windows.Forms.ListView lvMaterialChange,
            System.Windows.Forms.DataVisualization.Charting.Chart ctMaterial,
            FormLog frmLog)
        {
            _vlvBattleLog.Attach(lvBattleResult, _battleLog);
            _vlvCreateItem.Attach(lvCreateItem, _createItemLog);
            _vlvCreateShip.Attach(lvCreateShip, _createShipLog);
            _vlvMaterialChange.Attach(lvMaterialChange, _materialsLog);
            _vlvMissionResult.Attach(lvMissionResult, _missionLog);

            _ctMaterial = ctMaterial;
            _frmLog = frmLog;
        }
 public void SendWarning(FormLog stat)
 {
 }
Пример #31
0
        /// <summary>
        /// 메인 폼이 로딩될 때.. 이벤트 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FormMain_Load(object sender, EventArgs e)
        {
            try
            {
                #region 로그 출력을 위한 윈폼이 제일 먼저 실행됨

                // 로그 폼 - 제일 먼저 나와야 함
                mfLog           = new FormLog();
                mfLog.Owner     = this;
                mfLog.mFormMain = this;
                mfLog.Show();
                CheckShowFormLog.Checked = true;

                #endregion

                #region 현재 프로그램 정보 확인 및 세팅
                // 프로그램 경로
                setting.program_execute_dir = Util.GetCurrentDirectoryWithPath();

                setting.program_full_name = Environment.GetCommandLineArgs()[0];

                // 프로그램 실행시 받은 파라미터 확인
                if (Environment.GetCommandLineArgs().Length == 1)
                {
                    Log.WriteLine("##### 프로그램 시작 #####");
                }
                else
                {
                    Log.WriteLine("##### 프로그램 재시작 #####");
                }

                #endregion

                #region 서브 윈도우 폼 로딩

                // 환경설정 폼
                mfSetting        = new FormSetting();
                mfSetting.Owner  = this;
                mfSetting.mfMain = this;
                mfSetting.Show();
                CheckShowFormSetting.Checked = true;

                // Trading 폼
                mfTrading        = new FormTrading();
                mfTrading.Owner  = this;
                mfTrading.mfMain = this;
                mfTrading.Show();
                CheckShowFormTrading.Checked = true;

                // 로그인 폼
                mfLogin           = new FormLogin();
                mfLogin.Owner     = this;
                mfLogin.mFormMain = this;
                mfLogin.Show();
                CheckShowFormLogin.Checked = true;

                mfOcr           = new FormOCR();
                mfOcr.Owner     = this;
                mfOcr.mFormMain = this;
                mfOcr.Show();
                CheckShowFormOcr.Checked = true;

                #endregion


                // xing component 로드
                fnLoadXing();

                // 자동 로그인 설정이 되어 있으면...
                if (setting.login_auto_yn)
                {
                    Log.WriteLine("자동 로그인 시작");
                    TimerLogin.Start();
                }
            }
            catch (Exception ex)
            {
                Log.WriteLine(ex.Message);
                Log.WriteLine(ex.StackTrace);
            }
        }               // end function