public void CRUDAssetFilter()
{
string assetName = "CRUDAssetFilter_" + Guid.NewGuid().ToString();
var asset = _mediaContext.Assets.Create(assetName,AssetCreationOptions.None);
Assert.IsNotNull(asset);
string filterName = "CRUDAssetFilter_" + Guid.NewGuid().ToString();
IStreamingAssetFilter filter = asset.AssetFilters.Create(filterName, new PresentationTimeRange(), new List<FilterTrackSelectStatement>());
Assert.IsNotNull(filter);
Assert.IsNotNull(filter.ParentAssetId);
Assert.AreEqual(asset.Id,filter.ParentAssetId);
asset = _mediaContext.Assets.Where(c => c.Id == asset.Id).FirstOrDefault();
Assert.IsNotNull(asset);
Assert.AreEqual(1, asset.AssetFilters.Count());
//Why we are througing internal server exception here
filter.PresentationTimeRange = new PresentationTimeRange(timescale: 500);
filter.Update();
asset = _mediaContext.Assets.Where(c => c.Id == asset.Id).FirstOrDefault();
Assert.IsNotNull(asset);
var filterUpdated = asset.AssetFilters.FirstOrDefault();
Assert.IsNotNull(filterUpdated);
Assert.AreEqual(filter.PresentationTimeRange.Timescale, filterUpdated.PresentationTimeRange.Timescale);
Assert.AreEqual((ulong)500, filterUpdated.PresentationTimeRange.Timescale);
//We don't have acess to asset filters here
var globalFilter = _mediaContext.Filters.Where(c => c.Name == filterName).FirstOrDefault();
Assert.IsNull(globalFilter);
//Why we are failing here
filter.Delete();
asset = _mediaContext.Assets.Where(c => c.Id == asset.Id).FirstOrDefault();
Assert.IsNotNull(asset);
Assert.AreEqual(0,asset.AssetFilters.Count());
globalFilter = _mediaContext.Filters.Where(c => c.Name == filterName).FirstOrDefault();
Assert.IsNull(globalFilter);
}