Microsoft.Research.DataOnboarding.DataAccessService.Providers.EntityFramework.FileRepository.UpdateColumnLevelMetadata C# (CSharp) Method

UpdateColumnLevelMetadata() private method

Method to update column level metadata.
private UpdateColumnLevelMetadata ( Microsoft.Research.DataOnboarding.DomainModel.File modifiedFile ) : void
modifiedFile Microsoft.Research.DataOnboarding.DomainModel.File File object
return void
        private void UpdateColumnLevelMetadata(File modifiedFile)
        {
            List<FileColumn> fileColumnsToBeDeleted = new List<FileColumn>();
            if (modifiedFile.FileColumns != null)
            {
                foreach (var fileColumn in modifiedFile.FileColumns)
                {
                    if (!string.IsNullOrWhiteSpace(fileColumn.EntityDescription))
                    {
                        if (fileColumn.FileColumnId != 0)
                        {
                            var updatedFileColumn = Context.FileColumns.Attach(fileColumn);
                            Context.SetEntityState<FileColumn>(fileColumn, EntityState.Modified);
                        }
                        else
                        {
                            var addedFileColumn = Context.FileColumns.Add(fileColumn);
                            Context.SetEntityState<FileColumn>(addedFileColumn, EntityState.Added);
                        }
                    }
                    else
                    {
                        fileColumnsToBeDeleted.Add(fileColumn);
                    }
                }

                foreach (var deleteFileColumn in fileColumnsToBeDeleted)
                {
                    Context.SetEntityState<FileColumn>(deleteFileColumn, EntityState.Deleted);
                    Context.FileColumns.Remove(deleteFileColumn);
                }
            }
        }