Exemple #1
0
        private static async Task StoreMasterData(List <EpcisMasterData> epcisMasterDatas, IDbTransaction tx, CancellationToken cancellationToken)
        {
            if (epcisMasterDatas.Count == 0)
            {
                return;
            }

            var masterDataDtoManager = new MasterdataDtoManager();

            for (short masterdataId = 0; masterdataId < epcisMasterDatas.Count; masterdataId++)
            {
                masterDataDtoManager.AddMasterdata(epcisMasterDatas[masterdataId]);
            }

            await masterDataDtoManager.PersistAsync(tx, cancellationToken);
        }
Exemple #2
0
        public async Task <IEnumerable <EpcisMasterData> > Fetch(string[] attributes, bool includeChildren, CancellationToken cancellationToken)
        {
            _parameters.SetLimit(_limit > 0 ? _limit : int.MaxValue);

            var masterdataManager = new MasterdataDtoManager();

            masterdataManager.MasterDataDtos.AddRange(await _connection.QueryAsync <MasterDataDto>(new CommandDefinition(_sqlTemplate.RawSql, _parameters.Values, cancellationToken: cancellationToken)));

            if (attributes != null)
            {
                var query   = !attributes.Any() ? SqlQueries.Read_MasterdataAllAttributes : SqlQueries.Read_MasterdataAttributes;
                var command = new CommandDefinition(query, new { Ids = masterdataManager.MasterDataDtos.Select(x => x.Id).ToArray(), Attributes = attributes }, cancellationToken: cancellationToken);
                masterdataManager.AttributeDtos.AddRange(await _connection.QueryAsync <MasterDataAttributeDto>(command));
            }
            if (includeChildren)
            {
                var command = new CommandDefinition(SqlQueries.Read_MasterdataChildren, new { Ids = masterdataManager.MasterDataDtos.Select(x => x.Id).ToArray() }, cancellationToken: cancellationToken);
                masterdataManager.HierarchyDtos.AddRange(await _connection.QueryAsync <MasterDataHierarchyDto>(command));
            }

            return(masterdataManager.FormatMasterdata());
        }