Пример #1
0
    public static JsonItem GetTaskStateJsonItem(BPMConnection cn, TaskState state, int taskid)
    {
        JsonItem rv = new JsonItem();

        rv.Attributes.Add("State", state.ToString().ToLower());

        if (state == TaskState.Running)
        {
            JsonItemCollection children = new JsonItemCollection();
            rv.Attributes.Add("children", children);

            BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid);
            foreach (BPMProcStep step in steps)
            {
                JsonItem item = new JsonItem();
                item.Attributes.Add("StepName", step.StepDisplayName);
                item.Attributes.Add("Share", step.Share);
                item.Attributes.Add("RecipientAccount", step.RecipientAccount);
                item.Attributes.Add("RecipientDisplayName", step.RecipientFullName);
                children.Add(item);
            }
        }

        return(rv);
    }
Пример #2
0
    public static JObject GetTaskStateJObject(BPMConnection cn, TaskState state, int taskid)
    {
        JObject rv = new JObject();

        rv["State"] = state.ToString().ToLower();

        if (state == TaskState.Running)
        {
            JArray children = new JArray();
            rv.Add(YZJsonProperty.children, children);

            BPMStepCollection steps = BPMTask.GetUnFinishedHumanSteps(cn, taskid);
            foreach (BPMProcStep step in steps)
            {
                JObject item = new JObject();
                item["StepName"]             = step.StepDisplayName;
                item["Share"]                = step.Share;
                item["RecipientAccount"]     = step.RecipientAccount;
                item["RecipientDisplayName"] = step.RecipientFullName;
                children.Add(item);
            }
        }

        return(rv);
    }
Пример #3
0
 private static void SetDeploymentTaskState(TaskResource deploymentTask, TaskState deploymentState)
 {
     Log.Logger.Information($"\tSetting deployment status to [{deploymentState.ToString()}]");
     if (deploymentTask.State != deploymentState)
     {
         _repository.Tasks.ModifyState(deploymentTask, deploymentState, GeneralResourceProperty.TaskStateModification).Wait();
     }
 }
Пример #4
0
        public List <TaskItem> GetTasksBy(int targetItemId, TaskState state)
        {
            lock (this.locker)
            {
                var strState = state.ToString();

                return(this.db.Table <TaskItem>()
                       .Where(t => t.TargetItemId == targetItemId && t.State == strState)
                       .OrderBy(t => t.Title)
                       .ToList());
            }
        }
Пример #5
0
    internal void SetState(TaskState newState)
    {
        if (State == newState)
        {
            return;
        }

        State = newState;

        switch (newState)
        {
        case TaskState.Working:
            Init();
            break;

        case TaskState.Success:
            OnSuccess();
            CleanUp();
            break;

        case TaskState.Aborted:
            OnAbort();
            CleanUp();
            break;

        case TaskState.Failed:
            OnFail();
            CleanUp();
            break;

        case TaskState.Pending:
            break;

        default:
            throw new ArgumentOutOfRangeException(newState.ToString(), newState, null);
        }
    }
Пример #6
0
    public static JsonItem GetTaskStateJsonItem(BPMConnection cn, TaskState state, int taskid)
    {
        JsonItem rv = new JsonItem();
        rv.Attributes.Add("State", state.ToString().ToLower());

        if (state == TaskState.Running)
        {
            JsonItemCollection children = new JsonItemCollection();
            rv.Attributes.Add("children", children);

            BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid);
            foreach (BPMProcStep step in steps)
            {
                JsonItem item = new JsonItem();
                item.Attributes.Add("StepName", step.StepDisplayName);
                item.Attributes.Add("Share", step.Share);
                item.Attributes.Add("RecipientAccount", step.RecipientAccount);
                item.Attributes.Add("RecipientDisplayName", step.RecipientFullName);
                children.Add(item);
            }
        }

        return rv;
    }
