コード例 #1
0
        public void Import(ExcelWorksheet sheet, List <EntityMetadata> emds, IOrganizationService service)
        {
            var rmds = new List <OneToManyRelationshipMetadata>();

            foreach (var row in sheet.Rows.Where(r => r.Index != 0).OrderBy(r => r.Index))
            {
                var rmd = rmds.FirstOrDefault(r => r.MetadataId == new Guid(row.Cells[1].Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == row.Cells[0].Value.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName   = row.Cells[0].Value.ToString(),
                            EntityFilters = EntityFilters.Relationships
                        };

                        var response = ((RetrieveEntityResponse)service.Execute(request));
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }

                    rmd =
                        currentEntity.OneToManyRelationships.FirstOrDefault(
                            r => r.SchemaName == row.Cells[2].Value.ToString());
                    if (rmd == null)
                    {
                        rmd =
                            currentEntity.ManyToOneRelationships.FirstOrDefault(
                                r => r.SchemaName == row.Cells[2].Value.ToString());
                    }

                    rmds.Add(rmd);
                }

                int columnIndex = 4;

                rmd.AssociatedMenuConfiguration.Label = new Label();

                while (row.Cells[columnIndex].Value != null)
                {
                    rmd.AssociatedMenuConfiguration.Label.LocalizedLabels.Add(
                        new LocalizedLabel(row.Cells[columnIndex].Value.ToString(),
                                           int.Parse(sheet.Cells[0, columnIndex].Value.ToString())));

                    columnIndex++;
                }
            }

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                };
                service.Execute(request);
            }
        }
コード例 #2
0
        public void Import(ExcelWorksheet sheet, List<EntityMetadata> emds, IOrganizationService service)
        {
            var rmds = new List<OneToManyRelationshipMetadata>();

            foreach (var row in sheet.Rows.Where(r => r.Index != 0).OrderBy(r => r.Index))
            {
                var rmd = rmds.FirstOrDefault(r => r.MetadataId == new Guid(row.Cells[1].Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == row.Cells[0].Value.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName = row.Cells[0].Value.ToString(),
                            EntityFilters = EntityFilters.Relationships
                        };

                        var response = ((RetrieveEntityResponse) service.Execute(request));
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }

                    rmd =
                        currentEntity.OneToManyRelationships.FirstOrDefault(
                            r => r.SchemaName == row.Cells[2].Value.ToString());
                    if (rmd == null)
                    {
                        rmd =
                            currentEntity.ManyToOneRelationships.FirstOrDefault(
                                r => r.SchemaName == row.Cells[2].Value.ToString());
                    }

                    rmds.Add(rmd);
                }

                int columnIndex = 4;

                rmd.AssociatedMenuConfiguration.Label = new Label();

                while (row.Cells[columnIndex].Value != null)
                {
                    rmd.AssociatedMenuConfiguration.Label.LocalizedLabels.Add(
                        new LocalizedLabel(row.Cells[columnIndex].Value.ToString(),
                            int.Parse(sheet.Cells[0, columnIndex].Value.ToString())));

                    columnIndex++;
                }
            }

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                };
                service.Execute(request);
            }
        }
コード例 #3
0
        private void UpdateRelationshipMetadata(RelationshipMetadataBase relationshipMetadataBase)
        {
            var request = new UpdateRelationshipRequest()
            {
                Relationship = relationshipMetadataBase,
                MergeLabels  = false,
            };

            var response = (UpdateRelationshipResponse)_service.Execute(request);
        }
コード例 #4
0
        public override void UpdateAttribute(IOrganizationService service)
        {
            var relationshipRequest = new UpdateRelationshipRequest
            {
                Relationship = GetRelationshipMetadata()
            };

            service.Execute(relationshipRequest);

            var lookupRequest = new UpdateAttributeRequest
            {
                EntityName = Entity,
                Attribute  = GetAttributeMetadata()
            };

            service.Execute(lookupRequest);
        }
