Esempio n. 1
0
 public MediaDescriptorAppService([NotNull] IBlobContainer <MediaContainer> mediaContainer,
                                  [NotNull] IMediaDescriptorRepository mediaDescriptorRepository,
                                  [NotNull] MediaDescriptorManager mediaDescriptorManager,
                                  [NotNull] IMediaDescriptorDefinitionStore mediaDescriptorDefinitionStore)
 {
     MediaContainer                 = mediaContainer ?? throw new ArgumentNullException(nameof(mediaContainer));
     MediaDescriptorRepository      = mediaDescriptorRepository ?? throw new ArgumentNullException(nameof(mediaDescriptorRepository));
     MediaDescriptorManager         = mediaDescriptorManager ?? throw new ArgumentNullException(nameof(mediaDescriptorManager));
     MediaDescriptorDefinitionStore = mediaDescriptorDefinitionStore ?? throw new ArgumentNullException(nameof(mediaDescriptorDefinitionStore));
 }
Esempio n. 2
0
        public virtual async Task <MediaDescriptorDto> CreateAsync(string entityType, CreateMediaInputWithStream inputStream)
        {
            var definition = await MediaDescriptorDefinitionStore.GetAsync(entityType);

            /* TODO: Shouldn't CreatePolicies be a dictionary and we check for inputStream.EntityType? */
            await CheckAnyOfPoliciesAsync(definition.CreatePolicies);

            using (var stream = inputStream.File.GetStream())
            {
                var newEntity = await MediaDescriptorManager.CreateAsync(entityType, inputStream.Name, inputStream.File.ContentType, inputStream.File.ContentLength ?? 0);

                await MediaContainer.SaveAsync(newEntity.Id.ToString(), stream);

                await MediaDescriptorRepository.InsertAsync(newEntity);

                return(ObjectMapper.Map <MediaDescriptor, MediaDescriptorDto>(newEntity));
            }
        }