Esempio n. 1
0
        protected void PersistUsingAssignRequest(int pageNo, List <EntityWrapper> entities, IEntityRepository repo)
        {
            if (entities != null && entities.Any())
            {
                repo.ThrowArgumentNullExceptionIfNull(nameof(repo));

                repo.AssignEntities(entities);
                Logger.LogVerbose($"DataCrmStoreWriter PersistUsingAssignRequest pageNo {pageNo}, count:{entities.Count}");

                foreach (var itemSaved in entities)
                {
                    Entity entity = itemSaved.OriginalEntity;

                    if (itemSaved.OperationType == OperationType.Failed)
                    {
                        string message = $"Assign Entity Issue {entity.LogicalName}:{entity.Id} - {itemSaved.OperationResult}";
                        Logger.LogWarning("DataCrmStoreWriter PersistUsingAssignRequest : " + message);
                    }
                    else
                    {
                        string message = $"Assign Entity OK {entity.LogicalName}:{entity.Id} - {itemSaved.OperationResult}";
                        Logger.LogVerbose("DataCrmStoreWriter PersistUsingAssignRequest : " + message);
                    }

                    if (entity.Attributes.ContainsKey(EntityFields.OwnerId))
                    {
                        entity.Attributes.Remove(EntityFields.OwnerId);

                        if (!entity.Attributes.Any())
                        {
                            itemSaved.OperationType = OperationType.Ignore;
                            Logger.LogVerbose($"PersistUsingAssignRequest Entity {entity.LogicalName}:{entity.Id} set to ignored because no other attributes detected");
                        }
                    }
                }
            }
        }