Example #1
0
        /// <summary> Not sure yet if we should delete it </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <dynamic> Delete([FromUri] long id)
        {
            long UserId = long.Parse(User.Identity.GetUserId());

            var oldTask = await db.Tasks.Where(f => f.Id == id).Include(f => f.ForField)
                          .Include(f => f.ForField.OnOrganisation).Include(f => f.ForField.OnOrganisation.Bonds).FirstOrDefaultAsync();

            if (oldTask == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ErrorResponse.DoesntExist));
            }

            //Setup variables
            string role = OrganisationsController.FindAndGetRole(oldTask.ForField.OnOrganisation, UserId);

            TaskManagementRole = BondDb.CanAssignJobsToOthers.Contains(role);

            if (!CheckPermission(TaskManagementRole, UserId, oldTask))
            {
                oldTask.MarkedDeleted = true;
                eventLog = JsonConvert.DeserializeObject <List <TaskEvent> >(oldTask.EventLog);
                var it = new TaskEvent((DTO.TaskDTO)oldTask, UserId, "Task was deleted");
                eventLog.Add(it);
                oldTask.EventLog = JsonConvert.SerializeObject(eventLog);
                await db.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ErrorResponse.PermissionsTooLow));
            };
        }
Example #2
0
    static void WorkThread(TaskGraph taskGraph)
    {
        while (true)
        {
            taskGraph.mEventDispatch.Wait();
            {
                if (taskGraph.mEventExit.Wait(0))
                {
                    break;
                }

                taskGraph.mEventReady.Signal();
                taskGraph.mEventReady.Wait();

                if (taskGraph.mTaskListHeads.Count > 0 && taskGraph.mTaskListDependence.Count > 0)
                {
                    TaskEvent taskEvent = taskGraph.mEventRun;
                    do
                    {
                        taskEvent.Wait();

                        while (true)
                        {
                            bool     bFinish = false;
                            TaskBase task    = null;

                            taskGraph.mMutex.WaitOne();
                            {
                                if (taskGraph.mTaskListHeads.ContainsKey(taskEvent) && taskGraph.mTaskListHeads[taskEvent] != null)
                                {
                                    task = taskGraph.mTaskListHeads[taskEvent];
                                    taskGraph.mTaskListHeads[taskEvent] = taskGraph.mTaskListHeads[taskEvent].Next;
                                }
                                else
                                {
                                    bFinish = true;
                                }
                            }
                            taskGraph.mMutex.ReleaseMutex();

                            if (task != null)
                            {
                                task.TaskFunc();
                                task.SetEventSignal();
                            }

                            if (bFinish)
                            {
                                break;
                            }
                        }

                        taskEvent = taskGraph.mTaskListDependence.Count > 0 ? taskGraph.mTaskListDependence[taskEvent] : null;
                    } while (taskEvent != null);
                }
            }
            taskGraph.mEventDispatch.Reset();
            taskGraph.mEventFinish.Signal();
        }
    }
        /// <summary>
        /// Send web socket message to target clients.
        /// </summary>
        /// <param name="taskEvent">
        /// Task event.
        /// </param>
        /// <param name="task">
        /// Task itself.
        /// </param>
        public void Send(TaskEvent taskEvent, TaskData task)
        {
            IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <TasksManagerHub>();

            lock (task)
            {
                var result = new
                {
                    task.Id,
                    TaskType      = task.TaskType.GetName(),
                    DisplayName   = task.TaskType.GetDisplayValue(),
                    Created       = task.Created.ToString(OutputFormats.DateTimeFormat),
                    Started       = task.Started?.ToString(OutputFormats.DateTimeFormat),
                    Completed     = task.Completed?.ToString(OutputFormats.DateTimeFormat),
                    ExecutionTime = task.ExecutionTime?.ToString(OutputFormats.TimeFormat),
                    TaskState     = task.TaskState.ToString(),
                    TaskStateName = task.TaskState.GetDisplayValue(),
                    task.UserId,
                    task.UserName
                };

                hubContext.Clients.Group("admins").TaskEvent(taskEvent.ToString(), result);
                if (!AccountHelper.IsAdmin())
                {
                    hubContext.Clients.Group(task.UserId.ToString()).TaskEvent(taskEvent.ToString(), result);
                }
            }
        }
