Exemple #1
0
        public static async Task <bool> UploadPost(this PostModel post, string userId, IPhoto photoUploads,
                                                   IPhotoAccessor photoAccessor, IYoutube youtubeuploader, IVideo videoContext, IPost postContext, Post model)
        {
            model.UserId = userId;
            var postId = Guid.NewGuid();

            model.Id         = postId;
            model.DatePosted = DateTime.Now;
            ;
            if (post.Photo != null)
            {
                var photoUpload = photoAccessor.AddPhoto(post.Photo);
                var photo       = new Photo
                {
                    PostId     = postId,
                    PublicId   = photoUpload.PublicId,
                    UploadTime = DateTime.Now,
                    Url        = photoUpload.Url,
                    UserId     = userId
                };


                await photoUploads.UploadImageDb(photo);
            }

            if (post.Video != null)
            {
                var video = new Videos();

                UploadViewModel upload = new UploadViewModel();
                upload.Description = post.Video.Name;
                upload.Type        = post.Video.ContentType;
                upload.CategoryId  = String.Empty;
                upload.Title       = post.Video.FileName;
                upload.VideoTags   = new string[] { "tag1", "tag2" };
                upload.Private     = false;
                var videoUpload = await youtubeuploader.UploadVideo(upload, post.Video);

                if (!string.IsNullOrEmpty(videoUpload.VideoId))
                {
                    video.DateUploaded = DateTime.Now;
                    video.UserId       = userId;
                    video.PublicId     = videoUpload.VideoId;
                    video.PostId       = model.Id;
                    await videoContext.Post(video);
                }
            }

            await postContext.Post(model);

            return(await videoContext.SaveChanges());
        }
        public async Task <ActionResult> Upload([FromForm] IFormFile video)
        {
            UploadViewModel upload = new UploadViewModel();

            upload.Description = video.Name;
            upload.Type        = video.ContentType;
            upload.CategoryId  = String.Empty;
            upload.Title       = video.FileName;
            upload.VideoTags   = new string[] { "tag1", "tag2" };
            upload.Private     = false;
            var videoUpload = await _youTubePlugin.UploadVideo(upload, video);

            return(Ok(videoUpload));
        }