示例#1
0
        /// <summary>
        /// Retrieve a list of ProcessDetail objects
        /// </summary>
        /// <param name="logController">The LogController object that can be used to add logs</param>
        /// <returns>A list of ProcessDetail objects that are currently available</returns>
        internal static async Task <List <ProcessDetail> > GetProcessDetails(LogController logController)
        {
            logController.AddLog(new ProcessLog("Retrieving process details"));
            List <ProcessDetail> processDetailsList = new List <ProcessDetail>();

            await Task.Run(() =>
            {
                foreach (Process p in Process.GetProcesses())
                {
                    try
                    {
                        ProcessDetail pd = new ProcessDetail
                        {
                            ProcessId       = p.Id,
                            ProcessName     = p.ProcessName,
                            ProcessLocation = p.MainModule.FileName,
                            MemoryUsage     = (p.WorkingSet64 / (1024 * 1024)).ToString("F2") + " MB",
                            MemoryUsageLong = p.WorkingSet64
                        };
                        processDetailsList.Add(pd);
                    }
                    catch (Exception ex)
                    {
                        logController.AddLog(new ProcessLog(p.ProcessName + ": " + ex.Message));
                    }
                }
            });

            logController.AddLog(new ProcessLog("Done retrieving process details"));
            return(processDetailsList);
        }
        public async Task <IActionResult> IndexWelcom(string name)
        {
            List <ProcessDetail> detailsList = new List <ProcessDetail>();

            using (var httpClient = new HttpClient())
            {
                try
                {
                    using (var response = await httpClient.GetAsync("http://localhost:34213/api/Process/GetAllDetails"))
                    {
                        string apiResponse = await response.Content.ReadAsStringAsync();

                        detailsList = JsonConvert.DeserializeObject <List <ProcessDetail> >(apiResponse);
                    }
                    ProcessDetail processDetail = detailsList.FirstOrDefault(d => d.Name == name);
                    TempData["Name"]     = processDetail.Name;
                    TempData["CCNumber"] = processDetail.CreditCardNumber.ToString();
                }
                catch (Exception)
                {
                    ViewBag.Message = "Component API not Loaded. Please Try Later.";
                    return(View());
                }
            }


            return(View("ProcessRequest"));
        }
示例#3
0
        /// <summary>
        /// 获取单个审批实例
        /// https://oapi.dingtalk.com/topapi/processinstance/get?access_token=ACCESS_TOKEN
        /// 参数 process_instance_id 第二步中结果 list 审批实例id列表
        /// </summary>
        /// <param name="token">Token</param>
        /// <param name="process_instance_id">单个实例ID号</param>
        /// <returns></returns>
        public ProcessDetail GetProsDetial(string token, string process_instance_id)
        {
            this.strUrl  = "https://oapi.dingtalk.com/topapi/processinstance/get?access_token=" + token + "&process_instance_id=" + process_instance_id;
            this.strJson = HttpMethod.HttpGet(this.strUrl, string.Empty);

            ProcessDetail _processDetail = JsonHelper.FromJson <ProcessDetail>(this.strJson);

            return(_processDetail);
        }
示例#4
0
        public string PaymentProcess(long CreditCardNumber, int CreditLimit, double ProcessingCharge)
        {
            ProcessDetail   processDetail   = new ProcessDetail();
            ProcessResponse processResponse = new ProcessResponse();
            ProcessRequest  processRequest  = new ProcessRequest();
            var             p             = _context.ProcessDetails.FirstOrDefault(c => c.CreditCardNumber == CreditCardNumber);
            var             BalanceAmount = Convert.ToString(CreditLimit - (p.PackagingAndDeliveryCharge + p.ProcessingCharge));

            return(BalanceAmount);
        }
示例#5
0
        private static void GetProcessDetail(StringBuilder sb)
        {
            sb.AppendLine().AppendLine(Separator).AppendLine("Process details").AppendLine(Separator);
            var detail = new ProcessDetail();

            ((IEventDetail)detail).Populate();
            sb.Append("Machine Name: ").AppendLine(detail.MachineName);
            sb.Append("Process Name: ").AppendLine(detail.ProcessName);
            sb.Append("Process Id: ").AppendLine(detail.ProcessId.ToString());
        }