Example #4
0
 protected override void Dispatch(Org.Apache.Hadoop.Yarn.Event.Event @event)
 {
     if (@event is TaskAttemptEvent)
     {
         TaskAttemptEvent killEvent = (TaskAttemptEvent)@event;
         if (killEvent.GetType() == TaskAttemptEventType.TaKill)
         {
             TaskAttemptId taID = killEvent.GetTaskAttemptID();
             if (taID.GetTaskId().GetTaskType() == TaskType.Reduce && taID.GetTaskId().GetId()
                 == 0 && taID.GetId() == 0)
             {
                 base.Dispatch(new TaskAttemptEvent(taID, TaskAttemptEventType.TaDone));
                 base.Dispatch(new TaskAttemptEvent(taID, TaskAttemptEventType.TaContainerCleaned)
                               );
                 base.Dispatch(new TaskTAttemptEvent(taID, TaskEventType.TAttemptSucceeded));
                 this.cachedKillEvent = killEvent;
                 return;
             }
         }
     }
     else
     {
         if (@event is TaskEvent)
         {
             TaskEvent taskEvent = (TaskEvent)@event;
             if (taskEvent.GetType() == TaskEventType.TAttemptSucceeded && this.cachedKillEvent
                 != null)
             {
                 base.Dispatch(this.cachedKillEvent);
                 return;
             }
         }
     }
     base.Dispatch(@event);
 }
 public MessageHandler(SynchronizationContext windowsFormsContext, ReplicationTaskInfo source, TaskEvent onStatusUI, TaskEvent onErrorUI)
 {
     this.OnStatusUI          = onStatusUI;
     this.OnErrorUI           = onErrorUI;
     this.windowsFormsContext = windowsFormsContext;
     this.source = source;
 }
Example #6
0
        public static TaskEventCollection?Collect(BrainVisionPackage filesContent)
        {
            IHeaderFileContentVer1 headerContent = filesContent.HeaderFileContent;
            IMarkerFileContentVer1?markerContent = filesContent.MarkerFileContent;

            List <MarkerInfo>?markers = markerContent?.GetMarkers();

            if (markers == null)
            {
                return(null);
            }

            double samplingFrequency = Common.GetSamplingFrequencyFromSamplingInterval(headerContent.SamplingInterval !.Value);

            TaskEventCollection taskEvents = new TaskEventCollection();

            foreach (MarkerInfo marker in markers)
            {
                TaskEvent taskEvent = new TaskEvent(
                    //REQUIRED
                    onset: marker.Position / samplingFrequency,
                    duration: marker.Length / samplingFrequency)
                {
                    //OPTIONAL
                    Sample    = marker.Position + 1, // I suppose bids uses 1-based sample position. This info is not present in the official bids documentations
                    TrialType = marker.Type,
                    Value     = !string.IsNullOrEmpty(marker.Description) ? marker.Description : Defs.NotAvailable,
                };

                taskEvents.Add(taskEvent);
            }

            return(taskEvents);
        }
