/// <summary>
        /// 
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        /// <remarks>The way Gallerific works it takes the url from the thumnail source...</remarks>
        public static IHtmlString RenderForCfGallerific(this HtmlHelper helper, Media m)
        {
            var htmlContent = string.Empty;

            if (m.Type == MediaType.Image) { htmlContent = m.RenderMediaHtml(); }
            else if (m.Type == MediaType.Youtube) { htmlContent = m.RenderMediaHtml(); }
            else if (m.Type == MediaType.Vimeo) { htmlContent = m.RenderMediaHtml(); }
            else { throw new NotImplementedException(m.Type.ToString() + " rendering not yet implement."); }

            return helper.Raw(htmlContent);
        }
        public ObjectMedia AddMediaTag(Media media, Guid onObjectID)
        {
            var alreadyTagged = media.ObjectMedias.Where(om => om.OnOjectID == onObjectID).Count() > 0;

            if (media.AddedByUserID != CfIdentity.UserID & !CfPrincipal.IsGod()) { throw new AccessViolationException("Cannot tag media that was not added by you"); }
            if (alreadyTagged) { throw new AccessViolationException("Cannot tag media that already has tag with objID " + onObjectID); }

            var tag = new ObjectMedia() { MediaID = media.ID, OnOjectID = onObjectID };
            medRepo.AddMediaTag(tag);

            return tag;
        }
        public static IHtmlString RenderThumbForCfGallerific(this HtmlHelper helper, Media m)
        {
            var thumbImageUrl = m.ThumbUrl();

            var rating = "<i>Rate me!</i>";
            if (m.Rating.HasValue)
            {
                rating = string.Format("<img src='{0}/ratings/{1}.bmp' class='st' />", Stgs.StaticRt, m.Rating.Value.GetStarsString());
            }

            return helper.Raw(string.Format(thumbFormat, blankPNG, m.Title, rating, thumbImageUrl, m.Title));
        }
        public void AddMedia(CheckIn ci, Media media)
        {
            if (ci.UserID != CfIdentity.UserID) { throw new UnauthorizedAccessException("Cannot add media to a check in that does not belong to you"); }
            if (ci.Media.Count >= 5) { throw new NotSupportedException("Climbfind only supports up to 5 pieces of media per check in."); }

            checkInRepo.AddMedia(ci, media);

            //-- Make sure our feed post renders correctly
            if (ci.Media.Where(m => m.ID == media.ID).Count() == 0)
            {
                ci.Media.Add(media);
            }

            //-- Update the post so the feed shows accurate data
            postSvc.UpdateCheckInPost(ci);
        }
        public Media CreateImageMedia(Media obj, Guid objID, Stream stream)
        {
            var imgID = Guid.NewGuid().ToString().Substring(0,12);

            string fileName = string.Format("{0}.jpg", imgID);

            imgManager.ProcessAndSaveImageFromStream(stream, ImageManager.MediaPhotosPath, fileName, null, ImageResizeOpts.MediaImage640, ImageCrompressOpts.ImageMedia, null);
            imgManager.SaveThumb75x75_MediumCompressed(stream, ImageManager.MediaPhotosTmPath, fileName);

            obj.TypeID = (byte)MediaType.Image;
            obj.Content = fileName;

            if (string.IsNullOrWhiteSpace(obj.ContentType)) { obj.ContentType = "image/jpg"; }

            return CreateMedia(obj, objID);
        }
        private void FixupMedia(Media previousValue)
        {
            if (previousValue != null && previousValue.ObjectMedias.Contains(this))
            {
                previousValue.ObjectMedias.Remove(this);
            }

            if (Media != null)
            {
                if (!Media.ObjectMedias.Contains(this))
                {
                    Media.ObjectMedias.Add(this);
                }
                if (MediaID != Media.ID)
                {
                    MediaID = Media.ID;
                }
            }
        }
        public void RemoveMedia(CheckIn ci, Media media)
        {
            if (ci.UserID != CfIdentity.UserID) { throw new UnauthorizedAccessException("Cannot remove media from check in that does not belong to you"); }

            checkInRepo.RemoveMedia(ci, media.ID);
            new MediaService().DeleteMedia(media);

            //-- Update the post so the feed shows accurate data
            postSvc.UpdateCheckInPost(ci);
        }
 public Media CreateMedia(Media obj, Guid objID)
 {
     Guid newId = Guid.NewGuid();
     obj.ID = newId;
     obj.AddedUtc = DateTime.UtcNow;
     obj.AddedByUserID = currentUser.UserID;
     obj.ObjectMedias.Add(new ObjectMedia { MediaID = newId, OnOjectID = objID });
     obj.NameUrlPart = obj.Title.ToUrlFriendlyString();
     return medRepo.Create(obj);
 }
 public Media UpdateMedia(Media obj)
 {
     return medRepo.Update(obj);
 }
        public void RemoveMediaTag(Media media, Guid onObjectID)
        {
            var tag = media.ObjectMedias.Where(om => om.OnOjectID == onObjectID).SingleOrDefault();

            if (media.AddedByUserID != CfIdentity.UserID & !CfPrincipal.IsGod()) { throw new AccessViolationException("Cannot untag media that was not added by you"); }
            if (tag == null) { throw new AccessViolationException("Cannot tag media that already has tag with objID " + onObjectID); }

            medRepo.RemoveMediaTag(tag);
        }
        public void DeleteMedia(Media obj)
        {
            if (obj.AddedByUserID != CfIdentity.UserID & !CfPrincipal.IsGod())
            {
                throw new AccessViolationException("Cannot delete media that was not added by you");
            }

            //var comments = obj.MediaOpinion;
            medRatingRepo.Delete(medRatingRepo.GetAll().Where(r=>r.MediaID == obj.ID).Select(r=>r.ID).ToList());

            medRepo.Delete(obj.ID);
        }
        public Media CreateYouTubeMedia(Media obj, Guid objID, YouTubeApiResult youTubeResult)
        {
            var imgID = Guid.NewGuid().ToString().Substring(0, 12);
            string fileName = string.Format("{0}.jpg", imgID);

            using (Stream stream = new ImageDownloader().DownloadImageAsStream(youTubeResult.Thumbnail))
            {
                imgManager.SaveThumb75x75_MediumCompressed(stream, ImageManager.MediaPhotosTmPath, fileName);
            }

            obj.FeedVisible = true; //-- Movies are always visible

            obj.TypeID = (byte)MediaType.Youtube;
            obj.Content = (new YouTubeMediaData() { Thumbnail = fileName, YouTubeID = youTubeResult.ID }).ToJson();
            obj.ContentType = "application/json";
            obj.Description = youTubeResult.Description;
            obj.Author = youTubeResult.Author;
            obj.TakenDate = DateTime.Parse(youTubeResult.Published).Date;

            return CreateMedia(obj, objID);
        }
