Пример #1
0
        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);
        }
Пример #2
0
        protected override void Execute(CodeActivityContext context)
        {
            // Open the config file and get the connection string
            Configuration            config = WebConfigurationManager.OpenWebConfiguration("/RequestWeb");
            ConnectionStringsSection css    =
                (ConnectionStringsSection)config.GetSection("connectionStrings");
            string connectionString = css.ConnectionStrings["Request"].ConnectionString;

            // Lookup the Request
            RequestDataContext dc = new RequestDataContext(connectionString);
            Request            r  = dc.Requests.SingleOrDefault(x => x.RequestKey == RequestKey.Get(context));

            if (r == null)
            {
                throw new InvalidProgramException("The specified request (" + RequestKey.Get(context) + ") was not found");
            }

            r.QC               = true;
            r.AssignedDate     = DateTime.UtcNow;
            r.AssignedOperator = null;

            // Update the Request record
            PersistRequest persist = context.GetExtension <PersistRequest>();

            persist.AddRequest(r);
        }
Пример #3
0
        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 Request
            RequestDataContext dc = new RequestDataContext(ext.ConnectionString);
            Request            r  = dc.Requests.SingleOrDefault(x => x.RequestKey == RequestKey.Get(context));

            if (r == null)
            {
                throw new InvalidProgramException("The specified request (" + RequestKey.Get(context) + ") was not found");
            }

            // Update the Request record
            r.ActionTaken = ActionTaken.Get(context);
            r.RouteNext   = RouteNext.Get(context);

            PersistRequest persist = context.GetExtension <PersistRequest>();

            persist.AddRequest(r);

            context.SetValue(Request, r);
        }
        public override async Task <PersistResponse> Persist(PersistRequest request, ServerCallContext context)
        {
            try
            {
                await _commandDispatcher.DispatchAsync(new PersistNavigationCommand
                {
                    Id         = request.Id,
                    Navigation = request.Navigation,
                });

                return(new PersistResponse
                {
                    StatusCode = PersistResponse.Types.StatusCode.Ok,
                });
            }
            catch (ArgumentException e)
            {
                _logger.LogError($"Failed persisting entity {request.Id}", e);
                return(new PersistResponse
                {
                    StatusCode = PersistResponse.Types.StatusCode.Invalid,
                    Errors = { e.Message },
                });
            }
            catch (Exception e)
            {
                _logger.LogError($"Failed persisting entity {request.Id}", e);
            }

            return(new PersistResponse
            {
                StatusCode = PersistResponse.Types.StatusCode.Unavailable,
            });
        }
Пример #5
0
        protected override void Execute(CodeActivityContext context)
        {
            // Open the config file and get the connection string
            Configuration            config = WebConfigurationManager.OpenWebConfiguration("/RequestWeb");
            ConnectionStringsSection css    =
                (ConnectionStringsSection)config.GetSection("connectionStrings");
            string connectionString = css.ConnectionStrings["Request"].ConnectionString;

            // Lookup the Queue
            RequestDataContext dc = new RequestDataContext(connectionString);
            Queue  q     = null;
            string queue = QueueName.Get(context);

            if (queue != null && queue.Length > 0 && queue != "None")
            {
                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");
                }
            }

            // Lookup the Request
            Request r = dc.Requests.SingleOrDefault(x => x.RequestKey == RequestKey.Get(context));

            if (r == null)
            {
                throw new InvalidProgramException("The specified request (" + RequestKey.Get(context) + ") was not found");
            }

            if (q != null)
            {
                r.CurrentQueueID   = q.QueueID;
                r.AssignedDate     = DateTime.UtcNow;
                r.AssignedOperator = null;
            }
            else
            {
                r.CurrentQueueID   = null;
                r.AssignedDate     = null;
                r.AssignedOperator = null;
            }

            // Update the Request record
            PersistRequest persist = context.GetExtension <PersistRequest>();

            persist.AddRequest(r);
        }
        private IPersistDescriptor CreateDescriptor(string tableName,
                                                    TypeMapping mapping1, string columnName1, ParameterTransmissionType transmissionType1,
                                                    TypeMapping mapping2, string columnName2, ParameterTransmissionType transmissionType2,
                                                    Action <SqlDelete> deleteTransform = null)
        {
            var catalog = new Catalog(task.Catalog);
            var schema  = catalog.CreateSchema(task.Schema);
            var table   = schema.CreateTable(tableName);

            var columnNames       = new[] { columnName1, columnName2 };
            var mappings          = new[] { mapping1, mapping2 };
            var transmissionTypes = new[] { transmissionType1, transmissionType2 };

            var columns  = columnNames.Select(table.CreateColumn).ToList();
            var tableRef = SqlDml.TableRef(table);

            var insert   = SqlDml.Insert(tableRef);
            var bindings = new PersistParameterBinding[columns.Count];

            for (int i = 0; i < columns.Count; i++)
            {
                var binding = new PersistParameterBinding(mappings[i], i, transmissionTypes[i]);
                insert.Values[tableRef.Columns[i]] = binding.ParameterReference;
                bindings[i] = binding;
            }

            var delete = SqlDml.Delete(tableRef);

            if (deleteTransform != null)
            {
                deleteTransform.Invoke(delete);
            }

            var storeRequest = new PersistRequest(driver, insert, bindings);
            var clearRequest = new PersistRequest(driver, delete, null);

            storeRequest.Prepare();
            clearRequest.Prepare();

            return(new Descriptor {
                StoreRequest = storeRequest,
                ClearRequest = clearRequest
            });
        }
Пример #7
0
        protected override void Execute(CodeActivityContext context)
        {
            // Open the config file and get the connection string
            Configuration            config = WebConfigurationManager.OpenWebConfiguration("/RequestWeb");
            ConnectionStringsSection css    =
                (ConnectionStringsSection)config.GetSection("connectionStrings");
            string connectionString = css.ConnectionStrings["Request"].ConnectionString;

            // Lookup the Queue
            RequestDataContext dc = new RequestDataContext(connectionString);

            // Lookup the Request
            dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dc.Requests);
            Request r = dc.Requests.SingleOrDefault(x => x.RequestKey == RequestKey.Get(context));

            if (r == null)
            {
                throw new InvalidProgramException("The specified request (" + RequestKey.Get(context) + ") was not found");
            }

            if (r.AssignedOperator != null)
            {
                if (r.AssignedOperator != OperatorID.Get(context))
                {
                    Result.Set(context, -1);
                    return;
                }
            }

            r.AssignedOperator = OperatorID.Get(context);
            r.AssignedDate     = DateTime.UtcNow;

            // Update the Request record
            PersistRequest persist = context.GetExtension <PersistRequest>();

            persist.AddRequest(r);

            Result.Set(context, 0);
        }