async Task RunForChromeDriver(LogSourcePostprocessorInput input)
 {
     var            reader                 = (new CD.Reader(postprocessing.TextLogParser, input.CancellationToken)).Read(input.LogFileName, input.ProgressHandler);
     IPrefixMatcher prefixMatcher          = postprocessing.CreatePrefixMatcher();
     var            matchedMessages        = reader.MatchTextPrefixes(prefixMatcher).Multiplex();
     var            nodeDetectionTokenTask = (new CD.NodeDetectionTokenSource(new CD.ProcessIdDetector(prefixMatcher), prefixMatcher)).GetToken(matchedMessages);
     var            noMessagingEvents      = EnumerableAsync.Empty <M.Event[]>();
     var            serialize              = postprocessing.Correlation.CreatePostprocessorOutputBuilder()
                                             .SetSameNodeDetectionToken(nodeDetectionTokenTask)
                                             .SetTriggersConverter(evtTrigger => TextLogEventTrigger.Make((CD.Message)evtTrigger))
                                             .Build(input);
     await Task.WhenAll(
         matchedMessages.Open(),
         serialize
         );
 }
Esempio n. 2
0
        public static IEnumerableAsync <Adapter> FindAll(string resourceType)
        {
            if (resourceType.IsNullOrWhiteSpace())
            {
                return(EnumerableAsync.Empty <Adapter>());
            }

            return(AzureStorageRepository.Connection(
                       azureStorageRepository =>
            {
                var whereResourceTypeQuery = TableQuery.GenerateFilterCondition("ResourceType", QueryComparisons.Equal, resourceType);
                var adapterQuery = new TableQuery <AdapterDocument>().Where(whereResourceTypeQuery);
                return azureStorageRepository
                .FindAllAsync(adapterQuery)
                .Select(Convert);
            }));
        }
        public TResult GetKeys <TResult>(
            MemberInfo memberInfo, Driver.AzureTableDriverDynamic repository,
            KeyValuePair <MemberInfo, object>[] queries,
            Func <IEnumerableAsync <IRefAst>, TResult> onQueriesMatched,
            Func <TResult> onQueriesDidNotMatch,
            ILogger logger = default)
        {
            if (queries.IsDefaultNullOrEmpty())
            {
                throw new ArgumentException("Exactly one query param is required for StorageLinkAttribute.");
            }
            if (queries.Length != 1)
            {
                throw new ArgumentException("Exactly one query param is valid for StorageLinkAttribute.");
            }

            var tableName       = GetLookupTableName(memberInfo);
            var memberValue     = queries.First().Value;
            var queryMemberInfo = queries.First().Key;
            var rowKey          = queryMemberInfo.StorageComputeRowKey(memberValue,
                                                                       onMissing: () => new RowKeyAttribute());
            var partitionKey = queryMemberInfo.StorageComputePartitionKey(memberValue, rowKey,
                                                                          onMissing: () => new RowKeyPrefixAttribute());

            return(onQueriesMatched(repository
                                    .FindByIdAsync <StorageLookupTable, IEnumerableAsync <IRefAst> >(rowKey, partitionKey,
                                                                                                     (dictEntity, tableResult) =>
            {
                var rowAndParitionKeys = dictEntity.rowAndPartitionKeys
                                         .NullToEmpty()
                                         .Select(rowParitionKeyKvp => rowParitionKeyKvp.Key.AsAstRef(rowParitionKeyKvp.Value))
                                         .AsAsync();
                return rowAndParitionKeys;
            },
                                                                                                     () => EnumerableAsync.Empty <IRefAst>(),
                                                                                                     tableName: tableName)
                                    .FoldTask()));
        }
        public IEnumerableAsync <IRefAst> GetKeys(object memberValue,
                                                  MemberInfo memberInfo, Driver.AzureTableDriverDynamic repository,
                                                  KeyValuePair <MemberInfo, object>[] queries)
        {
            var tableName          = GetLookupTableName(memberInfo);
            var lookupRowKey       = ComputeLookupRowKey(memberValue, memberInfo);
            var lookupPartitionKey = ComputeLookupPartitionKey(memberValue, memberInfo, lookupRowKey);
            var lookupKey          = queries
                                     .NullToEmpty()
                                     .OrderBy(kvp => kvp.Key.Name)
                                     .Aggregate(
                lookupRowKey.AsAstRef(lookupPartitionKey),
                (lookupKeyCurrent, kvp) =>
            {
                var scopings = kvp.Key
                               .GetAttributesInterface <IScope>()
                               .Where(attr => attr.Scope == this.Scope);
                if (!scopings.Any())
                {
                    // TODO: Error here if scope is set?
                    return(lookupKeyCurrent);
                }
                var scoping = scopings.First();
                return(scoping.MutateReference(lookupKeyCurrent, kvp.Key, kvp.Value));
            });

            return(repository
                   .FindByIdAsync <StorageLookupTable, IEnumerableAsync <IRefAst> >(lookupKey.RowKey, lookupKey.PartitionKey,
                                                                                    (dictEntity) =>
            {
                var rowAndParitionKeys = dictEntity.rowAndPartitionKeys
                                         .NullToEmpty()
                                         .Select(rowParitionKeyKvp => rowParitionKeyKvp.Key.AsAstRef(rowParitionKeyKvp.Value))
                                         .AsAsync();
                return rowAndParitionKeys;
            },
                                                                                    () => EnumerableAsync.Empty <IRefAst>(),
                                                                                    tableName: tableName)
                   .FoldTask());
        }
        public IEnumerableAsync <IRefAst> GetKeys(object memberValueObj,
                                                  MemberInfo memberInfo, Driver.AzureTableDriverDynamic repository,
                                                  KeyValuePair <MemberInfo, object>[] queries)
        {
            if (!queries.IsDefaultNullOrEmpty())
            {
                throw new ArgumentException("Exactly one query param is valid for DateTimeLookupAttribute.");
            }

            var memberValue        = (DateTime)memberValueObj;
            var tableName          = GetLookupTableName(memberInfo);
            var lookupRowKey       = ComputeLookupKey(memberValue, TimeSpan.FromSeconds(this.Row));
            var lookupPartitionKey = ComputeLookupKey(memberValue, TimeSpan.FromSeconds(this.Partition));

            return(repository
                   .FindByIdAsync <DateTimeLookupTable, IEnumerableAsync <IRefAst> >(lookupRowKey, lookupPartitionKey,
                                                                                     (dictEntity) =>
            {
                var rowAndParitionKeys = dictEntity.rows
                                         .NullToEmpty()
                                         .Zip(dictEntity.partitions,
                                              (row, partition) => row.AsAstRef(partition))
                                         .AsAsync();
                return rowAndParitionKeys;
            },
                                                                                     () => EnumerableAsync.Empty <IRefAst>(),
                                                                                     tableName: tableName)
                   .FoldTask());
        }