Example #7
0
        public void Equality_SettingValues()
        {
            var a = new TaskEvent
            {
                Version     = "1",
                TaskId      = "2",
                Action      = TaskAction.Activate,
                NewParentId = "x",
                Annoyance   = Likert5Point.Negative1,
                Importance  = Likert5Point.Neutral,
                Urgency     = Likert5Point.Positive1
            };
            var b = new TaskEvent
            {
                Version     = "1",
                TaskId      = "2",
                Action      = TaskAction.Activate,
                NewParentId = "x",
                Annoyance   = Likert5Point.Negative1,
                Importance  = Likert5Point.Neutral,
                Urgency     = Likert5Point.Positive1
            };

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #8
0
    public void FileAddWrite(string text, string url, TaskEvent finished = null, ErrorEvent error = null)
    {
        try
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(accessUrlBase + url));
            request.Method = WebRequestMethods.Ftp.AppendFile;

            byte[] fileContents = Encoding.UTF8.GetBytes(text);

            request.ContentLength = fileContents.Length;
            request.Credentials   = icr;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();
            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
            response.Close();
            requestStream.Dispose();
            response.Dispose();
            finished?.Invoke();
        }
        catch (WebException e)
        {
            error?.Invoke(((FtpWebResponse)e.Response).StatusDescription);
        }
    }
Example #9
0
 /// <summary>
 /// Publishes the task event to all subscribed event listeners.
 /// </summary>
 /// <param name="event">The event to publish.</param>
 public void Publish(TaskEvent @event)
 {
     foreach (var listener in _listeners[@event.GetType()])
     {
         listener.OnEvent(@event);
     }
 }
Example #10
0
    /// <summary>
    /// 添加计时器任务
    /// </summary>
    /// <param name="task"></param>
    /// <param name="time">于time毫秒后执行</param>
    /// <returns></returns>
    public int AddSchedule(TaskEvent task, long time)
    {
        Index++;
        TimeTaskModel m = new TimeTaskModel(Index, time * 10000 + DateTime.Now.Ticks, task);

        TaskDic.Add(Index, m);
        return(Index);
    }
