Beispiel #1
0
        /// <summary>
        /// Creates the media element.
        /// </summary>
        /// <param name="mediaDto">The media dto.</param>
        /// <returns></returns>
        public async Task <Guid> CreateMediaElement(CreateMediaRequestDto mediaDto)
        {
            var token   = this.authDataStorage.GetToken();
            var mediaId = await this.healthLibraryService.CreateMediaElement(mediaDto, this.customerContext.Customer.Id, token);

            return(mediaId);
        }
Beispiel #2
0
        public async Task <Guid> CreateMediaElement(CreateMediaRequestDto mediaDto, int customerId, string token)
        {
            var url = string.Format("/api/{0}/medias", customerId);

            var createMediaResponse = await this.apiClient.SendRequestAsync <MediaResponseDto>(url, mediaDto, Method.POST, null, token);

            return(createMediaResponse.Id);
        }
Beispiel #3
0
        private async Task <Guid?> CreateMedia(MediaViewModel mediaElementModel)
        {
            if (mediaElementModel == null)
            {
                return(null);
            }

            if (mediaElementModel.Id.HasValue)
            {
                return(mediaElementModel.Id.Value);
            }

            if (string.IsNullOrEmpty(mediaElementModel.FileName))
            {
                return(null);
            }

            var fileContent = this.GetFileFromTempFolder(mediaElementModel.FileName);

            if (fileContent.Length <= 0)
            {
                return(null);
            }

            var fileContentBase64 = Convert.ToBase64String(fileContent);

            var createMediaDto = new CreateMediaRequestDto()
            {
                Name             = mediaElementModel.Name,
                OriginalFileName = mediaElementModel.FileName,
                Content          = fileContentBase64,
                ContentType      = mediaElementModel.ContentType,
                Tags             = mediaElementModel.Tags
            };

            return(await this.CreateMediaElement(createMediaDto));
        }
        public async Task <IHttpActionResult> CreateMedia(int customerId, CreateMediaRequestDto request)
        {
            var createResult = await controllerHelper.CreateMedia(customerId, request);

            if (createResult.Status != CreateMediaStatus.Success)
            {
                return(Content(
                           HttpStatusCode.BadRequest,
                           new ErrorResponseDto()
                {
                    Error = ErrorCode.InvalidRequest,
                    Message = ErrorCode.InvalidRequest.Description(),
                    Details = createResult.Status.Description()
                }
                           ));
            }

            return(Created(
                       new Uri(Request.RequestUri, createResult.Content.ToString()),
                       new PostResponseDto <Guid> {
                Id = createResult.Content
            }
                       ));
        }
 public async Task <Guid> CreateMediaElement(CreateMediaRequestDto mediaDto, int customerId, string token)
 {
     return(await this.healthLibraryDataProvider.CreateMediaElement(mediaDto, customerId, token));
 }
Beispiel #6
0
        /// <summary>
        /// Creates the specified media dto.
        /// </summary>
        /// <param name="customerId">The customer identifier.</param>
        /// <param name="mediaDto">The media dto.</param>
        /// <returns></returns>
        public async Task <OperationResultDto <Guid, CreateMediaStatus> > CreateMedia(int customerId, CreateMediaRequestDto mediaDto)
        {
            var contentModel = Mapper.Map <CreateMediaRequestDto, ContentModel>(mediaDto);

            var uploadResult = await contentStorage.UploadContent(contentModel);

            if (uploadResult == null)
            {
                return(new OperationResultDto <Guid, CreateMediaStatus>()
                {
                    Status = CreateMediaStatus.InvalidContentOrSourceContentUrlProvided
                });
            }

            var media = new Media()
            {
                CustomerId          = customerId,
                Name                = mediaDto.Name,
                Description         = mediaDto.Description,
                ContentType         = mediaDto.ContentType,
                ContentLength       = uploadResult.OriginalContentLength,
                Tags                = await tagsService.BuildTagsList(customerId, mediaDto.Tags),
                OriginalStorageKey  = uploadResult.OriginalStorageKey,
                ThumbnailStorageKey = uploadResult.ThumbnailStorageKey,
                OriginalFileName    = uploadResult.OriginalFileName
            };

            var createdMedia = await mediaService.Create(media);

            await tagsSearchCacheHelper.AddOrUpdateTags(customerId, createdMedia.Tags.Select(t => t.Name).ToList());

            var unusedTags = await tagsService.RemoveUnusedTags(customerId);

            await tagsSearchCacheHelper.RemoveTags(customerId, unusedTags);

            return(new OperationResultDto <Guid, CreateMediaStatus>()
            {
                Content = createdMedia.Id,
                Status = CreateMediaStatus.Success
            });
        }