/// <summary> /// Initializes a new instance of the <see cref="MediaJson"/> class. /// </summary> /// <param name="media">The media.</param> public MediaJson(Media media) { MediaId = media.MediaId; CommentCount = media.CommentCount; CreateDate = media.CreateDate; Day = media.Day; Description = media.Description; Month = media.Month; Status = media.Status; Title = media.Title; UserId = media.Owner.UserId; Username = media.Owner.Username; Year = media.Year; }
/// <summary> /// Gets the image link. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public string JustTheImageWebsize(Media media) { MediaFile thumbnail = media.GetImageByPhotoType(PhotoType.Thumbnail); MediaFile websize = media.GetImageByPhotoType(PhotoType.Websize); const string linkFormat = "<a class=\"popupimage\" href=\"{0}\" name=\"{4}\" title=\"{1}\"><img src=\"{2}\" alt=\"{3}\" /></a>"; string link = string.Format(linkFormat, UrlService.CreateImageUrlUsingCloudUrl(media.Owner.Username, websize.FilePath), media.Title, UrlService.CreateImageUrlUsingCloudUrl(media.Owner.Username, thumbnail.FilePath), media.Description, media.MediaId); return link; }
/// <summary> /// Retrieves the type of the by media. /// </summary> /// <param name="media">The media.</param> /// <param name="photoType">Type of the photo.</param> /// <returns></returns> private static MediaFile RetrieveByMediaType(Media media, PhotoType photoType) { MediaFile mediaFile = new MediaFile(); foreach (MediaFile file in media.MediaFiles) { if (file.PhotoType == photoType) { mediaFile = file; break; } } return mediaFile; }
/// <summary> /// Grayscales the specified id. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public ActionResult Grayscale(Media media) { MediaFile thumbnail = media.GetImageByPhotoType(PhotoType.Thumbnail); byte[] fileBytes = _imageService.GetFileBytes(thumbnail, Owner); string contentType = _imageService.GetContentType(thumbnail); Bitmap bitmap = _imageConverter.ConvertByteArrayToBitmap(fileBytes); Bitmap grayScale = _imageConverter.ConvertToGrayScale(bitmap); byte[] grayScaleBytes = _imageConverter.ConvertBitmaptoBytes(grayScale, ImageFormat.Jpeg); bitmap.Dispose(); grayScale.Dispose(); return File(grayScaleBytes, contentType); }
/// <summary> /// Updates the details. /// </summary> /// <param name="media">The media.</param> /// <param name="batchId">The batch id.</param> public void UpdateDetails(Media media, Guid batchId) { UploadBatch batch = _mediaQueueRepository.GetUploadBatch(batchId); AddMediaToAlbum(batch, media.MediaId); _mediaQueueRepository.InsertBatchIdAndMediaId(batchId, media.MediaId); media.Tags = batch.Tags; media.Day = (batch.Day ?? media.Day); media.Month = (batch.Month ?? media.Month); media.Year = (batch.Year ?? media.Year); media.Status = batch.MediaStatus.ParseEnum<MediaStatus>(); _mediaRepository.Save(media); _uploaderMediaRepository.UpdateMediaStatus(media.MediaId, MediaUploadState.Queued); SaveLocation(batch, media.Owner.UserId); }
/// <summary> /// Gets the image link. /// </summary> /// <param name="set">The set.</param> /// <param name="media">The media.</param> /// <returns></returns> public static string GetImageLink(string set, Media media) { MediaFile thumbnail = media.GetImageByPhotoType(PhotoType.Thumbnail); MediaFile websize = media.GetImageByPhotoType(PhotoType.Websize); IUserUrlService userUrlService = GetUserUrlService(); const string linkFormat = "<a id=\"{4}\" class=\"showimage lightbox\" name=\"{3}\" rel=\"{2}\" href=\"{5}\" title=\"{1}\"><img src=\"{0}\" alt=\"{1}\" /></a>"; string link = string.Format(linkFormat, userUrlService.CreateImageUrlUsingCloudUrl(media.Owner.Username, thumbnail.FilePath), media.Title, userUrlService.CreateImageUrlUsingCloudUrl(media.Owner.Username, websize.FilePath), media.MediaId, media.Owner.Username, userUrlService.UserUrl(media.Owner.Username, "photos/show/" + set + "/#/photo/" + media.MediaId)); return link; }
/// <summary> /// Gets the image link. /// </summary> /// <param name="media">The media.</param> /// <param name="cssClass">The CSS class.</param> /// <param name="set">The set.</param> /// <param name="type">The type.</param> /// <returns></returns> public static string GetImageDetailLinkForFirst(Media media, string cssClass, string set, PhotoType type) { IUserUrlService userUrlService = GetUserUrlService(); Func<string, string> title = s => (string.IsNullOrEmpty(media.Title) ? string.Empty : string.Format("title=\"{0} - {1} {2}\"", media.Title, media.Owner.FirstName, media.Owner.LastName)); MediaFile thumbnail = media.GetImageByPhotoType(type); const string linkFormat = "<a class=\"{5} lightbox\" name=\"{6}\" href=\"{0}\" {1} ><img src=\"{2}\" alt=\"{3}\" {4} /></a>"; string link = string.Format(linkFormat, userUrlService.UserUrl(media.Owner.Username, "photos/show/" + set + "/#/photo/" + media.MediaId), title(media.Title), userUrlService.CreateImageUrl(media.Owner.Username, thumbnail.FilePath), media.Title, title(media.Title), cssClass, media.MediaId); return link; }
/// <summary> /// Gets the image link. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public string GetImageLink(Media media) { Func<string, string> title = s => (string.IsNullOrEmpty(media.Title) ? string.Empty : string.Format("title=\"{0} - {1} {2}\"", media.Title, media.Owner.FirstName, media.Owner.LastName)); MediaFile thumbnail = media.GetImageByPhotoType(PhotoType.Thumbnail); MediaFile websize = media.GetImageByPhotoType(PhotoType.Websize); const string linkFormat = "<a class=\"{5}\" id=\"{7}\" name=\"{6}\" rel=\"{0}\" href=\"{8}\" {1} ><img src=\"{2}\" alt=\"{3}\" {4} /></a>"; string link = string.Format(linkFormat, UrlService.CreateImageUrl(media.Owner.Username, websize.FilePath), title(media.Title), UrlService.CreateImageUrl(media.Owner.Username, thumbnail.FilePath), media.Title, title(media.Title), "lightbox showimage", media.MediaId, media.Owner.Username, UrlService.UserUrl(media.Owner.Username, "photos/show/#/photo/" + media.MediaId)); return link; }
/// <summary> /// Gets the image link.` /// </summary> /// <param name="set">The set.</param> /// <param name="media">The media.</param> /// <returns></returns> public string GetImageLink(string set, Media media) { return PhotoHtmlHelper.GetImageLink(set, media); }
public ActionResult Edit(Media media, SavedPhotoView savedPhotoView) { media = Mapper.Map(savedPhotoView, media); _mediaRepository.Save(media); EditPhotoView view = new EditPhotoView { UIMessage = "Photo details saved."}; view = SetAuthorizationAndUrlService(view); return View(view); }
public ActionResult Leave(Media media) { List<Comment> comments = _commentRepository.RetrieveAllByMediaId(media.MediaId); IDictionary<string, string> crumb = CommentCrumb(media, media.MediaId); CommentsView commentsView = ModelFactory<CommentsView>(new { media, comments }); return View(commentsView, crumb); }
/// <summary> /// Fullsizes the specified media id. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public ActionResult Medium(Media media) { MediaFile fullsizeFile = media.GetImageByPhotoType(PhotoType.Websize); return GetFile(fullsizeFile); }
/// <summary> /// Inserts Media into the Medias Table /// </summary> /// <param name="media">A new populated media.</param> /// <returns>Insert Count</returns> private int Insert(Media media) { DbParameter outParameter = database.MakeParameter("@Identity", 0, ParameterDirection.Output); List<DbParameter> parameters = new List<DbParameter> { database.MakeParameter("@Title",media.Title), database.MakeParameter("@Description",media.Description), database.MakeParameter("@MediaMonth",media.Month), database.MakeParameter("@MediaYear",media.Year), database.MakeParameter("@MediaDay",media.Day), database.MakeParameter("@UserId",media.Owner.UserId), database.MakeParameter("@Status",media.Status.ToString()), database.MakeParameter("@Tags",media.Tags), outParameter }; database.NonQuery("Media_Insert", parameters); int id = Convert.ToInt32(outParameter.Value); foreach (MediaFile file in media.MediaFiles) { file.MediaId = id; _mediaFileRepository.Save(file); } TagCollection interalTagCollection = new TagCollection(media.Tags); foreach (Tag tag in interalTagCollection.Tags) { _tagRepository.InsertTagWithMediaId(tag, id); } return id; }
/// <summary> /// Gets the random album image. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> private string GetRandomAlbumImage(Media media) { string randomImageLink = UrlService.CreateRootUrl("content/images/nophotosfound.png"); if (media != null) { string filePath = media.GetImageByPhotoType(PhotoType.Thumbnail).FilePath; if (!string.IsNullOrEmpty(filePath)) { randomImageLink = UrlService.CreateImageUrl(filePath); } } return randomImageLink; }
/// <summary> /// Gets the media details. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public string GetMediaDetails(Media media) { return string.Format("{0}{1}<p style=\"margin-bottom:0px;\" >tags: {2}", string.Format("<strong style=\"font-size:11px;color:#bbb;\">{0}</strong>", media.Title), string.Format("<p>{0}</p>", media.Description), HyperlinkTags(media.Tags, media.Owner.Username)); }
/// <summary> /// Gets the image HTML. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public string GetImageHtml(Media media) { const string htmlFormat = @"<img alt=""{0}"" id=""image"" src=""{1}"">"; MediaFile mediaFile = media.GetImageByPhotoType(PhotoType.Websize); return string.Format(htmlFormat, media.Title, UrlService.CreateImageUrl(mediaFile.FilePath)); }
/// <summary> /// Gets the media. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public JsonResult Details(Media media) { string linkHtml = PhotoHtmlHelper.GetPhotoDetailLinks(media, Authorization.IsOwner); return Json(new { detailHtml = linkHtml, mediaTitle = media.Title, mediaDescription = media.Description }, "application/json", JsonRequestBehavior.AllowGet); }
/// <summary> /// Gets the photo detail links. /// </summary> /// <param name="media">The media.</param> /// <param name="isAuthenticated">if set to <c>true</c> [is authenticated].</param> /// <returns></returns> private string GetDetailSection(Media media, bool isAuthenticated) { ITagService tagService = DependencyInjection.Resolve<ITagService>(); string html = @"<ul> <li> <span>"; html += (isAuthenticated ? @"<a id=""editlink"" href=""{0}/photos/edit/{1}"">edit</a>" : string.Empty); html += @"</span> </li>"; html += "{2}"; html += @" </li> {3} <li><span><a href=""{0}/comments/leave/{1}"">comments ({4})</a></span> </ul>"; string tags = string.Empty; if (!string.IsNullOrEmpty(media.Tags)) { const string tagFormat = @"<li><span>tags:</span> {0}</li>"; string renderedTags = tagService.HyperlinkTheTags(media.Tags, media.Owner.Username); tags = string.Format(tagFormat, renderedTags); } string date = PhotoHtmlHelper.GetDate(media); string content = string.Format(html, UrlService.UserRoot(media.Owner.Username), HttpUtility.HtmlEncode(media.MediaId.ToString()), date, tags, media.CommentCount); return content; }
/// <summary> /// Fullsizes the specified media id. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public ActionResult Small(Media media) { MediaFile fullsizeFile = media.GetImageByPhotoType(PhotoType.Thumbnail); return GetFile(fullsizeFile); }
/// <summary> /// Rotates the right. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public ActionResult RotateRight(Media media) { int status = Rotate(media, _rotateService.RotateRight); return Content(status.ToString()); }
/// <summary> /// Metas the specified id. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public ActionResult Meta(Media media) { string content = PhotoHtmlHelper.GetPhotoDetailLinks(media, Authorization.IsOwner); return Content(content); }
/// <summary> /// Renders the details. /// </summary> /// <param name="m">The m.</param> /// <returns></returns> public string RenderDetails(Media m) { return string.Format("<span class=\"title\" >{0}</span>", m.Title) + string.Format("<p>{0}</p>", m.Description) + (string.IsNullOrEmpty(m.Tags) ? string.Empty : "<p style=\"margin-bottom:0px;\" >tags:" + RenderAdminTags(m.Tags, Authorization.Owner.Username, m.MediaId) + " </p>"); }
/// <summary> /// Renders the edit links. /// </summary> /// <param name="m">The m.</param> /// <returns></returns> public string RenderEditLinks(Media m) { return string.Format("<a class=\"delete\" name=\"{1}\" style='float: right;margin-right:10px;' href=\"/{0}/photos/delete/{1}\" title=\"delete photo\"><img style='background-color:transparent;border:none;' src='/content/images/cancel.png' alt='delete photo' /></a>", Authorization.Owner.Username, m.MediaId) + string.Format("<a class=\"edit\" name=\"{1}\" style='float: right;margin-right:30px;' href=\"/{0}/photos/edit/{1}\" title=\"edit photo\"><img style='background-color:transparent;border:none;' src='/content/images/pencil.png' alt='edit' /></a>", Authorization.Owner.Username, m.MediaId); }
/// <summary> /// Fullsizes the specified media id. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public ActionResult Fullsize(Media media) { MediaFile fullsizeFile = media.GetImageByPhotoType(PhotoType.Original); return GetFile(fullsizeFile); }
/// <summary> /// Initializes a new instance of the <see cref="MediaComments"/> class. /// </summary> /// <param name="media">The media.</param> /// <param name="comment">The comment.</param> public MediaComments(Media media, Comment comment) { Media = media; Comment = comment; }
/// <summary> /// Gets the image SRC. /// </summary> /// <returns></returns> public string GetImageSrc(Media media, PhotoType type) { MediaFile webSize = media.GetImageByPhotoType(type); string url = UrlService.CreateImageUrl(media.Owner.Username, webSize.FilePath); return url; }
/// <summary> /// Saves the specified media. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public int Save(Media media) { int id = media.MediaId > 0 ? Update(media) : Insert(media); return id; }
/// <summary> /// Sets the bread crumb. /// </summary> /// <param name="media">The media.</param> /// <param name="photoId">The photo id.</param> /// <returns></returns> public IDictionary<string, string> CommentCrumb(Media media, int photoId) { IDictionary<string, string> crumbs = SetBreadCrumb(new KeyValuePair<string, string>((string.IsNullOrEmpty(media.Title) ? "Untitled" : media.Title), UrlService.UserUrl(string.Format("photos/show/#/photo/{0}", photoId)))); crumbs.Add("Comments", UrlService.UserUrl(string.Format("comments/leave/{0}", photoId))); return crumbs; }
/// <summary> /// Updates the Media table by the primary key, if the Media is dirty then an update will occur /// </summary> /// <param name="media">a populated media</param> /// <returns>update count</returns> private int Update(Media media) { List<DbParameter> parameters = new List<DbParameter> { database.MakeParameter("@MediaId",media.MediaId), database.MakeParameter("@Title",media.Title), database.MakeParameter("@Description",media.Description), database.MakeParameter("@MediaMonth",media.Month), database.MakeParameter("@MediaYear",media.Year), database.MakeParameter("@MediaDay",media.Day), database.MakeParameter("@UserId",media.Owner.UserId), database.MakeParameter("@Status",media.Status.ToString()), database.MakeParameter("@Tags",media.Tags), database.MakeParameter("@LocationName",media.Location.LocationName), database.MakeParameter("@Latitude",media.Location.Latitude), database.MakeParameter("@Longitude",media.Location.Longitude), database.MakeParameter("@Zoom",media.Location.Zoom), database.MakeParameter("@MapTypeId",media.Location.MapTypeId) }; database.NonQuery("Media_Update", parameters); _tagRepository.Update(media.Tags, media.MediaId); return 0; }
/// <summary> /// Gets the media. /// </summary> /// <param name="media">The media.</param> /// <returns></returns> public JsonResult GetDetails(Media media) { MediaFile file = media.GetImageByPhotoType(PhotoType.Websize); string imageSrc = UrlService.CreateImageUrl(file.FilePath); string details = GetDetailSection(media, Authorization.IsOwner); Resizer resizer = new Resizer(); resizer.Resize(file.Width, file.Height, Authorization.Owner.Settings.WebViewMaxWidth, Authorization.Owner.Settings.WebViewMaxHeight); return Json(new { imageSrc, media.Title, media.Description, details, Authorization.Owner.DisplayName, resizer.Width, resizer.Height }, "application/json"); }