protected override void Execute(CodeActivityContext context) { // Get the connection string DBConnection ext = context.GetExtension <DBConnection>(); if (ext == null) { throw new InvalidProgramException("No connection string available"); } RequestDataContext dc = new RequestDataContext(ext.ConnectionString); // Create and initialize a Request object Request r = new Request(); r.UserName = UserName.Get(context); r.UserEmail = UserEmail.Get(context); r.RequestType = RequestType.Get(context); r.Comment = Comment.Get(context); r.CreateDate = DateTime.UtcNow; r.RequestKey = RequestKey.Get(context); r.QueueInstanceKey = QueueInstanceKey.Get(context); // Insert the Request record PersistRequest persist = context.GetExtension <PersistRequest>(); persist.AddRequest(r); }
protected override void Execute(CodeActivityContext context) { // Get the connection string DBConnection ext = context.GetExtension <DBConnection>(); if (ext == null) { throw new InvalidProgramException("No connection string available"); } UserTasksDataContext dc = new UserTasksDataContext(ext.ConnectionString); // Lookup the QueueInstance dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dc.QueueInstances); QueueInstance qi = dc.QueueInstances.SingleOrDefault(x => x.QueueInstanceKey == QueueInstanceKey.Get(context)); if (qi == null) { throw new InvalidProgramException("The specified request (" + QueueInstanceKey.Get(context) + ") was not found"); } qi.QC = true; qi.Priority = Priority.Get(context); qi.AssignedOperatorID = null; qi.AssignedDate = null; // Update the QueueInstance record PersistQueueInstance persist = context.GetExtension <PersistQueueInstance>(); persist.AddQueueInstance(qi); // Add a custom track record CustomTrackingRecord userRecord = new CustomTrackingRecord("QC") { Data = { { "QueueInstanceKey", qi.QueueInstanceKey }, { "SubQueueID", qi.CurrentSubQueueID } } }; // Emit the custom tracking record context.Track(userRecord); }
protected override void Execute(CodeActivityContext context) { // Get the connection string DBConnection ext = context.GetExtension <DBConnection>(); if (ext == null) { throw new InvalidProgramException("No connection string available"); } UserTasksDataContext dc = new UserTasksDataContext(ext.ConnectionString); // Lookup the QueueInstance dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dc.QueueInstances); QueueInstance qi = dc.QueueInstances.SingleOrDefault(x => x.QueueInstanceKey == QueueInstanceKey.Get(context)); if (qi == null) { throw new InvalidProgramException("The specified request (" + QueueInstanceKey.Get(context) + ") was not found"); } QueueInstance.Set(context, qi); ConnectionString.Set(context, ext.ConnectionString); }
protected override void Execute(CodeActivityContext context) { // Get the connection string DBConnection ext = context.GetExtension <DBConnection>(); if (ext == null) { throw new InvalidProgramException("No connection string available"); } // Lookup the operator UserTasksDataContext dc = new UserTasksDataContext(ext.ConnectionString); OperatorConfig oc = dc.OperatorConfigs.SingleOrDefault(x => x.OperatorKey == OperatorKey.Get(context)); if (oc == null) { throw new InvalidProgramException("The specified operator (" + OperatorKey.Get(context).ToString() + ") was not found"); } // Lookup the QueueInstance dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dc.QueueInstances); QueueInstance qi = dc.QueueInstances.SingleOrDefault(x => x.QueueInstanceKey == QueueInstanceKey.Get(context)); if (qi == null) { throw new InvalidProgramException("The specified request (" + QueueInstanceKey.Get(context) + ") was not found"); } if (qi.AssignedOperatorID != null) { if (qi.AssignedOperatorID != oc.OperatorConfigID) { Result.Set(context, -1); return; } } qi.AssignedOperatorID = oc.OperatorConfigID; qi.AssignedDate = DateTime.UtcNow; // Update the QueueInstance record PersistQueueInstance persist = context.GetExtension <PersistQueueInstance>(); persist.AddQueueInstance(qi); Result.Set(context, 0); // Add a custom track record CustomTrackingRecord userRecord = new CustomTrackingRecord("Assign") { Data = { { "QueueInstanceKey", qi.QueueInstanceKey }, { "OperatorKey", OperatorKey.Get(context) }, { "SubQueueID", qi.CurrentSubQueueID }, { "QC", qi.QC } } }; // Emit the custom tracking record context.Track(userRecord); }
protected override void Execute(CodeActivityContext context) { // Get the connection string DBConnection ext = context.GetExtension <DBConnection>(); if (ext == null) { throw new InvalidProgramException("No connection string available"); } UserTasksDataContext dc = new UserTasksDataContext(ext.ConnectionString); Queue q = null; SubQueue sq = null; int queueID = 0; int subQueueID = 0; if (QueueName.Get(context) != "" && SubQueueName.Get(context) != "None") { // Lookup the queue and subqueue q = dc.Queues.SingleOrDefault(x => x.QueueName == QueueName.Get(context)); if (q == null) { throw new InvalidProgramException("The specified queue (" + QueueName.Get(context) + ") was not found"); } sq = dc.SubQueues.SingleOrDefault(x => x.QueueID == q.QueueID && x.SubQueueName == SubQueueName.Get(context)); if (sq == null) { throw new InvalidProgramException("The specified subqueue (" + QueueName.Get(context) + " - " + SubQueueName.Get(context) + ") was not found"); } queueID = q.QueueID; subQueueID = sq.SubQueueID; } // Lookup the QueueInstance dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dc.QueueInstances); QueueInstance qi = dc.QueueInstances.SingleOrDefault(x => x.QueueInstanceKey == QueueInstanceKey.Get(context)); if (qi == null) { throw new InvalidProgramException("The specified request (" + QueueInstanceKey.Get(context) + ") was not found"); } // Assign the QueueInstance to this subqueue if (sq != null) { qi.CurrentSubQueueID = sq.SubQueueID; } else { qi.CurrentSubQueueID = null; } qi.AssignedDate = null; qi.AssignedOperatorID = null; qi.QC = false; qi.Priority = null; // Update the QueueInstance record PersistQueueInstance persist = context.GetExtension <PersistQueueInstance>(); persist.AddQueueInstance(qi); // Add a custom track record CustomTrackingRecord userRecord = new CustomTrackingRecord("Route") { Data = { { "QueueInstanceKey", qi.QueueInstanceKey }, { "SubQueueID", qi.CurrentSubQueueID } } }; // Emit the custom tracking record context.Track(userRecord); }