Пример #7
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                YZAuthHelper.OAuth();
                //YZAuthHelper.AshxAuthCheck();

                string loginUid = YZAuthHelper.LoginUserAccount;

                IDBProvider dbProvider = YZDBProviderManager.CurrentProvider;

                string   method = context.Request.Params["method"];
                JsonItem rv     = new JsonItem();

                // System.Threading.Thread.Sleep(2000);

                if (method == "Send")
                {
                    //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&restype=1&message=添加一条哦啊讨论啊&resId=216928&method=Send

                    YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true);
                    string         resId   = context.Request.Params["resId"];
                    string         msg     = context.Request.Params["message"];

                    if (!string.IsNullOrEmpty(msg.Trim()))
                    {
                        using (IDbConnection cn = dbProvider.OpenConnection())
                        {
                            YZMessage message = new YZMessage(loginUid, DateTime.Now, resType, resId, msg);
                            message.Insert(cn);

                            YZCommunicationManager.UpdateReaded(cn, loginUid, resType, resId, message.id);

                            JsonItem result = new JsonItem();
                            rv.Attributes.Add("message", result);
                            message.Serialize(result);
                        }
                    }
                }
                else if (method == "GetTaskCommunicationList")
                {
                    GridPageInfo gridPageInfo = new GridPageInfo(context);

                    SecurityToken token = null;
                    using (BPMConnection bpmcn = new BPMConnection())
                    {
                        bpmcn.WebOpen();
                        token = bpmcn.Token;
                    }

                    using (IDbConnection cn = dbProvider.OpenConnection())
                    {
                        //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&method=GetTaskCommunicationList&SearchType=QuickSearch&Keyword=216928
                        //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&method=GetTaskCommunicationList&SearchType=QuickSearch&Keyword=REQ2014090001

                        using (BPMConnection bpmcn = new BPMConnection())
                        {
                            bpmcn.WebOpen();

                            IDbCommand cmd = dbProvider.GetTaskCommunicationListCommand(cn, loginUid, token.SIDs, dbProvider.FilterStringCommunicationListTaskTableFilter, dbProvider.FilterStringCommunicationMessageTableFilter, gridPageInfo.Start, gridPageInfo.Limit);
                            cmd.Connection = cn;

                            JsonItemCollection children = new JsonItemCollection();
                            rv.Attributes.Add("children", children);

                            using (YZReader reader = new YZReader(cmd.ExecuteReader()))
                            {
                                while (reader.Read())
                                {
                                    JsonItem item = new JsonItem();
                                    children.Add(item);

                                    string ownerAccount     = reader.ReadString("OwnerAccount");
                                    User   owner            = User.TryGetUser(bpmcn, ownerAccount);
                                    string ownerDisplayName = owner != null ? owner.DisplayName : ownerAccount;

                                    string lastMsgUid  = reader.ReadString("uid");
                                    User   lastMsgUser = User.TryGetUser(bpmcn, lastMsgUid);
                                    string lastMessageUserShortName = lastMsgUser != null ? lastMsgUser.ShortName : lastMsgUid;

                                    TaskState state  = (TaskState)reader.ReadEnum("State", typeof(TaskState), TaskState.Unknow);
                                    int       taskid = reader.ReadInt32("TaskID");

                                    item.Attributes["tid"]       = taskid;
                                    item.Attributes["sn"]        = reader.ReadString("SerialNum");
                                    item.Attributes["pn"]        = reader.ReadString("ProcessName");
                                    item.Attributes["user"]      = YZStringHelper.GetUserShortName(ownerAccount, ownerDisplayName);
                                    item.Attributes["state"]     = state.ToString();
                                    item.Attributes["stateText"] = YZStringHelper.GetTaskStateDisplayString(bpmcn, state, taskid);
                                    item.Attributes["date"]      = YZStringHelper.DateToStringL(reader.ReadDateTime("CreateAt"));

                                    string desc = Convert.ToString(reader.ReadString("Description"));



                                    item.Attributes["desc"] = String.IsNullOrEmpty(desc) ? "无内容摘要" : desc.CutStrHTML(isHTML: true);

                                    item.Attributes["count"]                    = reader.ReadInt32("count");
                                    item.Attributes["total"]                    = reader.ReadInt32("total");
                                    item.Attributes["Id"]                       = reader.ReadInt32("Id");
                                    item.Attributes["lastMessageId"]            = reader.ReadInt32("lastMsgId");
                                    item.Attributes["lastMessageUid"]           = lastMsgUid;
                                    item.Attributes["lastMessageUserShortName"] = lastMessageUserShortName;
                                    item.Attributes["lastMessageDate"]          = YZStringHelper.DateToStringL(reader.ReadDateTime("date"));
                                    item.Attributes["lastMessage"]              = reader.ReadString("message");
                                }
                            }
                        }

                        rv.Attributes["newMessageCount"] = dbProvider.GetTaskCommunicationNewMessageCount(cn, loginUid, token.SIDs);
                    }
                }
                else if (method == "GetBadge")
                {
                    YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true);
                    string         resId   = context.Request.Params["resId"];

                    using (IDbConnection cn = dbProvider.OpenConnection())
                    {
                        rv.Attributes["total"]           = YZCommunicationManager.GetMessageCount(cn, resType, resId);
                        rv.Attributes["newMessageCount"] = YZCommunicationManager.GetNewMessageCount(cn, loginUid, resType, resId);
                    }
                }
                else if (method == "UpdateReaded")
                {
                    YZResourceType resType   = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true);
                    string         resId     = context.Request.Params["resId"];
                    string         strLastId = context.Request.Params["lastid"];
                    if (String.IsNullOrEmpty(strLastId))
                    {
                        strLastId = "-1";
                    }
                    int lastId = Convert.ToInt32(strLastId);

                    using (IDbConnection cn = dbProvider.OpenConnection())
                    {
                        YZCommunicationManager.UpdateReaded(cn, loginUid, resType, resId, lastId);
                    }
                }
                else
                {
                    //http://bpm.sdt.com/YZSoft/Forms/XForm/%E5%B7%A5%E4%BD%9C%E6%8A%A5%E5%91%8A/%E5%B7%A5%E4%BD%9C%E6%8A%A5%E5%91%8A.aspx?tid=216928
                    //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&restype=1&lastid=306&resId=216928

                    YZResourceType resType   = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true);
                    string         resId     = context.Request.Params["resId"];
                    string         strLastId = context.Request.Params["lastid"];
                    if (String.IsNullOrEmpty(strLastId))
                    {
                        strLastId = "-1";
                    }
                    int lastId = Convert.ToInt32(strLastId);

                    //获得数据
                    JsonItemCollection children = new JsonItemCollection();
                    rv.Attributes.Add("children", children);

                    using (BPMConnection bpmcn = new BPMConnection())
                    {
                        bpmcn.WebOpen();

                        using (IDbConnection cn = dbProvider.OpenConnection())
                        {
                            YZMessageCollection messages = YZCommunicationManager.GetNewMessages(cn, resType, resId, lastId);
                            messages.Serialize(bpmcn, children);
                        }
                    }
                }


                //输出数据
                context.Response.AppendHeader("Access-Control-Allow-Origin", "*");      // 响应类型
                context.Response.AppendHeader("Access-Control-Allow-Methods", "POST");  // 响应头设置
                context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");

                context.Response.Charset         = "gb2312"; //设置字符集类型
                context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                context.Response.ContentType     = "application/json;charset=gb2312";

                //输出数据
                rv.Attributes.Add("success", true);
                context.Response.Write(rv.ToString());
            }
            catch (Exception e)
            {
                JsonItem rv = new JsonItem();

                context.Response.AppendHeader("Access-Control-Allow-Origin", "*");      // 响应类型
                context.Response.AppendHeader("Access-Control-Allow-Methods", "POST");  // 响应头设置
                context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");

                context.Response.Charset         = "gb2312"; //设置字符集类型
                context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                context.Response.ContentType     = "application/json;charset=gb2312";

                rv.Attributes.Add("success", false);
                rv.Attributes.Add("errorMessage", e.Message);
                context.Response.Write(rv.ToString());
            }
        }
