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; }
private void SetImageSort(ImageSort sort) { if (_imageSort == sort) _reverseSort = !_reverseSort; else { _imageSort = sort; _reverseSort = false; } }
public override void Shutdown() { DocumentSort.SaveSettings(); ImageSort.SaveSettings(); }