Example #1
0
        public async Task PostLike(int id, string extension, LikeRequest likeRequest)
        {
            HttpStatusCode result = await UserMediaOperations.AddOrRemoveMediaLikeAsync(
                DbContext, UserId, id, likeRequest);

            result.ThrowHttpResponseExceptionIfNotSuccessful();
        }
Example #2
0
        public async Task PostComment(int mediaId, string extension, CommentRequest commentRequest)
        {
            HttpStatusCode result = await UserMediaOperations.AddMediaCommentAsync(
                DbContext, UserId, mediaId, commentRequest);

            result.ThrowHttpResponseExceptionIfNotSuccessful();
        }
Example #3
0
        public async Task <AlbumItem> Get(int id)
        {
            AlbumItem result = await UserMediaOperations.GetMediaAsync(
                DbContext, id);

            if (result == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            return(result);
        }
Example #4
0
        public async Task <ActionResult> Item(int mediaId)
        {
            AlbumItem item = await UserMediaOperations.GetMediaAsync(DbContext, mediaId);

            if (item == null)
            {
                return(HttpNotFound());
            }

            UserInfo owningUser = await GetUserInfoAsync(item.UserId);

            DbContext.Entry(owningUser).Reference(u => u.Avatar);

            return(View(await SetVmEditorInfo(new MediaViewModel
            {
                FullName = owningUser.Name,
                AvatarUrl = UserOperations.GetAvatarUrl(owningUser),
                Detail = item
            })));
        }
Example #5
0
        /// <summary>
        /// Accepts images in the usual form multi file upload format.
        /// </summary>
        /// <returns>
        /// Provides the ids of the user images created.
        /// </returns>
        public async Task <MediaUploadResults> PostAsync()
        {
            if (Request.Content.IsMimeMultipartContent())
            {
                string folderPath    = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
                bool   createdFolder = false;
                try
                {
                    Directory.CreateDirectory(folderPath);
                    createdFolder = true;

                    UserInfo userEntity = await GetUserInfoAsync();

                    var r = new MultipartFormDataStreamProvider(folderPath);
                    await Request.Content.ReadAsMultipartAsync(r);

                    IEnumerable <UserMediaOperations.UploadedMedia> items =
                        from file in r.FileData
                        select new UserMediaOperations.UploadedMedia
                    {
                        OriginalName  = file.Headers.ContentDisposition.FileName,
                        LocalFileName = file.LocalFileName
                    };

                    return(await UserMediaOperations.StoreMediaAsync(
                               DbContext, userEntity, items));
                }
                finally
                {
                    if (createdFolder)
                    {
                        Directory.Delete(folderPath, true);
                    }
                }
            }
            else
            {
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid Request!");
                throw new HttpResponseException(response);
            }
        }