Пример #8
0
        private void AddToResultList(string content, TaskState state)
        {
            var stateString = state.ToString();

            events.Add(string.Format("{0}: {1}", stateString, content));
        }
Пример #9
0
 public static TaskStateExt ConvertIntToExt(this TaskState taskState)
 {
     _ = Enum.TryParse(taskState.ToString(), out TaskStateExt convert);
     return(convert);
 }
Пример #10
0
        public static void UpdateTaskState(int taskId, TaskState newState)
        {
            var cmd = Conn.CreateCommand();

            cmd.CommandText = $"UPDATE KTasks SET TaskState = '{newState.ToString()}' WHERE Id = '{taskId}'";
        }
Пример #11
0
 private void AddToResultList(string content, TaskState state)
 {
     var stateString = state.ToString();
     events.Add(string.Format("{0}: {1}", stateString, content));
 }
Пример #12
0
 /*
  * TaskState
  */
 public static MRProtos.TaskStateProto ConvertToProtoFormat(TaskState e)
 {
     return(MRProtos.TaskStateProto.ValueOf(TaskStatePrefix + e.ToString()));
 }
Пример #13
0
 private void AgentTasksChanged(Agent agent, TaskState state, IEnumerable <TaskItem> tasks, dynamic caller)
 {
     caller.updateTask(agent.Identifier, state.ToString().ToLower(), tasks);
 }