Example #11
0
        public void Equality_Default()
        {
            var a = new TaskEvent();
            var b = new TaskEvent();

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #12
0
 public TaskEventArgs(IGisTask task, TaskEvent taskEvent)
 {
     if (task == null)
     {
         throw new ArgumentNullException("task");
     }
     Task  = task;
     Event = taskEvent;
 }
Example #13
0
        private void FireTaskChanged(IGisTask task, TaskEvent taskEvent)
        {
            var handler = TaskChanged;

            if (handler != null)
            {
                handler(this, new TaskEventArgs(task, taskEvent));
            }
        }
Example #14
0
    public void SetEvent(TaskEvent taskEvent)
    {
        mTaskEvent = taskEvent;

        if (mTaskEvent != null)
        {
            mTaskEvent.Unsignal();
        }
    }
Example #15
0
        /**
         * Just calls {@link #tick()} to make the ExecutionParallel task evolve
         * according to the status of its children.
         *
         * @see jbt.execution.core.ExecutionTask#statusChanged(jbt.execution.core.event.TaskEvent)
         */

        public override void StatusChanged(TaskEvent e)
        {
            /*
             * TODO: the TaskEvent could be used to improve the efficiency of this
             * method, since we only have to analyse the status of the task that
             * fired the event, not the status of all the tasks (which is what
             * tick() does).
             */
            Tick();
        }
Example #16
0
        public void Equality_DifferentParent()
        {
            var a = new TaskEvent
            {
                NewParentId = "x"
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #17
0
        public void Equality_DifferentImportance()
        {
            var a = new TaskEvent
            {
                Importance = Likert5Point.Neutral
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #18
0
        public void Equality_DifferentTask()
        {
            var a = new TaskEvent
            {
                TaskId = "2"
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #19
0
        public void Equality_DifferentVersion()
        {
            var a = new TaskEvent
            {
                Version = "1"
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #20
0
        public void Equality_DifferentUrgency()
        {
            var a = new TaskEvent
            {
                Urgency = Likert5Point.Positive1
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #21
0
        // Starts a new background task and returns its task ID
        public static int StartTask(int delay, TaskEvent onInvoke, TaskEvent onExpire = null)
        {
            if (taskInvokerPlugin == null)
            {
                createTaskInvoker();
            }
            int id = taskInvokerPlugin.StartTask(delay);

            runningTasks.Add(new Task(id, onInvoke, onExpire));
            return(id);
        }
Example #22
0
        public void Equality_DifferentDifferentAnnoyance()
        {
            var a = new TaskEvent
            {
                Annoyance = Likert5Point.Negative1
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #23
0
        public void Equality_DifferentAction()
        {
            var a = new TaskEvent
            {
                Action = TaskAction.Activate
            };
            var b = new TaskEvent();

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Example #24
0
        public void DefaultValues()
        {
            var sut = new TaskEvent();

            Assert.AreEqual("", sut.Version);
            Assert.AreEqual("", sut.TaskId);
            Assert.AreEqual(TaskAction.Create, sut.Action);
            Assert.Null(sut.NewParentId);
            Assert.Null(sut.Annoyance);
            Assert.Null(sut.Importance);
            Assert.Null(sut.Urgency);
        }
 public TaskEventViewModel(TaskEvent taskEvent)
 {
     Id                  = taskEvent.Id;
     Title               = taskEvent.Title;
     Start               = DateTime.SpecifyKind(taskEvent.Start, DateTimeKind.Utc);
     End                 = DateTime.SpecifyKind(taskEvent.End, DateTimeKind.Utc);
     StartTimezone       = taskEvent.StartTimeZone;
     EndTimezone         = taskEvent.EndTimeZone;
     Description         = taskEvent.Description;
     IsAllDay            = taskEvent.IsAllDay;
     RecurrenceRule      = taskEvent.RecurrenceRule;
     RecurrenceException = taskEvent.RecurrenceException;
     RecurrenceID        = taskEvent.RecurrenceId;
     OwnerID             = taskEvent.OwnerId ?? 0;
 }
Example #26
0
    private async Async.Task <Error?> OnWorkerEventRunning(Guid machineId, WorkerRunningEvent running)
    {
        var(task, node) = await(
            _context.TaskOperations.GetByTaskId(running.TaskId),
            _context.NodeOperations.GetByMachineId(machineId));

        if (task is null)
        {
            return(new Error(
                       Code: ErrorCode.INVALID_REQUEST,
                       Errors: new string[] { $"unable to find task: {running.TaskId}" }));
        }

        if (node is null)
        {
            return(new Error(
                       Code: ErrorCode.INVALID_REQUEST,
                       Errors: new string[] { $"unable to find node: {machineId}" }));
        }

        if (!node.State.ReadyForReset())
        {
            await _context.NodeOperations.SetState(node, NodeState.Busy);
        }

        var nodeTask = new NodeTasks(
            MachineId: machineId,
            TaskId: running.TaskId,
            State: NodeTaskState.Running);
        await _context.NodeTasksOperations.Replace(nodeTask);

        if (task.State.ShuttingDown())
        {
            _log.Info($"ignoring task start from node. machine_id:{machineId} job_id:{task.JobId} task_id:{task.TaskId} (state: {task.State})");
            return(null);
        }

        _log.Info($"task started on node. machine_id:{machineId} job_id:{task.JobId} task_id:{task.TaskId}");
        await _context.TaskOperations.SetState(task, TaskState.Running);

        var taskEvent = new TaskEvent(
            TaskId: task.TaskId,
            MachineId: machineId,
            EventData: new WorkerEvent(Running: running));
        await _context.TaskEventOperations.Replace(taskEvent);

        return(null);
    }
		/// <summary>
		/// Initializes the dialog with the specified task event.
		/// </summary>
		/// <param name="taskEvent">The <see cref="TaskEvent"/> to show initially.</param>
		/// <param name="log">The <see cref="TaskEventLog"/> for the task.</param>
		public void Initialize(TaskEvent taskEvent, TaskEventLog log = null)
		{
			if (taskEvent == null)
				throw new ArgumentNullException("taskEvent");

			if (log != null)
			{
				eventEnum = log.GetEnumerator() as TaskEventEnumerator;
				eventEnum.Seek(CurrentEvent.EventRecord.Bookmark);
			}
			else
			{
				eventEnum = null;
			}
			CurrentEvent = taskEvent;
		}
Example #28
0
    public void Create(int numThreads)
    {
        mThreads = new Thread[numThreads];

        mEventRun      = new TaskEvent(true);
        mEventReady    = new TaskEvent(true);
        mEventFinish   = new TaskEvent(true);
        mEventExit     = new TaskEvent(false);
        mEventDispatch = new TaskEvent(false);

        for (int index = 0; index < numThreads; index++)
        {
            mThreads[index] = new Thread(() => WorkThread(this));
            mThreads[index].Start();
        }
    }
    static void Main(string[] args)
    {
        int  count = 10;
        Data data  = new Data();

        TaskStep0[] step0 = new TaskStep0[count];
        TaskStep1[] step1 = new TaskStep1[count];
        TaskStep2[] step2 = new TaskStep2[count];

        for (int index = 0; index < count; index++)
        {
            step0[index] = new TaskStep0(data, index, count);
            step1[index] = new TaskStep1(data, index, count);
            step2[index] = new TaskStep2(data, index, count);
        }

        TaskEvent event1 = new TaskEvent();
        TaskEvent event2 = new TaskEvent();

        TaskGraph taskGraph = new TaskGraph();

        taskGraph.Create(8);

        while (true)
        {
            ConsoleKeyInfo key = Console.ReadKey();
            if (key.Key != ConsoleKey.Escape)
            {
                Console.WriteLine("");

                for (int index = 0; index < count; index++)
                {
                    taskGraph.Task(step0[index], event1, null);
                    taskGraph.Task(step1[index], event2, event1);
                    taskGraph.Task(step2[index], null, event2);
                }

                taskGraph.Dispatch();
                taskGraph.Wait();

                continue;
            }

            break;
        }
        taskGraph.Destroy();
    }
Example #30
0
 public void FileUpload(string local, string url, TaskEvent finished = null, ErrorEvent error = null)
 {
     try
     {
         ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
         webClient.UploadFile(accessUrlBase + url, local);
         finished?.Invoke();
     }
     catch (WebException e)
     {
         error?.Invoke(((FtpWebResponse)e.Response).StatusDescription);
     }
     catch (Exception e)
     {
         error?.Invoke(e.Message);
     }
 }
Example #31
0
 public void Delete(string url, TaskEvent finished = null, ErrorEvent error = null)
 {
     try
     {
         FtpWebRequest ftpReq = (FtpWebRequest)WebRequest.Create(accessUrlBase + url);
         ftpReq.Credentials = icr;
         ftpReq.Method      = WebRequestMethods.Ftp.DeleteFile;
         FtpWebResponse ftpRes = (FtpWebResponse)ftpReq.GetResponse();
         ftpRes.Close();
     }
     catch (WebException e)
     {
         error?.Invoke(((FtpWebResponse)e.Response).StatusDescription);
     }
     catch (Exception e)
     {
         error?.Invoke(e.Message);
     }
 }
        /// <summary>
        /// Send web socket message to all clients.
        /// </summary>
        /// <param name="taskEvent">
        /// Task event.
        /// </param>
        /// <param name="task">
        /// Task itself.
        /// </param>
        public static void Send(TaskEvent taskEvent, TaskData task)
        {
            var hubContext = GlobalHost.ConnectionManager.GetHubContext<TasksManagerHub>();

            lock (task)
            {
                var result = new
                {
                    task.Id,
                    task.DisplayName,
                    Created = task.Created.ToString(OutputFormats.DateTimeFormat),
                    Started = task.Started == null ? string.Empty : ((DateTimeOffset)task.Started).ToString(OutputFormats.DateTimeFormat),
                    Completed = task.Completed == null ? string.Empty : ((DateTimeOffset)task.Completed).ToString(OutputFormats.DateTimeFormat),
                    ExecutionTime = task.ExecutionTime == null ? string.Empty : ((TimeSpan)task.ExecutionTime).ToString(OutputFormats.TimeFormat),
                    TaskState = task.TaskState.ToString(),
                    TaskStateName = task.TaskState.GetDisplayValue(),
                    task.UserId,
                    task.UserName
                };

                hubContext.Clients.All.TaskEvent(taskEvent.ToString(), result);
            }
        }
Example #33
0
        /// <summary>
        /// Regenerates a task from an XElement node
        /// </summary>
        /// <param name="task">The XElement node to regenerate the task from.</param>
        /// <returns>The regenerated task.</returns>
        private Task GenerateTaskFromXElement(XElement task)
        {
            Task newTask = null;

            try
            {
                string type = task.Attribute("type").Value;
                int id = Int32.Parse(task.Attribute("id").Value);
                string taskName = task.Element("Name").Value;
                DateTime startTime, endTime;
                DateTimeSpecificity isSpecific = new DateTimeSpecificity();

                XElement DTSpecElement = task.Element("DateTimeSpecificity");
                if (DTSpecElement != null) isSpecific = DTSpecElement.FromXElement<DateTimeSpecificity>();
                bool state;

                if (task.Element("Done").Value == "True") state = true;
                else state = false;
                switch (type)
                {
                    case "Floating":
                        newTask = new TaskFloating(taskName, state, id);
                        break;
                    case "Deadline":
                        endTime = DateTime.Parse(task.Element("EndTime").Value);
                        newTask = new TaskDeadline(taskName, endTime, isSpecific, state, id);
                        break;
                    case "Event":
                        endTime = DateTime.Parse(task.Element("EndTime").Value);
                        startTime = DateTime.Parse(task.Element("StartTime").Value);
                        newTask = new TaskEvent(taskName, startTime, endTime, isSpecific, state, id);
                        break;
                }
            }
            catch (NullReferenceException)
            {
                throw new TaskFileCorruptedException();
            }
            return newTask;
        }
 public ITaskEvent CreateTaskEvent(TaskEvent currentEvent)
 {
     return new Dev2TaskEvent(currentEvent);
 }
 public Dev2TaskEvent(TaskEvent nativeObject)
 {
     _nativeObject = nativeObject;
 }
Example #36
0
        private static TaskEvent GetTaskEvent(dynamic dTaskEvent)
        {
            string content = dTaskEvent.Content;
            if (string.IsNullOrWhiteSpace(content)) return null;
            XDocument doc = null;
            try
            {
                doc = XDocument.Parse(content);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                Debug.WriteLine(content);
            }
            if (doc == null) return null; 

            if (doc.Root == null) return null;
            var result = new TaskEvent
            {
                ReportTimeDateTime = DateTime.Parse(dTaskEvent.ReportTimeDateTime.ToString(),
                    CultureInfo.InvariantCulture)
            };
            foreach (var el in doc.Root.Elements())
            {
                if (el.Name == "PlannedEndTime")
                {
                    var ticks = long.Parse(el.Value);
                    if (ticks > 0)
                    {
                        result.PlannedEndTime = new DateTime(ticks);
                    }
                }
                else if (el.Name == "Comment")
                {
                    result.Comment = el.Value;
                }
                else if (el.Name == "UserJobTitleName")
                {
                    result.UserJobTitleName = el.Value;
                }
            }
            return result;
        }
		/// <summary>
		/// Initializes a new instance of the <see cref="EventViewerDialog"/> class.
		/// </summary>
		/// <param name="taskEvent">The <see cref="TaskEvent"/> to show initially.</param>
		/// <param name="log">The <see cref="TaskEventLog"/> for the task.</param>
		public EventViewerDialog(TaskEvent taskEvent = null, TaskEventLog log = null)
		{
			InitializeComponent();
			if (taskEvent != null)
				Initialize(taskEvent, log);
		}