コード例 #5
0
        public void Import(ExcelWorksheet sheet, List <EntityMetadata> emds, IOrganizationService service, BackgroundWorker worker)
        {
            var rmds = new List <OneToManyRelationshipMetadata>();

            var rowsCount  = sheet.Dimension.Rows;
            var cellsCount = sheet.Dimension.Columns;

            for (var rowI = 1; rowI < rowsCount; rowI++)
            {
                var rmd = rmds.FirstOrDefault(r => ZeroBasedSheet.Cell(sheet, rowI, 1).Value != null && r.MetadataId == new Guid(ZeroBasedSheet.Cell(sheet, rowI, 1).Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value?.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName   = ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString(),
                            EntityFilters = EntityFilters.Entity | EntityFilters.Attributes | EntityFilters.Relationships
                        };

                        var response = (RetrieveEntityResponse)service.Execute(request);
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }
                    rmd =
                        currentEntity.OneToManyRelationships.FirstOrDefault(
                            r => r.SchemaName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value?.ToString());
                    if (rmd == null)
                    {
                        rmd =
                            currentEntity.ManyToOneRelationships.FirstOrDefault(
                                r => r.SchemaName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value?.ToString());
                    }

                    rmds.Add(rmd);
                }

                int columnIndex = 4;

                rmd.AssociatedMenuConfiguration.Label = new Label();

                while (columnIndex < cellsCount)
                {
                    if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                    {
                        var lcid  = int.Parse(ZeroBasedSheet.Cell(sheet, 0, columnIndex).Value.ToString());
                        var label = ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString();

                        rmd.AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(label, lcid));
                    }

                    columnIndex++;
                }
            }

            int i = 0;

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                };

                try
                {
                    service.Execute(request);

                    OnResult(new TranslationResultEventArgs
                    {
                        Success   = true,
                        SheetName = sheet.Name
                    });
                }
                catch (Exception error)
                {
                    OnResult(new TranslationResultEventArgs
                    {
                        Success   = false,
                        SheetName = sheet.Name,
                        Message   = $"{request.Relationship.SchemaName}: {error.Message}"
                    });
                }

                i++;
                worker.ReportProgressIfPossible(0, new ProgressInfo
                {
                    Item = i * 100 / rmds.Count
                });
            }
        }
コード例 #6
0
        public void Import(ExcelWorksheet sheet, List<EntityMetadata> emds, IOrganizationService service)
        {
            var rmds = new List<ManyToManyRelationshipMetadata>();

            var rowsCount = sheet.Dimension.Rows;
            var cellsCount = sheet.Dimension.Columns;
            for (var rowI = 1; rowI < rowsCount; rowI++)
            {
                var rmd = rmds.FirstOrDefault(r => r.MetadataId == new Guid(ZeroBasedSheet.Cell(sheet, rowI, 1).Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName = ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString(),
                            EntityFilters = EntityFilters.Relationships
                        };

                        var response = ((RetrieveEntityResponse)service.Execute(request));
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }

                    rmd = currentEntity.ManyToManyRelationships.FirstOrDefault(r => r.IntersectEntityName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value.ToString());
                    rmds.Add(rmd);
                }

                int columnIndex = 5;

                if (ZeroBasedSheet.Cell(sheet, rowI, 4).Value.ToString() == "Entity1")
                {
                    rmd.Entity1AssociatedMenuConfiguration.Label = new Label();

                    while (columnIndex < cellsCount)
                    {
                        if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                        {
                            var lcid = int.Parse(ZeroBasedSheet.Cell(sheet, 0, columnIndex).Value.ToString());
                            var label = ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString();

                            rmd.Entity1AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(label, lcid));
                        }

                        columnIndex++;
                    }
                }
                else if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).ToString() == "Entity2")
                {
                    rmd.Entity2AssociatedMenuConfiguration.Label = new Label();

                    while (columnIndex < cellsCount)
                    {
                        if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                        {
                            var lcid = int.Parse(ZeroBasedSheet.Cell(sheet, 0, columnIndex).Value.ToString());
                            var label = ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString();

                            rmd.Entity2AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(label, lcid));
                        }
                        columnIndex++;
                    }
                }
            }

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                };
                service.Execute(request);
            }
        }
