Ignore:
Timestamp:
Mar 8, 2012, 11:19:12 PM (12 years ago)
Author:
bayral
Message:

new project for windows live publish plugin
Well advance single uploader

Location:
extensions/PiwigoLib/PiwigoUpload/Service
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/PiwigoLib/PiwigoUpload/Service/LoadFromDirectory.cs

    r12336 r13520  
    55using System.IO;
    66using Com.Piwigo.Uploader.DTO;
     7using Com.Piwigo.Lib.DTO;
    78
    89namespace Com.Piwigo.Uploader.Service
    910{
     11
    1012    public class LoadFromDirectory : IService
    1113    {
    12         string[] extensions = { ".jpeg", ".jpg" };
     14        string[] extensions = { ".jpeg", ".jpg", ".JPEG", ".JPG" };
     15
     16        private LocalImage loadFile(String fileName)
     17        {
     18            LocalImage img = new LocalImage();
     19            // loading image data in album
     20            if (extensions.Contains<String>(Path.GetExtension(fileName)))
     21            {
     22                FileInfo fi = new FileInfo(fileName);
     23                img.LocalFile = fi.FullName;
     24                img.Name = fi.Name;
     25                img.ConfidentialLevel = ModelManager.Instance.UploadOption.ConfidentialLevel;
     26                img.Author = ModelManager.Instance.UploadOption.Author;
     27                img.AuthorComment = "";
     28           }
     29            return img;
     30        }
    1331
    1432        private LocalAlbum loadDirectory(String dirName, Int32? rootAlbumId)
    1533        {
    16             DirectoryInfo dir = new DirectoryInfo(dirName);
    17             LocalAlbum album = new LocalAlbum (){ LocalDir=dir.FullName, Name=dir.Name};
     34            DirectoryInfo dir = new DirectoryInfo(dirName);
     35            LocalAlbum album = new LocalAlbum() { LocalDir = dir.FullName, Name = dir.Name };
     36
     37            Int32 parentAlbumId =  (rootAlbumId.HasValue ? rootAlbumId.Value : PwgAlbum.RootAlbumId);
     38
    1839            album.MessageInfo = "";
    19             album.UpperCatId = rootAlbumId;
     40            album.UpperCatId = parentAlbumId;
    2041           
    2142            // loading image data in album
     
    2445                .Where(s => extensions.Any(ext => ext == Path.GetExtension(s))))
    2546            {
    26                 FileInfo fi = new  FileInfo(strfile);
    27                 LocalImage img = new LocalImage();
    28                 img.LocalFile = fi.FullName;
    29                 img.Name = fi.Name;
    30                 img.Author = "";
    31                 img.AuthorComment = "";
    32                 album.LocalImages.Add(img);
     47                album.LocalImages.Add(loadFile(strfile));
    3348            }
    3449
     
    4459        public void runService()
    4560        {
    46             ModelManager.Instance.lstAlbumLocaux.Add(
    47                 loadDirectory(ModelManager.Instance.directoryName,
    48                 null)
    49                 );
     61            if (File.Exists(ModelManager.Instance.directoryName))
     62            {
     63                if (extensions.Contains<String>(Path.GetExtension(ModelManager.Instance.directoryName)))
     64                {
     65                    FileInfo file = new FileInfo(ModelManager.Instance.directoryName);
     66                    LocalAlbum album;
     67                    album = ModelManager.Instance.lstAlbumLocaux.SingleOrDefault(a => a.Name == file.Directory.Name);
     68
     69                    if (album == null)
     70                    {
     71                        album = new LocalAlbum() { LocalDir = file.Directory.FullName, Name = file.Directory.Name };
     72                        album.MessageInfo = "auto created for photo input.";
     73                        album.UpperCatId = 0;
     74                        album.LocalImages = new LocalImageList();
     75                        album.SubAlbums = new LocalAlbumList();
     76
     77                        ModelManager.Instance.lstAlbumLocaux.Add(album);
     78                    }
     79
     80                    if (album.LocalImages.Count(a => a.Name == file.Name) < 1)
     81                    {
     82                        album.LocalImages.Add(loadFile(file.FullName));
     83                    }
     84                }
     85            }
     86            else if (Directory.Exists(ModelManager.Instance.directoryName))
     87            {
     88                Int32 RootAlbumId = PwgAlbum.RootAlbumId;
     89                LocalAlbum rootAlbum = null;
     90
     91                if (ModelManager.Instance.SelectedNode != null)
     92                {
     93                    if (ModelManager.Instance.SelectedNode.Tag != null)
     94                    {
     95                        if (ModelManager.Instance.SelectedNode.Tag is LocalAlbum)
     96                        {
     97                            rootAlbum = (LocalAlbum)ModelManager.Instance.SelectedNode.Tag;
     98                            RootAlbumId = (rootAlbum.Id.HasValue ? rootAlbum.Id.Value : PwgAlbum.RootAlbumId);
     99                        }
     100                        else if (ModelManager.Instance.SelectedNode.Tag is PwgImage)
     101                        {
     102                            rootAlbum = (LocalAlbum)ModelManager.Instance.SelectedNode.Parent.Tag;
     103                            RootAlbumId = (rootAlbum.Id.HasValue ? rootAlbum.Id.Value : PwgAlbum.RootAlbumId);
     104                        }
     105                    }
     106                }
     107
     108                if (rootAlbum != null)
     109                {
     110                    rootAlbum.SubAlbums.Add(
     111                        loadDirectory(ModelManager.Instance.directoryName,
     112                        RootAlbumId)
     113                        );
     114                }
     115                else
     116                {
     117                    ModelManager.Instance.lstAlbumLocaux.Add(
     118                        loadDirectory(ModelManager.Instance.directoryName,
     119                        PwgAlbum.RootAlbumId)
     120                        );
     121                }
     122            }
    50123        }
    51124    }
  • extensions/PiwigoLib/PiwigoUpload/Service/UploadToPiwigo.cs

    r12336 r13520  
    5555            FileInfo fi = new FileInfo(aImg.LocalFile);
    5656
    57             List<PwgTag> lstTag = new List<PwgTag>(aImg.LstTags);
     57            List<PwgTag> lstTag = new List<PwgTag>();
     58            if (aImg.LstTags != null)
     59            {
     60                lstTag.AddRange(aImg.LstTags);
     61            }
    5862
    5963            PwgServiceProvider.Instance.PwgImagesService.addImageByMultiPartForm(fi, null, aImg.UpperCatId, aImg.Name, aImg.Author, aImg.AuthorComment, aImg.ConfidentialLevel, lstTag);
Note: See TracChangeset for help on using the changeset viewer.