Пример #14
0
 string GetStateAsString(TaskState state)
 {
     string str;
     switch (state)
     {
         case TaskState.Pending:
            str = "Send";
         break;
         default:
            str = state.ToString();
         break;
     }
     return str;
 }
Пример #15
0
        public void DisplayTaskList()
        {
            IEnumerable <SimpleTask> tasks;

            if (ViewContext == TaskState.Open)
            {
                tasks = TaskList.GetTasks(TaskState.Open);
            }
            else
            {
                tasks = TaskList.GetTasks(TaskState.Closed);
            }

            tasks = tasks.OrderByDescending(x => x.Status);
            Console.Clear();
            Session.LineBreak();

            Session.ApplyMutedForeground();
            Console.WriteLine(string.Format("     ┌  {0} ┬  {1} ┐", ViewContext + " Tasks".PadRight(39 - ViewContext.ToString().Length), "Age".PadRight(7)));
            Console.WriteLine(string.Format("┌────┼{0}┼{1}┼──┐", "".PadRight(42, '─'), "".PadRight(10, '─')));

            foreach (var task in tasks)
            {
                Session.ApplyMutedForeground();
                Console.Write("│" + TaskList.GetTaskIndex(task).ToString().PadLeft(3, ' ').PadRight(4));

                Session.ApplyDefaultForeground();
                Console.Write(string.Format("├ {1} ┼ {2} ┤",
                                            TaskList.GetTaskIndex(task).ToString().PadLeft(3, ' ').PadRight(4),
                                            task.Name.Length > 40 ? string.Concat(task.Name.Substring(0, 37), "...") : task.Name.PadRight(40),
                                            GetTaskAge(task.CreatedDate).PadRight(8).PadLeft(8)
                                            ));

                Session.ApplyStatusForeground(task.Status);
                Console.Write("██");
                Session.ApplyMutedForeground();
                Console.WriteLine("│");
                Session.ApplyDefaultForeground();
            }
            Console.WriteLine(string.Format("└────┴{0}┴{1}┴──┘", "".PadRight(42, '─'), "".PadRight(10, '─')));

            Session.LineBreak();
            Session.DisplayOptions(new[] { "New Task", ViewContext == TaskState.Open ? "View Closed" : "View Opened", "Stats", "Exit" });
            Session.LineBreak();
        }