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

UpdateFile() private method

private UpdateFile ( Microsoft.Research.DataOnboarding.DomainModel.File modifiedFile ) : Microsoft.Research.DataOnboarding.DomainModel.File
modifiedFile Microsoft.Research.DataOnboarding.DomainModel.File
return Microsoft.Research.DataOnboarding.DomainModel.File
        public File UpdateFile(File modifiedFile)
        {
            Check.IsNotNull<File>(modifiedFile, "modifiedFile");

            File updatedFile = null;
            if (Context.GetEntityState(modifiedFile) == EntityState.Detached)
            {
                updatedFile = Context.Files.Attach(modifiedFile);
            }
            else
            {
                updatedFile = modifiedFile;
            }

            //set metadata fields
            UpdateFileLevelMetadata(modifiedFile);

            //set file column
            UpdateColumnLevelMetadata(modifiedFile);

            Context.SetEntityState<File>(updatedFile, EntityState.Modified);
            return updatedFile;
        }

Usage Example

        public void Update_File_With_FileData_Null_Test()
        {
            IFileRepository repository = new FileRepository(testDBContext);

            var file = repository.GetItem(1, 1);

            file.BlobId = "TestBlobid";
            file.Citation = "Updated Citation";
            file.Description = "Updated description";
            file.FileMetadataFields = null;
            file.FileColumns = null;
            file.FileQualityChecks = null;

            repository.UpdateFile(file);
            testDBContext.Commit();
            var updatedFile = repository.GetItem(1, 1);

            Assert.AreEqual(updatedFile.BlobId, "TestBlobid");
            Assert.AreEqual(updatedFile.Citation, "Updated Citation");
            Assert.AreEqual(updatedFile.Description, "Updated description");

            Assert.IsNull(file.FileMetadataFields);
            Assert.IsNull(file.FileColumns);
            Assert.IsNull(file.FileQualityChecks);
        }