private void detach_ActivityQueues(ActivityQueue entity) { this.SendPropertyChanging(); entity.Trigger = null; }
partial void DeleteActivityQueue(ActivityQueue instance);
partial void UpdateActivityQueue(ActivityQueue instance);
partial void InsertActivityQueue(ActivityQueue instance);
private void attach_ActivityQueues(ActivityQueue entity) { this.SendPropertyChanging(); entity.Activity = this; }
private static void Triggered(Utilities.Trigger trigger, object state) { Log.Info(string.Format("Triggered by: {0}", trigger.Entity.Type)); // queue the trigger for processing var activityTriggers = trigger.Entity.ActivityTriggers .Select(x => Activities .FirstOrDefault(y => y.Entity.Id == x.ActivityId)) .Where(x => x != null && x.Enabled) .ToList(); if (!activityTriggers.Any()) { Log.Info("No enabled activites, exiting."); return; } // try to serialize state information try { using (var mem = new MemoryStream()) { var serlializer = new SoapFormatter { AssemblyFormat = FormatterAssemblyStyle.Full }; // store in an object so we know what to expect if (state as Expression != null) { state = new StoredQuery((Expression)state); } serlializer.Serialize(mem, state); state = Encoding.Default.GetString(mem.ToArray()); var insertQueue = activityTriggers.Select(activity => { Log.Info(string.Format("Queuing activity [{0}] due to trigger [{1}].", activity.Entity.Type, trigger.Entity.Type)); var queue = new ActivityQueue { TriggerId = trigger.Entity.Id, ActivityId = activity.Entity.Id, State = state.ToString(), TimeAdded = DateTime.UtcNow }; if (queue.TriggerId == 7 && queue.ActivityId == 8) { } return(queue); }); lock (QueueLock) { QueuingContext.ActivityQueues.InsertAllOnSubmit(insertQueue); QueuingContext.SubmitChanges(); } } } catch (Exception ex) { Log.Error("Error queuing triggered activities.", ex); } ThreadPool.QueueUserWorkItem(ProcessQueue); }