示例#6
0
        public void SaveProcessDetail(ProcessDetail model)
        {
            string cmdSql = @"insert into sfcdatProcessDetail(CurrentProcessInfoId,SettingId,LoginId,ProcessStatus,Content,CurrentNodePositionId,NextNodePostionId
, Creator) values(@CurrentProcessInfoId,@SettingId,@LoginId,@ProcessStatus,@Content,@CurrentNodePositionId,@NextNodePostionId
, @Creator)";

            CmdParameter[] paras = new CmdParameter[8];
            paras[0] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@SettingId", Value = model.SettingId
            };
            paras[1] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@LoginId", Value = model.LoginId
            };
            paras[2] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@ProcessStatus", Value = model.ProcessStatus
            };
            paras[3] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@Content", Value = model.Content
            };
            paras[4] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@CurrentNodePositionId", Value = model.CurrentNodePositionId
            };
            paras[5] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@NextNodePostionId", Value = model.NextNodePostionId
            };
            paras[6] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@Creator", Value = Creator
            };
            paras[7] = new CmdParameter()
            {
                DBtype = DBType.String, ParameterName = "@CurrentProcessInfoId", Value = model.CurrentProcessInfoId
            };

            bool flag = new BaseSQL(sqlConn).ExeSql(cmdSql, paras);

            if (!flag)
            {
                Fail("插入数据库sfcdatProcessDetail失败!");
            }
            else
            {
                Success();
            }
        }
示例#7
0
        //第四步 工作消息通知
        //https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=ACCESS_TOKEN
        //参数 agent_id 应用agentId ,userid_list 第三步  originator_userid  errcode=0 审批通过
        public WorkMsgReturn DoPostPerson(string token, ProcessDetail _processDetail)
        {
            Text _text = new Text()
            {
                content = string.Empty
            };

            List <Form_component_values> _lsComp   = _processDetail.process_instance.form_component_values;
            List <LsRowValue>            rowValues = new List <LsRowValue>();

            foreach (var item in _lsComp)
            {
                if (item.name.Contains("物品明细"))
                {
                    rowValues = JsonHelper.FromJson <List <LsRowValue> >(item.value);
                    foreach (var itemRowDetial in rowValues)
                    {
                        foreach (var itemDetail in itemRowDetial.rowValue)
                        {
                            if (itemDetail.label == "物品名称")
                            {
                                _text.content += "商品名称:\t" + itemDetail.value + "\r\n" + "取货码:" + string.Format("{0:ssffff}", DateTime.Now) + "\r\n";
                            }
                        }
                    }
                }
            }
            _text.content = "申请时间:" + _processDetail.process_instance.create_time.ToString() + "\r\n" + _text.content;

            SenPersonMsg _sdMsg = new SenPersonMsg();
            Msg          _msg   = new Msg()
            {
                msgtype = "text", text = _text
            };

            _sdMsg.agent_id    = "250353028";
            _sdMsg.userid_list = _processDetail.process_instance.originator_userid;
            _sdMsg.msg         = _msg;
            string strMsgJson = JsonHelper.ToJson <SenPersonMsg>(_sdMsg);

            this.strUrl  = "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=" + token;
            this.strJson = HttpMethod.PostUrl(this.strUrl, strMsgJson);
            WorkMsgReturn _workMsgReturn = JsonHelper.FromJson <WorkMsgReturn>(this.strJson);

            return(_workMsgReturn);
        }
示例#8
0
        public HttpResponseMessage GetProcessDetails()
        {
            string        name   = Path.GetFileNameWithoutExtension(ConfigurationManager.AppSettings["AppPath"]);
            ProcessDetail detail = new ProcessDetail();

            if (IsProcessOpen(name))
            {
                Process proc = Process.GetProcesses().ToList <Process>().Where(t => t.ProcessName.ToUpper() == name.ToUpper()).FirstOrDefault();
                detail.TaskName    = proc.ProcessName;
                detail.ElapsedTime = DateTime.Now.Subtract(proc.StartTime).ToString(@"hh\:mm\:ss\.fff", CultureInfo.InvariantCulture);
            }
            else
            {
                detail.TaskName    = name;
                detail.ElapsedTime = null;
            }
            return(Request.CreateResponse <ProcessDetail>(HttpStatusCode.OK, detail));
        }
