Exemplo n.º 1
0
        protected override void Execute(CodeActivityContext context)
        {
            var settings = new ConnectionSettings(new Uri(URL.Get(context)));

            settings.ThrowExceptions(alwaysThrow: true);
            settings.PrettyJson();

            if (AuthenticationRequired.Get(context) == true)
            {
                settings.BasicAuthentication(Username.Get(context), Password.Get(context));
            }


            var esClient   = new ElasticClient(settings);
            var searchData = esClient.Search <UiPathESLog>(sd => sd
                                                           .Index(Index.Get(context))
                                                           .Size(MaxSize.Get(context))
                                                           .Query(q => q.
                                                                  Match(m => m
                                                                        .Field(f => f.processName)
                                                                        .Query(ProcessName.Get(context) == string.Empty ? "*" : ProcessName.Get(context))) &&
                                                                  q.
                                                                  Match(m => m
                                                                        .Field(f => f.robotName)
                                                                        .Query(RobotName.Get(context) == string.Empty ? "*" : RobotName.Get(context))) &&
                                                                  q
                                                                  .DateRange(r => r
                                                                             .Field(f => f.timeStamp)
                                                                             .GreaterThanOrEquals(StartTime.Get(context))
                                                                             .LessThanOrEquals(EndTime.Get(context)))));

            Logs.Set(context, searchData.Documents.ToArray());
        }
        protected override void OutputResult(AsyncCodeActivityContext context)
        {
            //Parse collection options if defined
            var capped = Capped.Get(context);

            if (capped is null)
            {
                capped = true;
            }
            var maxSize = MaxSize.Get(context);

            if (maxSize is null)
            {
                maxSize = 1024;
            }
            var maxCount = MaxCount.Get(context);

            if (maxCount is null)
            {
                maxCount = 1000;
            }

            var database         = Database.Get(context);
            var collection       = Collection.Get(context);
            var mongoProperty    = context.DataContext.GetProperties()[ParentScope.ParentContainerPropertyTag].GetValue(context.DataContext) as MongoProperty;
            var connectionString = mongoProperty.URL;
            var mongoClient      = new MongoClient(connectionString);

            mongoClient.GetDatabase(database).CreateCollectionAsync(collection, new CreateCollectionOptions
            {
                Capped       = capped,
                MaxSize      = maxSize,
                MaxDocuments = maxCount,
            }).Wait();
        }
        // Module defining this command


        // Optional custom code for this activity


        /// <summary>
        /// Returns a configured instance of System.Management.Automation.PowerShell, pre-populated with the command to run.
        /// </summary>
        /// <param name="context">The NativeActivityContext for the currently running activity.</param>
        /// <returns>A populated instance of System.Management.Automation.PowerShell</returns>
        /// <remarks>The infrastructure takes responsibility for closing and disposing the PowerShell instance returned.</remarks>
        protected override ActivityImplementationContext GetPowerShell(NativeActivityContext context)
        {
            System.Management.Automation.PowerShell invoker       = global::System.Management.Automation.PowerShell.Create();
            System.Management.Automation.PowerShell targetCommand = invoker.AddCommand(PSCommandName);

            // Initialize the arguments

            if (Path.Expression != null)
            {
                targetCommand.AddParameter("Path", Path.Get(context));
            }

            if (FileFormat.Expression != null)
            {
                targetCommand.AddParameter("FileFormat", FileFormat.Get(context));
            }

            if (MaxSize.Expression != null)
            {
                targetCommand.AddParameter("MaxSize", MaxSize.Get(context));
            }

            if (InputObject.Expression != null)
            {
                targetCommand.AddParameter("InputObject", InputObject.Get(context));
            }

            if (Force.Expression != null)
            {
                targetCommand.AddParameter("Force", Force.Get(context));
            }

            if (Circular.Expression != null)
            {
                targetCommand.AddParameter("Circular", Circular.Get(context));
            }


            return(new ActivityImplementationContext()
            {
                PowerShellInstance = invoker
            });
        }