示例#1
0
 public void TestMethod1()
 {
     var gallery = new Gallery()
     {
         Metadata = new GalleryMetadata()
         {
             Description = "test description",
             Title = "test title",
             Id = Guid.NewGuid().ToString()
         },
         ImageUrls = new String[] {"", ""}
     };
     var stringified = JsonConvert.SerializeObject(gallery);
     System.Diagnostics.Debug.WriteLine(stringified);
 }
示例#2
0
        public static IEnumerable<Gallery> GalleriesFromFolders(IEnumerable<string> folders)
        {
            var results = new List<Gallery>();
            foreach (var galleryFolder in folders)
            {
                var gallery = new Gallery();

                // read metadata. Note we already checked that the metadata file exists
                using (StreamReader reader = new StreamReader(
                    Path.Combine(galleryFolder, MetadataFileName)))
                {
                    var json = reader.ReadToEnd();
                    gallery.Metadata = JsonConvert.DeserializeObject<GalleryMetadata>(json);
                }

                // read all the files in the directory
                var files = Directory.EnumerateFiles(galleryFolder);
                var pathElements = galleryFolder.Split(new char[] { '\\' });
                var galleryRoot = pathElements[pathElements.Length - 2];
                var galleryDir = pathElements[pathElements.Length - 1];
                var galleryUrlTemplate = "/{0}/{1}/{2}";

                var fileUrls = new List<string>();
                foreach (var file in files)
                {
                    if (!Path.GetFileName(file).Equals(MetadataFileName))
                    {
                        fileUrls.Add(string.Format(galleryUrlTemplate, galleryRoot, galleryDir, Path.GetFileName(file)));
                    }
                }
                gallery.ImageUrls = fileUrls;
                results.Add(gallery);
            }

            return OrderGalleries(results);
        }