Beispiel #1
0
        private void StopSimulationButton_Click(object sender, EventArgs e)
        {
            int NumErrors = 0;

            foreach (Process ModelProcess in SimulationController.ModelsProcesses)
            {
                try
                {
                    if (!ModelProcess.HasExited)
                    {
                        ModelProcess.Kill();
                    }
                }
                catch (Exception KillException)
                {
                    ToLogsTextBox("Process kill error: " + KillException.Message);
                    NumErrors++;
                }
            }

            if (NumErrors != 0)
            {
                MessageBox.Show(NumErrors.ToString() + " errors occured at attempt to stop simulation process", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Beispiel #2
0
        private void modelname_cmb_SelectedIndexChanged(object sender, EventArgs e)
        {
            foreach (ModelProcess item in modelprocess)
            {
                item.Selected       = false;
                item.ModelProcessId = 0;
            }

            if (modelname_cmb.SelectedIndex >= 0)
            {
                ModelVo mm = (ModelVo)modelname_cmb.SelectedItem;
                ValueObjectList <ModelProcessVo> mlv = (ValueObjectList <ModelProcessVo>)DefaultCbmInvoker.Invoke(new Cbm.GetModelProcessCbm(), new ModelProcessVo {
                    ModelID = mm.ModelId
                });

                foreach (ModelProcessVo vo in mlv.GetList())
                {
                    ModelProcess ml = modelprocess.Find(x => x.mvo.ProcessId == vo.ProcessID);
                    if (ml != null)
                    {
                        ml.Selected       = true;
                        ml.ModelProcessId = vo.ModelProcessID;
                    }
                }
            }
            Process_dgv.Refresh();
        }
 public void refreshState(Action <ModelProcess> refresh, ModelProcess modelProcess)
 {
     if (refresh != null)
     {
         refresh.Invoke(modelProcess);
     }
 }
Beispiel #4
0
        private void Update_btn_Click(object sender, EventArgs e)
        {
            if (modelname_cmb.SelectedIndex >= 0)
            {
                ModelVo modelvo = (ModelVo)modelname_cmb.SelectedItem;
                ValueObjectList <ModelProcessVo> deletelist = new ValueObjectList <ModelProcessVo>();
                ValueObjectList <ModelProcessVo> addlist    = new ValueObjectList <ModelProcessVo>();
                for (int i = 0; i < Process_dgv.Rows.Count; i++)
                {
                    ModelProcess mg = (ModelProcess)Process_dgv.Rows[i].DataBoundItem;
                    if (mg.ModelProcessId > 0 && !mg.Selected)
                    {
                        deletelist.add(new ModelProcessVo {
                            ModelProcessID = mg.ModelProcessId
                        });
                    }
                    else if (mg.ModelProcessId == 0 && mg.Selected)
                    {
                        addlist.add(new ModelProcessVo
                        {
                            ModelID              = modelvo.ModelId,
                            ProcessID            = mg.mvo.ProcessId,
                            FactoryCode          = UserData.GetUserData().FactoryCode,
                            RegistrationUserCode = UserData.GetUserData().UserCode
                        });
                    }
                }
                if (deletelist.GetList().Count > 0)
                {
                    DefaultCbmInvoker.Invoke(new DeleteModelProcessCbm(), deletelist);
                }
                if (addlist.GetList().Count > 0)
                {
                    DefaultCbmInvoker.Invoke(new AddModelProcessCbm(), addlist);
                }
                if (addlist.GetList().Count > 0 || deletelist.GetList().Count > 0)
                {
                    messageData = new MessageData("mmci00002", Properties.Resources.mmci00002, null);
                    logger.Info(messageData);
                    DialogResult dialogResult = popUpMessage.ConfirmationOkCancel(messageData, Text);

                    modelname_cmb_SelectedIndexChanged(null, null);
                }
            }
        }
        /// <summary>
        /// 断点续传下载
        /// </summary>
        /// <param name="sourceUrl"></param>
        /// <param name="destinationPath"></param>
        private void DownloadFileWithResume(string sourceUrl, string destinationPath, ModelProcess curModelProcess, Action <ModelProcess> refresh, Action <Message> showMessage)
        {
            try
            {
                long       existLen = 0;
                FileStream saveFileStream;
                if (File.Exists(destinationPath))
                {
                    var fInfo = new FileInfo(destinationPath);
                    existLen = fInfo.Length;
                }
                if (existLen > 0)
                {
                    saveFileStream = new FileStream(destinationPath,
                                                    FileMode.Append, FileAccess.Write,
                                                    FileShare.ReadWrite);
                }
                else
                {
                    saveFileStream = new FileStream(destinationPath,
                                                    FileMode.Create, FileAccess.Write,
                                                    FileShare.ReadWrite);
                }

                var httpWebRequest = (HttpWebRequest)System.Net.HttpWebRequest.Create(sourceUrl);
                httpWebRequest.AddRange(existLen);

                try
                {
                    var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                    byte[] buffer     = new byte[1024];
                    var    totalCount = httpWebResponse.ContentLength;
                    using (var respStream = httpWebResponse.GetResponseStream())
                    {
                        var timout = httpWebRequest.Timeout;
                        //respStream.CopyTo(saveFileStream);

                        int readTotalSize = (int)existLen;

                        //int size = respStream.Read(buffer, 0, buffer.Length);
                        int size = respStream.Read(buffer, 0, buffer.Length);

                        while (size > 0)
                        {
                            //只将读出的字节写入文件
                            saveFileStream.Write(buffer, 0, size);
                            readTotalSize += size;

                            size = respStream.Read(buffer, 0, buffer.Length);

                            if (size == 0)
                            {
                                saveFileStream.Close();
                                saveFileStream.Dispose();

                                curModelProcess.Percent = 100;
                                refreshState(refresh, curModelProcess);
                            }
                            int oldValue = curModelProcess.Percent;
                            var curPer   = (int)((readTotalSize / (float)httpWebResponse.ContentLength) * 100);
                            if (curPer > (oldValue + 1))
                            {
                                curModelProcess.Percent = ((int)curPer);
                                refreshState(refresh, curModelProcess);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //已经下载完成,或者已存在的文件大小大于等于服务端的文件

                    showMessage(new Message()
                    {
                        Duration = 0, MsgType = MessageType.Error, Msg = ex.ToString(), Showtype = Showtype.Message
                    });
                }
            }
            catch (Exception ex)
            {
            }
        }