コード例 #7
0
ファイル: XrmService.cs プロジェクト: josephmcmac/JosephM.Xrm
 public void CreateOrUpdateRelationship(string schemaName, string entityType1, string entityType2,
     bool entityType1DisplayRelated, bool entityType2DisplayRelated)
 {
     var metadata = new ManyToManyRelationshipMetadata();
     lock (LockObject)
     {
         var exists = RelationshipExists(schemaName);
         if (exists)
             metadata = GetRelationshipMetadata(schemaName);
         metadata.SchemaName = schemaName;
         metadata.IntersectEntityName = schemaName;
         metadata.Entity1LogicalName = entityType1;
         metadata.Entity2LogicalName = entityType2;
         metadata.Entity1AssociatedMenuConfiguration = new AssociatedMenuConfiguration()
         {
             Behavior = entityType1DisplayRelated
                 ? AssociatedMenuBehavior.UseCollectionName
                 : AssociatedMenuBehavior.DoNotDisplay
         };
         metadata.Entity2AssociatedMenuConfiguration = new AssociatedMenuConfiguration()
         {
             Behavior = entityType2DisplayRelated
                 ? AssociatedMenuBehavior.UseCollectionName
                 : AssociatedMenuBehavior.DoNotDisplay
         };
         if (exists)
         {
             var request = new UpdateRelationshipRequest
             {
                 Relationship = metadata
             };
             Execute(request);
         }
         else
         {
             var request = new CreateManyToManyRequest
             {
                 IntersectEntitySchemaName = schemaName,
                 ManyToManyRelationship = metadata
             };
             Execute(request);
         }
         RefreshRelationshipMetadata(schemaName);
     }
 }
コード例 #8
0
ファイル: XrmService.cs プロジェクト: josephmcmac/JosephM.Xrm
        public void CreateOrUpdateLookupAttribute(string schemaName, string displayName, string description,
            bool isRequired, bool audit, bool searchable, string recordType,
            string referencedEntityType, bool displayInRelated)
        {
            lock (LockObject)
            {
                LookupAttributeMetadata metadata;
                if (FieldExists(schemaName, recordType))
                    metadata = (LookupAttributeMetadata) GetFieldMetadata(schemaName, recordType);
                else
                    metadata = new LookupAttributeMetadata();

                SetCommon(metadata, schemaName, displayName, description, isRequired, audit, searchable);

                if (FieldExists(schemaName, recordType))
                {
                    CreateOrUpdateAttribute(schemaName, recordType, metadata);
                    var relationships =
                        GetEntityOneToManyRelationships(referencedEntityType);
                    var relationship = relationships.First(r => r.ReferencingAttribute.ToLower() == schemaName);
                    var newBehvaiour = displayInRelated
                        ? AssociatedMenuBehavior.UseCollectionName
                        : AssociatedMenuBehavior.DoNotDisplay;
                    if (newBehvaiour != relationship.AssociatedMenuConfiguration.Behavior)
                    {
                        relationship.AssociatedMenuConfiguration.Behavior = displayInRelated
                            ? AssociatedMenuBehavior.UseCollectionName
                            : AssociatedMenuBehavior.DoNotDisplay;
                        var request = new UpdateRelationshipRequest()
                        {
                            Relationship = relationship
                        };
                        Execute(request);
                        RefreshEntityMetadata(recordType);
                        RefreshEntityMetadata(referencedEntityType);
                    }
                }
                else
                {
                    var request = new CreateOneToManyRequest
                    {
                        OneToManyRelationship = new OneToManyRelationshipMetadata
                        {
                            SchemaName = string.Format("{0}_{1}_{2}", recordType, referencedEntityType, schemaName),
                            AssociatedMenuConfiguration = new AssociatedMenuConfiguration
                            {
                                Behavior =
                                    displayInRelated
                                        ? AssociatedMenuBehavior.UseCollectionName
                                        : AssociatedMenuBehavior.DoNotDisplay
                            },
                            ReferencingEntity = recordType,
                            ReferencedEntity = referencedEntityType
                        },
                        Lookup = metadata
                    };

                    Execute(request);
                    RefreshFieldMetadata(schemaName, recordType);
                    CreateOrUpdateAttribute(schemaName, recordType, metadata);
                    RefreshEntityMetadata(recordType);
                    RefreshEntityMetadata(referencedEntityType);
                }
            }
        }
