コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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();
        }