Exemple #13
0
 public void AddMedia(CheckIn checkIn, Media media)
 {
     Ctx.CheckIns.Where(ci => ci.ID == checkIn.ID).Single().Media.Add(Ctx.Medias.Where(m => m.ID == media.ID).Single());
     SaveChanges();
 }
        public Media SaveMediaWithTag(AddViewModel model)
        {
            var id = model.ObjectId;
            var type = model.Type;
            var media = new Media() { FeedVisible = true };
            media.InjectFrom(model);

            if (type == MediaType.Image)
            {
                CropAndSaveImageFromUrlAndDeleteOriginalAtUrl(model.Content,
                    stream => mediaSvc.CreateImageMedia(media, id, stream).Content);
            }
            else if (type == MediaType.Youtube)
            {
                YouTubeApiResult data = new JavaScriptSerializer().Deserialize<YouTubeApiResult>(model.Content);
                if (data.Description.Length > 1499) { data.Description = data.Description.Substring(0, 1499); }
                mediaSvc.CreateYouTubeMedia(media, id, data);
            }
            else if (type == MediaType.Vimeo)
            {
                VimeoApiResult data = new JavaScriptSerializer().Deserialize<VimeoApiResult>(model.Content);
                if (data.Description.Length > 1499) { data.Description = data.Description.Substring(0, 1499); }
                mediaSvc.CreateVimeoMedia(media, id, data);
            }
            else
            {
                throw new NotImplementedException("JSK Cmon you have implemented adding media type : " + type.ToString());
            }

            return media;
        }