コード例 #9
0
        public void Import(ExcelWorksheet sheet, List <EntityMetadata> emds, IOrganizationService service, BackgroundWorker worker)
        {
            OnLog(new LogEventArgs($"Reading {sheet.Name}"));

            var rmds = new List <ManyToManyRelationshipMetadata>();

            var rowsCount  = sheet.Dimension.Rows;
            var cellsCount = sheet.Dimension.Columns;

            for (var rowI = 1; rowI < rowsCount; rowI++)
            {
                var rmd = rmds.FirstOrDefault(r => r.MetadataId == new Guid(ZeroBasedSheet.Cell(sheet, rowI, 1).Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName   = ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString(),
                            EntityFilters = EntityFilters.Entity | EntityFilters.Attributes | EntityFilters.Relationships
                        };

                        var response = ((RetrieveEntityResponse)service.Execute(request));
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }

                    rmd = currentEntity.ManyToManyRelationships.FirstOrDefault(r => r.IntersectEntityName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value.ToString());
                    rmds.Add(rmd);
                }

                if (rmd == null)
                {
                    OnLog(new LogEventArgs
                    {
                        Type    = LogType.Warning,
                        Message = $"Unable to find relationship '{ZeroBasedSheet.Cell(sheet, rowI, 2).Value}' for entity '{ZeroBasedSheet.Cell(sheet, rowI, 0).Value}"
                    });
                    continue;
                }

                int columnIndex = 3;

                if (rmd.Entity1LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString())
                {
                    rmd.Entity1AssociatedMenuConfiguration.Label = new Label();

                    while (columnIndex < cellsCount)
                    {
                        if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                        {
                            var lcid  = int.Parse(ZeroBasedSheet.Cell(sheet, 0, columnIndex).Value.ToString());
                            var label = ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString();

                            rmd.Entity1AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(label, lcid));
                        }

                        columnIndex++;
                    }
                }
                else if (rmd.Entity2LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString())
                {
                    rmd.Entity2AssociatedMenuConfiguration.Label = new Label();

                    while (columnIndex < cellsCount)
                    {
                        if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                        {
                            var lcid  = int.Parse(ZeroBasedSheet.Cell(sheet, 0, columnIndex).Value.ToString());
                            var label = ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString();

                            rmd.Entity2AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(label,
                                                                                                                lcid));
                        }
                        columnIndex++;
                    }
                }
                else
                {
                    OnLog(new LogEventArgs
                    {
                        Type    = LogType.Warning,
                        Message = $"Unable to find entity '{ZeroBasedSheet.Cell(sheet, rowI, 0).Value}' in relationship '{ZeroBasedSheet.Cell(sheet, rowI, 2).Value}"
                    });
                }
            }

            OnLog(new LogEventArgs($"Importing {sheet.Name} translations"));

            var arg = new TranslationProgressEventArgs {
                SheetName = sheet.Name
            };

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                    MergeLabels  = true
                };

                AddRequest(request);
                ExecuteMultiple(service, arg, rmds.Count);
            }
            ExecuteMultiple(service, arg, rmds.Count, true);
        }
