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)); }