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