public static async Task <IEntity> GetPublicLink(IWebMClient webMClient, string rendition, long assetId) { var filters = new List <QueryFilter> { new DefinitionQueryFilter() { Name = MConstants.PublicLink.DefinitionName }, new PropertyQueryFilter() { Property = MConstants.PublicLink.Resource, Value = rendition }, new RelationQueryFilter() { ParentId = assetId, Relation = MConstants.PublicLink.AssetToPublicLink } }; var query = new Query() { Take = 1, Filter = new CompositeQueryFilter() { Children = filters, CombineMethod = CompositeFilterOperator.And } }; return(await webMClient.Querying.SingleAsync(query, PublicLinkLoadConfiguration()).ConfigureAwait(false)); }
public static async Task <IEntity> GetorCreatePublicLink(IWebMClient webMClient, string rendition, long assetId) { var publicLink = await GetPublicLink(webMClient, rendition, assetId); if (publicLink == null) { webMClient.Logger.Debug("publicLink not found. Will create one"); publicLink = await CreatePublicLink(webMClient, rendition, assetId); } return(publicLink); }
public static async Task <IEntity> CreatePublicLink(IWebMClient webMClient, string rendition, long assetId) { var publicLink = await webMClient.EntityFactory.CreateAsync(MConstants.PublicLink.DefinitionName).ConfigureAwait(false); publicLink.SetPropertyValue(MConstants.PublicLink.Resource, rendition); var relation = publicLink.GetRelation <IChildToManyParentsRelation>(MConstants.PublicLink.AssetToPublicLink); if (relation == null) { webMClient.Logger.Error("Unable to create public link: no AssetToPublicLink relation found."); return(null); } relation.Parents.Add(assetId); var id = await webMClient.Entities.SaveAsync(publicLink).ConfigureAwait(false); return(await webMClient.Entities.GetAsync(id, PublicLinkLoadConfiguration()).ConfigureAwait(false)); }
static async Task Main(string[] args) { var endpoint = new Uri("https://twt-demo.stylelabs.io/"); var oauth = new OAuthPasswordGrant() { ClientId = "the_client_id", ClientSecret = "the_client_secret", UserName = "******", Password = "******" }; _client = MClientFactory.CreateMClient(endpoint, oauth); //await CreateAssetsFromCSV(); await CreateSmartRenditions(); Console.ReadLine(); }