Esempio n. 6
0
        public IEnumerableAsync <IRefAst> GetKeys(object memberValue,
                                                  MemberInfo memberInfo, Driver.AzureTableDriverDynamic repository,
                                                  KeyValuePair <MemberInfo, object>[] queries)
        {
            if (!queries.IsDefaultNullOrEmpty())
            {
                throw new ArgumentException("Exactly one query param is valid for StorageLinkAttribute.");
            }

            var tableName = GetLookupTableName(memberInfo);

            var rowKey = memberInfo.StorageComputeRowKey(memberValue,
                                                         onMissing: () => new RowKeyAttribute());
            var partitionKey = memberInfo.StorageComputePartitionKey(memberValue, rowKey,
                                                                     onMissing: () => new RowKeyPrefixAttribute());

            return(repository
                   .FindByIdAsync <StorageLookupTable, IEnumerableAsync <IRefAst> >(rowKey, partitionKey,
                                                                                    (dictEntity) =>
            {
                var rowAndParitionKeys = dictEntity.rowAndPartitionKeys
                                         .NullToEmpty()
                                         .Select(rowParitionKeyKvp => rowParitionKeyKvp.Key.AsAstRef(rowParitionKeyKvp.Value))
                                         .AsAsync();
                return rowAndParitionKeys;
            },
                                                                                    () => EnumerableAsync.Empty <IRefAst>(),
                                                                                    tableName: tableName)
                   .FoldTask());
        }