示例#9
0
        /// <summary>
        /// 发起
        /// </summary>
        public void InitiateProcess(int settingId, string loginId)
        {
            ProcessInfo process = new ProcessInfo();
            //process
            var json = JsonConvert.SerializeObject(process);
            //将配置中的配置模型将模型的发起步骤提炼出来放入当前发起的记录中

            ProcessDetail detail = new ProcessDetail()
            {
                SettingId             = settingId,
                LoginId               = loginId,
                ProcessStatus         = Convert.ToInt32(ProcessStatus.未处理),
                CurrentNodePositionId = 0,
                NextNodePostionId     = 0,
                Content               = json
            };

            SaveProcessDetail(detail);
        }
示例#10
0
        public string PaymentProcess(long CreditCardNumber, int CreditLimit)
        {
            ProcessDetail   processDetail   = new ProcessDetail();
            ProcessResponse processResponse = new ProcessResponse();
            ProcessRequest  processRequest  = new ProcessRequest();
            string          BalanceAmount;
            var             p = _context.ProcessDetails.FirstOrDefault(c => c.CreditCardNumber == CreditCardNumber);

            if (CreditLimit < (p.PackagingAndDeliveryCharge + p.ProcessingCharge))
            {
                BalanceAmount = "Please Increase your Credit Limit!!!";
            }
            else
            {
                BalanceAmount = (CreditLimit - (p.PackagingAndDeliveryCharge + p.ProcessingCharge)).ToString();
            }

            return(BalanceAmount);
        }
示例#11
0
        public async Task StartProcessMonitor(int processId)
        {
            ProcessDetail processDetail = new ProcessDetail()
            {
                Id     = processId,
                Name   = "Bart Process",
                Events = new AppEventsCollection()
                {
                    new AppEvent()
                    {
                        Id = 2, Name = "riding skate"
                    }, new PriorityEvent()
                    {
                        Id = 1, Level = 2, Name = "playing with milhouse"
                    }
                }
            };


            await Clients.All.SendAsync("ReceiveEvent", processDetail);
        }
示例#12
0
        /// <summary>
        /// Export a list of ProcessDetail objects to a specific path in text format
        /// </summary>
        /// <param name="path">The path where the data should be stored</param>
        /// <param name="processDetails">The list of ProcessDetail objects that need to be exported</param>
        internal static void ExportText(string path, List <ProcessDetail> processDetails)
        {
            if (processDetails == null || processDetails.Count == 0)
            {
                throw new ArgumentNullException();
            }
            StringBuilder sb = new StringBuilder();

            sb.Append("MemPlus - Process Analyzer Data (" + DateTime.Now + ")" + Environment.NewLine + "---" + Environment.NewLine);

            for (int i = 0; i < processDetails.Count; i++)
            {
                ProcessDetail pd = processDetails[i];
                sb.Append(pd.ProcessId + "\t" + pd.ProcessName + "\t" + pd.ProcessLocation + "\t" + pd.MemoryUsage);

                if (i == processDetails.Count - 1)
                {
                    continue;
                }
                sb.Append(Environment.NewLine);
            }

            Export(path, sb.ToString());
        }
示例#13
0
        static void Main(string[] args)
        {
            DDAPI  _dDAPI   = new DDAPI();
            string strToken = _dDAPI.GetAcessTocken();

            ProcessInstance _processInstance = _dDAPI.GetProsListId(strToken);

            foreach (var item in _processInstance.result.list)
            {
                ProcessDetail _processDetail = _dDAPI.GetProsDetial(strToken, item);

                WorkMsgReturn _workMsgReturn = _dDAPI.DoPostPerson(strToken, _processDetail);

                // 检查数据是否真实发送
                WorkSendOk _workSendOk = _dDAPI.GetWorkSendOk(strToken, _workMsgReturn.task_id);
            }

            //ProcessDetail _processDetail = _dDAPI.GetProsDetial(strToken, _processInstance.result.list[0]);

            //WorkMsgReturn _workMsgReturn = _dDAPI.DoPostPerson(strToken, _processDetail);

            Console.WriteLine("执行成功");
            Console.ReadLine();
        }
