Example #1
0
        public List<ImageInfo> GetGroup(string groupKey, ImageSort imageSort)
        {
            if(!Directory.Exists(GetGroupDirectoryAbsolute(groupKey)))
                return new List<ImageInfo>();

            var result = Directory.GetFiles(GetGroupDirectoryAbsolute(groupKey)).ToList().ConvertAll(
                path =>
                    {
                        var filename = Path.GetFileNameWithoutExtension(path);
                        var extension = Path.GetExtension(path);
                        return new ImageInfo
                                   {
                                       GroupKey = groupKey,
                                       Id = Convert.ToInt32(filename.Split('-').First()),
                                       AbsolutePath = path,
                                       RelativePath = GetPathRelative(groupKey, filename + extension),
                                       Name = filename.Substring(filename.IndexOf('-') + 1),
                                       UseJpeg = extension == ".jpg"
                                   };
                    });

            if(imageSort == ImageSort.None) return result;

            Comparison<ImageInfo> comparison;

            switch(imageSort)
            {
                case ImageSort.Name:
                    comparison = (i1, i2) => i1.Name.CompareTo(i2.Name);
                    break;
                case ImageSort.Size:
                    comparison = (i1, i2) => i1.FileSize.CompareTo(i2.FileSize);
                    break;
                case ImageSort.Type:
                    comparison = (i1, i2) => i1.FileExtension.CompareTo(i2.FileExtension);
                    break;
                case ImageSort.Date:
                    comparison = (i1, i2) => i1.CreationTime.CompareTo(i2.CreationTime);
                    break;
                default:
                    throw new ArgumentOutOfRangeException("imageSort");
            }

            result.Sort(comparison);

            return result;
        }
Example #2
0
 private void SetImageSort(ImageSort sort)
 {
     if (_imageSort == sort) _reverseSort = !_reverseSort;
     else
     {
         _imageSort = sort;
         _reverseSort = false;
     }
 }
 public override void Shutdown()
 {
     DocumentSort.SaveSettings();
     ImageSort.SaveSettings();
 }