public void UpdateImageInfo(PGImage image) { //save info file. PGFolder folder = image.ParentFolder; if (folder == null) { throw new Exception("parent folder doesn't exist"); } folder.WriteFolderFileInfo(); }
public void DeleteComment(Comment comment) { PGImage image = this.GetImageFromVPath(comment.ImageVPath); if (image == null) { throw new ArgumentException("image not found"); } image.Comments.Remove(comment); image.ParentFolder.WriteFolderFileInfo(); }
public void AddComment(string imageVPath, Comment comment) { PGImage image = this.GetImageFromVPath(imageVPath); if (image == null) { throw new ArgumentException("image not found"); } image.Comments.Add(comment); image.ParentFolder.WriteFolderFileInfo(); }
private List <PGImage> GetImagesFromDiskFolder() { DirectoryInfo directory = new DirectoryInfo(PhysicalPath); List <PGImage> images = new List <PGImage>(); foreach (FileInfo file in directory.GetFiles()) { #region Add images found on this folder if (Util.IsValidImage(file.FullName)) { PGImage image = new PGImage(file.FullName); image.FileName = file.Name; image.FriendlyName = Path.GetFileNameWithoutExtension(file.Name).Replace("_", " "); image.ParentFolder = this; images.Add(image); } #endregion } return(images); }
public PGImage GetNextImage(PGImage image) { if (image.ParentFolder != null) { PGFolder parentFolder = image.ParentFolder; //List<PGImage> images = GetImagesFromDiskFolderByVirtualPath(parentFolder); PGImage nextImg = null; bool getNext = false; foreach (PGImage img in parentFolder.Images) { if (getNext) { return(img); } if (img.PhysicalPath == image.PhysicalPath) { getNext = true; } } } return(null); }
public PGImage GetPreviousImage(PGImage image) { //where is this image? if (image.ParentFolder != null) { PGFolder parentFolder = image.ParentFolder; // List<PGImage> images = GetImagesFromDiskFolderByVirtualPath(parentFolder); PGImage prevImg = null; foreach (PGImage img in parentFolder.Images) { if (prevImg != null) { if (img.PhysicalPath == image.PhysicalPath) { return(prevImg); } } prevImg = img; } } return(null); }
public JsonResult EditImageInfo(FormCollection formValues) { GalleryRepository rep = this.GetGalleryRepository(); PGImage image = rep.GetImageFromVPath(formValues["ImageVPathEditImageInfo"]); if (image == null) { Response.StatusCode = 400; return(Json(new { error = "Image not found at " + formValues["ImageVPath"] })); } image.FriendlyName = formValues["ImageFriendlyName"]; image.ImageDescr = formValues["ImageDescription"]; if (!ValidName(image.FriendlyName) || !ValidName(image.ImageDescr)) { Response.StatusCode = 400; return(Json(new { error = "Image not found at " + formValues["ImageVPath"] })); } rep.UpdateImageInfo(image); return(Json(new { ImageFriendlyName = image.FriendlyName, ImageDescr = image.ImageDescr }, JsonRequestBehavior.AllowGet)); }
public void FillPGImage(ref PGImage image) { EXIF exif = new EXIF(); exif.Make = GetMake() != null?GetMake() : ""; exif.WhiteBalance = GetWhiteBalance() != null?GetWhiteBalance() : ""; exif.Aperture = GetFNumber() != null?GetFNumber() : ""; exif.ISO = GetISO() != null?GetISO() : ""; exif.Exposure = GetExposureTime() != null?GetExposureTime() : ""; exif.ExposureBiasValue = GetExposureBiasValue() != null?GetExposureBiasValue() : ""; exif.SubjectDistance = GetSubjectDistance() != null?GetSubjectDistance() : ""; exif.FocalLength = GetFocalLength() != null?GetFocalLength() : ""; exif.Flash = GetFlash() != null?GetFlash() : ""; image.EXIF = exif; }
public ICollection <Comment> GetByImage(string ImageVPath) { PGImage image = GetImageFromVPath(ImageVPath); return(image.Comments); }
/// <summary> /// Reads data from xml cache file. /// </summary> public void ReadFolder() { string filename = ""; Images = GetImagesFromDiskFolder(); NumberNestedImages += NumberImages; if (ExistFolderInfoFile()) { try { lock (locker) { filename = Path.Combine(this.PhysicalPath, cfolderInfo); System.Xml.Serialization.XmlSerializer dxml = new System.Xml.Serialization.XmlSerializer(typeof(PGFolderInfo)); using (System.IO.FileStream xmlStream = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { PGFolderInfo info = dxml.Deserialize(xmlStream) as PGFolderInfo; this.Order = info.Order; this.SortAction = info.SortAction; this.Security = info.Security != null ? info.Security : new SecurityInfo(); foreach (PGImageInfo imageinfo in info.ImagesInfo) { //search for that image. PGImage image = this.Images.Where(r => r.FileName == imageinfo.ImageFileName).FirstOrDefault(); if (image != null) { image.FriendlyName = string.IsNullOrWhiteSpace(imageinfo.ImageFriendlyName) ? image.FileName.Replace("_", " ") : imageinfo.ImageFriendlyName; image.Comments = imageinfo.Comments; foreach (Comment c in image.Comments) { c.ImageVPath = image.VPath; Comments.Add(c); } image.ImageDescr = (imageinfo.ImageDescription != null) ? imageinfo.ImageDescription : ""; } else { //image referenced in db file not found in file system. //do nothing, next time file is written to disk will be gone } } xmlStream.Close(); } } } catch (Exception ex) { throw new Exception("Error reading folder information file on " + filename, ex); } } if (Configuration.GetConfiguration().ReadBackWardsCompatibilityTxtFiles) { //backwards compatibility. any txt file associated to picture? foreach (PGImage image in this.Images) { string txtFile = image.PhysicalPath.Replace(Path.GetExtension(image.PhysicalPath), ".txt"); if (File.Exists(txtFile)) { using (StreamReader sr = new StreamReader(txtFile)) { image.ImageDescr = sr.ReadToEnd(); } } } } }