示例#14
0
        public ProcessResponse ProcessResponse(string Name, string ContactNumber, string ComponentType, string ComponentName, int Quantity, string IsPriorityRequest)
        {
            ProcessResponse pResponse = new ProcessResponse();
            ProcessRequest  pRequest  = new ProcessRequest();
            //Random r = new Random();
            //pResponse.RequestId = r.Next(10, 200);
            var DateofDelivery = DateTime.Now;

            ProcessDetail a = _test.ProcessDetails.FirstOrDefault(c => c.ContactNumber == ContactNumber);

            if (ComponentType == "Integral" && (IsPriorityRequest == "No" || IsPriorityRequest == null))
            {
                pResponse.RequestId = a.RequestId;
                using (var client = new HttpClient())
                {
                    //pRequest.ComponentType = a.ComponentType;
                    client.BaseAddress = new Uri("https://localhost:44344");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    var response = client.GetAsync("api/PackageDelivery/GetPackagingDeliveryCharge/" + ComponentType + "," + Quantity).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        string responseString = response.Content.ReadAsStringAsync().Result;
                        string PandD          = JsonConvert.DeserializeObject <string>(responseString);
                        //pResponse.PackagingAndDeliveryCharge = (double?)PandD;
                        pResponse.PackagingAndDeliveryCharge = Convert.ToDouble(PandD);
                    }
                }
                pResponse.ProcessingCharge = 500;
                //pResponse.PackagingAndDeliveryCharge = 300;
                pResponse.DateofDelivery = DateofDelivery.AddDays(5);

                a.PackagingAndDeliveryCharge = pResponse.PackagingAndDeliveryCharge;
                a.ProcessingCharge           = pResponse.ProcessingCharge;
                a.DateofDelivery             = DateofDelivery.AddDays(5);

                _test.SaveChanges();

                //return pResponse;
            }
            if (ComponentType == "Integral" && IsPriorityRequest == "Yes")
            {
                pResponse.RequestId = a.RequestId;
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://localhost:44344");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


                    var response = client.GetAsync("api/PackageDelivery/GetPackagingDeliveryCharge/" + ComponentType + "," + Quantity).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        string responseString = response.Content.ReadAsStringAsync().Result;
                        string PandD          = JsonConvert.DeserializeObject <string>(responseString);
                        //pResponse.PackagingAndDeliveryCharge = (double?)PandD;
                        pResponse.PackagingAndDeliveryCharge = Convert.ToDouble(PandD);
                        //_test.SaveChanges();
                    }
                }

                pResponse.ProcessingCharge = 700;
                //pResponse.PackagingAndDeliveryCharge = 500;
                pResponse.DateofDelivery = DateofDelivery.AddDays(2);

                a.PackagingAndDeliveryCharge = pResponse.PackagingAndDeliveryCharge;
                a.ProcessingCharge           = pResponse.ProcessingCharge;
                a.DateofDelivery             = DateofDelivery.AddDays(2);
                _test.SaveChanges();

                //return pResponse;
            }
            //if(ComponentType == "Integral")
            if (ComponentType == "Accessory")
            {
                pResponse.RequestId = a.RequestId;
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://localhost:44344");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


                    var response = client.GetAsync("api/PackageDelivery/GetPackagingDeliveryCharge/" + ComponentType + "," + Quantity).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        string responseString = response.Content.ReadAsStringAsync().Result;
                        string PandD          = JsonConvert.DeserializeObject <string>(responseString);
                        //pResponse.PackagingAndDeliveryCharge = (double?)PandD;
                        pResponse.PackagingAndDeliveryCharge = Convert.ToDouble(PandD);
                        //_test.SaveChanges();
                    }
                }

                pResponse.ProcessingCharge = 300;
                //pResponse.PackagingAndDeliveryCharge = 500;
                pResponse.DateofDelivery = DateofDelivery.AddDays(5);

                a.PackagingAndDeliveryCharge = pResponse.PackagingAndDeliveryCharge;
                a.ProcessingCharge           = pResponse.ProcessingCharge;
                a.DateofDelivery             = DateofDelivery.AddDays(2);
                _test.SaveChanges();
            }

            return(pResponse);
        }
示例#15
0
 public static void MapTo(this ProcessDetail detail, TrackingRequestEntity entity)
 {
     entity.serverHostName  = detail.MachineName.Substring(0, Math.Min(detail.MachineName.Length, 128));
     entity.serverProcessId = detail.ProcessId;
 }