コード例 #10
0
        public void Import(ExcelWorksheet sheet, List <EntityMetadata> emds, IOrganizationService service, BackgroundWorker worker)
        {
            var rmds = new List <OneToManyRelationshipMetadata>();

            var rowsCount  = sheet.Dimension.Rows;
            var cellsCount = sheet.Dimension.Columns;

            for (var rowI = 1; rowI < rowsCount; rowI++)
            {
                var rmd = rmds.FirstOrDefault(r => ZeroBasedSheet.Cell(sheet, rowI, 1).Value != null && r.MetadataId == new Guid(ZeroBasedSheet.Cell(sheet, rowI, 1).Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value?.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName   = ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString(),
                            EntityFilters = EntityFilters.Entity | EntityFilters.Attributes | EntityFilters.Relationships
                        };

                        var response = (RetrieveEntityResponse)service.Execute(request);
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }
                    rmd =
                        currentEntity.OneToManyRelationships.FirstOrDefault(
                            r => r.SchemaName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value?.ToString());
                    if (rmd == null)
                    {
                        rmd =
                            currentEntity.ManyToOneRelationships.FirstOrDefault(
                                r => r.SchemaName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value?.ToString());
                    }

                    rmds.Add(rmd);
                }

                int columnIndex = 4;
                if (rmd.AssociatedMenuConfiguration.Label == null)
                {
                    rmd.AssociatedMenuConfiguration.Label = new Label();
                }

                while (columnIndex < cellsCount)
                {
                    if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                    {
                        var lcid  = int.Parse(ZeroBasedSheet.Cell(sheet, 0, columnIndex).Value.ToString());
                        var label = ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString();
                        var ll    = rmd.AssociatedMenuConfiguration.Label.LocalizedLabels.FirstOrDefault(l => l.LanguageCode == lcid);
                        if (ll != null)
                        {
                            ll.Label = label;
                        }
                        else
                        {
                            rmd.AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(label, lcid));
                        }
                    }

                    columnIndex++;
                }
            }

            var arg = new TranslationProgressEventArgs {
                SheetName = sheet.Name
            };

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                    MergeLabels  = true
                };

                AddRequest(request);
                //ExecuteMultiple(service, arg);
            }

            ExecuteMultiple(service, arg, true);
        }
コード例 #11
0
        public void Import(ExcelWorksheet sheet, List<EntityMetadata> emds, IOrganizationService service)
        {
            var rmds = new List<ManyToManyRelationshipMetadata>();

            var rowsCount = sheet.Dimension.Rows;
            for (var rowI = 1; rowI < rowsCount; rowI++)
            {
                var rmd = rmds.FirstOrDefault(r => r.MetadataId == new Guid(ZeroBasedSheet.Cell(sheet, rowI, 1).Value.ToString()));
                if (rmd == null)
                {
                    var currentEntity = emds.FirstOrDefault(e => e.LogicalName == ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString());
                    if (currentEntity == null)
                    {
                        var request = new RetrieveEntityRequest
                        {
                            LogicalName = ZeroBasedSheet.Cell(sheet, rowI, 0).Value.ToString(),
                            EntityFilters = EntityFilters.Relationships
                        };

                        var response = ((RetrieveEntityResponse)service.Execute(request));
                        currentEntity = response.EntityMetadata;

                        emds.Add(currentEntity);
                    }

                    rmd = currentEntity.ManyToManyRelationships.FirstOrDefault(r => r.IntersectEntityName == ZeroBasedSheet.Cell(sheet, rowI, 2).Value.ToString());
                    rmds.Add(rmd);
                }

                int columnIndex = 5;

                if (ZeroBasedSheet.Cell(sheet, rowI, 4).Value.ToString() == "Entity1")
                {
                    rmd.Entity1AssociatedMenuConfiguration.Label = new Label();

                    while (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                    {
                        rmd.Entity1AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString(), int.Parse(sheet.Cells[0, columnIndex].Value.ToString())));

                        columnIndex++;
                    }
                }
                else if (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).ToString() == "Entity2")
                {
                    rmd.Entity2AssociatedMenuConfiguration.Label = new Label();

                    while (ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value != null)
                    {
                        rmd.Entity2AssociatedMenuConfiguration.Label.LocalizedLabels.Add(new LocalizedLabel(ZeroBasedSheet.Cell(sheet, rowI, columnIndex).Value.ToString(), int.Parse(sheet.Cells[0, columnIndex].Value.ToString())));

                        columnIndex++;
                    }
                }
            }

            foreach (var rmd in rmds)
            {
                var request = new UpdateRelationshipRequest
                {
                    Relationship = rmd,
                };
                service.Execute(request);
            }
        }