Example #1
0
        public async Task Store(int requestId, IEnumerable <EpcisMasterData> masterDataList, CancellationToken cancellationToken)
        {
            foreach (var masterData in masterDataList)
            {
                await _unitOfWork.Execute(PgSqlMasterdataRequests.Delete, masterData, cancellationToken);

                await _unitOfWork.Execute(PgSqlMasterdataRequests.Insert, masterData, cancellationToken);

                foreach (var attribute in masterData.Attributes)
                {
                    var output = new List <MasterDataFieldEntity>();
                    ParseFields(attribute.Fields, output);

                    await _unitOfWork.Execute(PgSqlMasterdataRequests.AttributeInsert, attribute, cancellationToken);

                    await _unitOfWork.Execute(PgSqlMasterdataRequests.AttributeFieldInsert, output, cancellationToken);
                }
            }

            var hierarchies = masterDataList.SelectMany(x => x.Children.Select(c => new EpcisMasterDataHierarchy {
                Type = x.Type, ChildrenId = c.ChildrenId, ParentId = x.Id
            }));
            await _unitOfWork.BulkExecute(PgSqlMasterdataRequests.HierarchyInsert, hierarchies, cancellationToken);
        }
 public async Task Delete(string subscriptionId, CancellationToken cancellationToken)
 => await _unitOfWork.Execute(PgSqlSubscriptionRequests.Delete, new { Id = subscriptionId }, cancellationToken);