public void result(string taskid, string pipelineid, int state)
        {
            using (MDB db = new MDB())
            {
                MaratonAPI api  = new MaratonAPI();
                DbTask     task = db.Find <DbTask>(x => x.Id == taskid).FirstOrDefault();
                task.State = state;

                if (task == null)
                {
                    return;
                }

                for (int i = 0; i < task.Pipelines.Count; i++)
                {
                    if (task.Pipelines[i] != pipelineid)
                    {
                        continue;
                    }

                    if (task.Pipelines[i] == pipelineid &&
                        i < (task.Pipelines.Count - 1))
                    {
                        api.TaskDeliver(task, db.FindOne <DbPipeline>(x => x.Id == task.Pipelines[i + 1]));
                    }
                }

                db.UpdateOne <DbTask>(x => x.Id == taskid, task);
            }
        }
Exemplo n.º 2
0
        public void result(MaratonResult json)
        {
            if (json == null)
            {
                return;
            }

            MaratonAPI api      = new MaratonAPI();
            DbTask     task     = null;
            DbPipeline pipeline = null;

            using (MDB mdb = new MDB())
            {
                task     = mdb.Find <DbTask>(x => x.Id == json.taskid).FirstOrDefault();
                pipeline = mdb.Find <DbPipeline>(x => x.Id == json.pipelineid).FirstOrDefault();

                if (task == null ||
                    pipeline == null)
                {
                    return;
                }

                if (json.status == 303)
                {
                    for (int i = 0; i < task.Pipelines.Count; i++)
                    {
                        if (task.Pipelines[i] != pipeline.Id)
                        {
                            continue;
                        }

                        if (i < (task.Pipelines.Count - 1))
                        {
                            var p = mdb.FindOne <DbPipeline>(x => x.Id == task.Pipelines[i + 1]);
                            task.Inputs = json.data;
                            api.TaskDeliver(task, p);
                            return;
                        }
                        else if (i == (task.Pipelines.Count - 1))
                        {
                            task.State      = json.status;
                            task.Result     = json.data;
                            task.FinishTime = DateTime.Now;
                            task.Duratation = (int)((task.FinishTime - task.ExecuteTime).TotalSeconds);
                            mdb.UpdateOne <DbTask>(x => x.Id == json.taskid, task);
                        }
                    }
                }
                else
                {
                    task.State = json.status;
                    mdb.UpdateOne <DbTask>(x => x.Id == json.taskid, task);
                }
            }
        }
Exemplo n.º 3
0
        public ActionResult result(string id)
        {
            using (MDB db = new MDB())
            {
                var task = db.FindOne <DbTask>(x => x.Id == id);
                if (task == null)
                {
                    return(View(new DbTask()));
                }

                return(View(task));
            }
        }
Exemplo n.º 4
0
        bool TryFinishTask(MaratonResult json, DbTask task, DbPipeline pipeline)
        {
            MaratonAPI api = new MaratonAPI();

            using (MDB mdb = new MDB())
            {
                if (json.status == 303)
                {
                    for (int i = 0; i < task.Pipelines.Count; i++)
                    {
                        if (task.Pipelines[i] != pipeline.Id)
                        {
                            continue;
                        }

                        if (i < (task.Pipelines.Count - 1))
                        {
                            var p = mdb.FindOne <DbPipeline>(x => x.Id == task.Pipelines[i + 1]);
                            task.Inputs = json.data;
                            api.TaskDeliver(task, p);
                            return(true);
                        }
                        else if (i == (task.Pipelines.Count - 1))
                        {
                            task.State      = json.status;
                            task.Result     = json.data;
                            task.FinishTime = DateTime.Now;
                            task.Duratation = (int)((task.FinishTime - task.ExecuteTime).TotalSeconds);
                            mdb.UpdateOne <DbTask>(x => x.Id == json.taskid, task);
                            return(true);
                        }
                    }
                    return(true);
                }
                else
                {
                    task.State = json.status;
                    mdb.UpdateOne <DbTask>(x => x.Id == json.taskid, task);
                    return(true);
                }
            }
        }