root/extensions/PiwigoLib/PiwigoUpload/Service/LoadFromDirectory.cs @ 12262

Revision 12262, 1.7 KB (checked in by bayral, 20 months ago)

piwigo.upload retrieve data, and ready to upload

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.IO;
6using Com.Piwigo.Uploader.DTO;
7
8namespace Com.Piwigo.Uploader.Service
9{
10    public class LoadFromDirectory : IService
11    {
12        string[] extensions = { ".jpeg", ".jpg" };
13
14        private LocalAlbum loadDirectory(String dirName, Int32? rootAlbumId)
15        {
16            DirectoryInfo dir = new DirectoryInfo(dirName); 
17            LocalAlbum album = new LocalAlbum (){ LocalDir=dir.FullName, Name=dir.Name};
18            album.MessageInfo = "";
19            album.UpperCatId = rootAlbumId;
20           
21            // loading image data in album
22            album.LocalImages = new LocalImageList();
23            foreach (string strfile in Directory.EnumerateFiles(dir.FullName, "*.*", SearchOption.TopDirectoryOnly)
24                .Where(s => extensions.Any(ext => ext == Path.GetExtension(s))))
25            {
26                FileInfo fi = new  FileInfo(strfile);
27                LocalImage img = new LocalImage();
28                img.LocalFile = fi.FullName;
29                img.Name = fi.Name;
30                album.LocalImages.Add(img);
31            }
32
33            album.SubAlbums = new LocalAlbumList();
34            foreach (string strdir in Directory.EnumerateDirectories(dir.FullName))
35            {
36                album.SubAlbums.Add(loadDirectory(strdir, null));
37            }
38
39            return album;
40        }
41
42        public void runService()
43        {
44            ModelManager.Instance.lstAlbumLocaux.Add(
45                loadDirectory(ModelManager.Instance.directoryName,
46                null)
47                );
48        }
49    }
50}
Note: See TracBrowser for help on using the browser.