Ejemplo n.º 1
0
        public static async Task <bool> UpdatePost(this PostModel post, string userId, IPhoto photoUploads,
                                                   IPhotoAccessor photoAccessor, IYoutube youtubeuploader, IVideo videoContext, IPost postContext, Post model,
                                                   IMapper mapper)
        {
            model.UserId = userId;
            PhotoUpLoadResult photoUpload;

            if (post.Photo != null)
            {
                photoUpload = photoAccessor.AddPhoto(post.Photo);
                var storedPhotoPublicId = await photoUploads.FindPhotoId(post.Id, post.ImageId);

                if (photoUpload != null)
                {
                    var delete = photoAccessor.DeletePhoto(storedPhotoPublicId.PublicId);
                    if (delete.ToLower().Equals("ok"))
                    {
                        var photo = new PhotoModel
                        {
                            PublicId   = photoUpload.PublicId,
                            Url        = photoUpload.Url,
                            UploadTime = DateTime.Now
                        };
                        storedPhotoPublicId.PublicId   = photo.PublicId;
                        storedPhotoPublicId.Url        = photo.Url;
                        storedPhotoPublicId.UploadTime = photo.UploadTime;

                        await photoUploads.Update(storedPhotoPublicId);

                        //
                    }
                }
            }

            if (post.Video != null)
            {
                var storedVideoId = await videoContext.GetVideoPublicId(post.Id, post.VideoId);


                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.UpdateVideo(storedVideoId.PublicId, post.Video, upload);

                if (!string.IsNullOrEmpty(videoUpload.VideoId))
                {
                    // video

                    storedVideoId.DateUpdated = DateTime.Now;
                    storedVideoId.PublicId    = videoUpload.VideoId;
                    await videoContext.Update(storedVideoId);

                    // mapper.Map(video,storedVideoId);
                }
            }


            return(await videoContext.SaveChanges());
        }