Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Commit 22f3801

Browse files
committed
Overfill v1.1.0.0 -> v1.0.1.0
1 parent b340f4c commit 22f3801

14 files changed

+463
-113
lines changed

ImageCollection/Classes/Collection.cs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace ImageCollection.Classes
88
{
99
public class Collection
1010
{
11-
public Guid Guid { get; set; } = Guid.NewGuid();
11+
public Guid Id { get; set; } = Guid.NewGuid();
1212
public IEnumerable<string> ActualItems { get => actualItems.Keys; }
1313
public IEnumerable<string> IrrelevantItems { get => irrelevantItems; }
1414
public string Description { get; set; } = string.Empty;
@@ -27,7 +27,7 @@ public Collection() { }
2727
/// </summary>
2828
/// <param name="item">Элемент</param>
2929
/// <param name="inCurrentFolder">В своей папке находится элемент или нет</param>
30-
/// <param name="fromColltction">Идентификатор папки (коллекции) в которой находится элемент, если не в своей папке (коллекции)</param>
30+
/// <param name="parent">Идентификатор папки (коллекции) в которой находится элемент, если не в своей папке (коллекции)</param>
3131
public void AddNoFlag(string item, bool inCurrentFolder, Guid? parent)
3232
{
3333
actualItems.Add(item, new CollectionItemMeta(inCurrentFolder, parent));
@@ -40,7 +40,7 @@ public void AddNoFlag(string item, bool inCurrentFolder, Guid? parent)
4040
/// </summary>
4141
/// <param name="item">Элемент</param>
4242
/// <param name="inCurrentFolder">В своей папке находится элемент или нет</param>
43-
/// <param name="fromColltction">Идентификатор папки (коллекции) в которой находится элемент, если не в своей папке (коллекции)</param>
43+
/// <param name="parent">Идентификатор папки (коллекции) в которой находится элемент, если не в своей папке (коллекции)</param>
4444
public void AddIgnoreAll(string item, bool inCurrentFolder, Guid? parent) =>
4545
actualItems.Add(item, new CollectionItemMeta(inCurrentFolder, parent));
4646

@@ -64,8 +64,6 @@ public void RemoveNoFlag(string item)
6464
/// Удаляет элемент из актуальных игнорируя изменение состояния и исключенные элементы
6565
/// </summary>
6666
/// <param name="item">Элемент</param>
67-
/// <param name="inCurrentFolder">В своей папке находится элемент или нет</param>
68-
/// <param name="fromColltction">Идентификатор папки (коллекции) в которой находится элемент, если не в своей папке (коллекции)</param>
6967
public void RemoveIgnoreAll(string item) =>
7068
actualItems.Remove(item);
7169

@@ -98,17 +96,8 @@ public void RenameItem(string oldName, string newName)
9896
CollectionItemMeta itemMeta = actualItems[oldName];
9997
actualItems.Remove(oldName);
10098
actualItems.Add(newName, itemMeta);
101-
//IsChanged = true;
99+
IsChanged = true;
102100
}
103101

104-
///// <summary>
105-
///// Очищает коллекцию
106-
///// </summary>
107-
//public void Clear()
108-
//{
109-
// actualItems.Clear();
110-
// irrelevantItems.Clear();
111-
//}
112-
113102
}
114103
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using ImageCollection.Structures;
2+
3+
namespace ImageCollection.Classes.ItemMovers
4+
{
5+
/// <summary>
6+
/// Отвечает за перемещение элементов между коллекциями
7+
/// </summary>
8+
public class ItemMover
9+
{
10+
public Collection FromCollection;
11+
public Collection ToCollection;
12+
13+
public virtual void Move(string item)
14+
{
15+
CollectionItemMeta meta = FromCollection.GetMeta(item);
16+
FromCollection.RemoveNoFlag(item);
17+
if (meta.InCurrentFolder)
18+
ToCollection.AddNoFlag(item, false, FromCollection.Id);
19+
else
20+
{
21+
if (meta.Parent == null)
22+
ToCollection.AddNoFlag(item, false, null);
23+
else
24+
{
25+
if (meta.Parent != ToCollection.Id)
26+
ToCollection.AddNoFlag(item, false, meta.Parent);
27+
else
28+
ToCollection.AddNoFlag(item, true, null);
29+
}
30+
}
31+
}
32+
}
33+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using ImageCollection.Classes.ItemMovers;
2+
using ImageCollection.Structures;
3+
4+
namespace ImageCollection.Classes
5+
{
6+
/// <summary>
7+
/// Отвечает за перемещение элементов из коллекции, которая будет удалена, в другую коллекцию
8+
/// </summary>
9+
public class RemoveCollectionItemMover : ItemMover
10+
{
11+
public override void Move(string item)
12+
{
13+
CollectionItemMeta meta = FromCollection.GetMeta(item);
14+
if (meta.InCurrentFolder)
15+
ToCollection.AddNoFlag(item, false, null);
16+
else
17+
{
18+
if (meta.Parent == null)
19+
ToCollection.AddNoFlag(item, false, null);
20+
else
21+
{
22+
if (meta.Parent != ToCollection.Id)
23+
ToCollection.AddNoFlag(item, false, null);
24+
else
25+
ToCollection.AddNoFlag(item, true, null);
26+
}
27+
}
28+
}
29+
}
30+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.ComponentModel;
4+
using System.Linq;
5+
using System.Runtime.CompilerServices;
6+
using System.Text;
7+
using System.Threading.Tasks;
8+
using System.Windows.Media.Imaging;
9+
10+
namespace ImageCollection.Classes
11+
{
12+
public class ListBoxImageItem : INotifyPropertyChanged
13+
{
14+
private string path;
15+
private BitmapImage bitmapImage;
16+
private string description;
17+
18+
public string Path
19+
{
20+
get => path;
21+
set
22+
{
23+
path = value;
24+
OnPropertyChanged();
25+
}
26+
}
27+
28+
public BitmapImage Preview
29+
{
30+
get => bitmapImage;
31+
set
32+
{
33+
bitmapImage = value;
34+
OnPropertyChanged();
35+
}
36+
}
37+
38+
public string Description
39+
{
40+
get => description;
41+
set
42+
{
43+
description = value;
44+
OnPropertyChanged();
45+
}
46+
}
47+
48+
public ListBoxImageItem(string path) => this.path = path;
49+
50+
public event PropertyChangedEventHandler PropertyChanged;
51+
public void OnPropertyChanged([CallerMemberName] string prop = "")
52+
{
53+
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
54+
}
55+
}
56+
}

ImageCollection/Classes/Static/CollectionStore.cs

Lines changed: 39 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using ImageCollection.Structures;
1+
using ImageCollection.Classes.ItemMovers;
2+
using ImageCollection.Structures;
3+
using System;
24
using System.Collections.Generic;
35

46
namespace ImageCollection.Classes.Static
@@ -7,13 +9,15 @@ public static class CollectionStore
79
{
810
public const string BaseCollectionName = "Все";
911
public const string DataDirectoryName = "DATA-IC";
12+
public const string BaseCollectionGuid = "ffffffff-ffff-ffff-ffff-ffffffffffff";
1013

1114
public static string BaseDirectory { get; private set; }
1215
public static string DistributionDirectory { get; private set; }
1316
public static IEnumerable<string> IrrelevantCollections { get => irrelevantCollections; }
1417

15-
private static Dictionary<string, Collection> actualCollections = new Dictionary<string, Collection>();
16-
private static HashSet<string> irrelevantCollections = new HashSet<string>();
18+
private static readonly Dictionary<string, Collection> actualCollections = new Dictionary<string, Collection>();
19+
private static readonly HashSet<string> irrelevantCollections = new HashSet<string>();
20+
private static ItemMover itemMover;
1721

1822
/// <summary>
1923
/// Инициализация хранилища
@@ -76,38 +80,35 @@ public static void Add(string collectionName, string collectionDescription)
7680
/// </summary>
7781
public static IEnumerable<string> GetCollectionNames() => actualCollections.Keys;
7882

83+
#region To Collection
7984
/// <summary>
80-
/// Перемещение элемента(ов) в другую коллекцию
85+
/// Инициализация внутреннего объекта для начала перемещения в коллекцию
8186
/// </summary>
82-
/// <param name="fromCollectionName">Откуда</param>
83-
/// <param name="toCollectionName">Куда</param>
84-
/// <param name="items">"Элементы</param>
85-
public static void ToCollection(string fromCollectionName, string toCollectionName, IEnumerable<string> items)
87+
/// <param name="fromCollectionName">Имя коллекции из которой будет осуществлятся перемещение</param>
88+
/// <param name="toCollectionName">Имя коллекции в которую будет осуществлятся перемещение</param>
89+
public static void BeginMovingItems(string fromCollectionName, string toCollectionName)
8690
{
87-
Collection fromCollection = actualCollections[fromCollectionName];
88-
Collection toCollection = actualCollections[toCollectionName];
89-
foreach (string item in items)
91+
itemMover = new ItemMover
9092
{
91-
CollectionItemMeta meta = fromCollection.GetMeta(item);
92-
fromCollection.RemoveNoFlag(item);
93-
if (meta.InCurrentFolder)
94-
toCollection.AddNoFlag(item, false, fromCollection.Guid);
95-
else
96-
{
97-
if (meta.Parent == null)
98-
toCollection.AddNoFlag(item, false, null);
99-
else
100-
{
101-
if (meta.Parent != toCollection.Guid)
102-
toCollection.AddNoFlag(item, false, meta.Parent);
103-
else
104-
toCollection.AddNoFlag(item, true, null);
105-
}
106-
}
107-
}
108-
fromCollection.IsChanged = true;
109-
toCollection.IsChanged = true;
93+
FromCollection = actualCollections[fromCollectionName],
94+
ToCollection = actualCollections[toCollectionName]
95+
};
11096
}
97+
/// <summary>
98+
/// Перемещает заданный объект
99+
/// </summary>
100+
public static void MoveItem(string item) => itemMover.Move(item);
101+
102+
/// <summary>
103+
/// Завершает перемещение
104+
/// </summary>
105+
public static void EndMovingItems()
106+
{
107+
itemMover.FromCollection.IsChanged = true;
108+
itemMover.ToCollection.IsChanged = true;
109+
itemMover = null;
110+
}
111+
#endregion
111112

112113
/// <summary>
113114
/// Переименовывает коллекцию
@@ -126,27 +127,15 @@ public static void Rename(string oldCollectionName, string newCollectionName)
126127
/// </summary>
127128
public static void Remove(string collectionName)
128129
{
129-
Collection fromCollection = actualCollections[collectionName];
130-
Collection toCollection = actualCollections[BaseCollectionName];
131-
foreach (string item in fromCollection.ActualItems)
130+
itemMover = new RemoveCollectionItemMover
132131
{
133-
CollectionItemMeta meta = fromCollection.GetMeta(item);
134-
if (meta.InCurrentFolder)
135-
toCollection.AddNoFlag(item, false, null);
136-
else
137-
{
138-
if (meta.Parent == null)
139-
toCollection.AddNoFlag(item, false, null);
140-
else
141-
{
142-
if (meta.Parent != toCollection.Guid)
143-
toCollection.AddNoFlag(item, false, null);
144-
else
145-
toCollection.AddNoFlag(item, true, null);
146-
}
147-
}
148-
}
149-
toCollection.IsChanged = true;
132+
FromCollection = actualCollections[collectionName],
133+
ToCollection = actualCollections[BaseCollectionName]
134+
};
135+
foreach (string item in itemMover.FromCollection.ActualItems)
136+
itemMover.Move(item);
137+
itemMover.ToCollection.IsChanged = true;
138+
itemMover = null;
150139
actualCollections.Remove(collectionName);
151140
if (!irrelevantCollections.Contains(collectionName))
152141
irrelevantCollections.Add(collectionName);

ImageCollection/Enums/StartWork.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,10 @@
66

77
namespace ImageCollection.Enums
88
{
9-
public enum StartWork : byte { OpenFolder, OpenCollection, None }
9+
public enum StartWork : byte
10+
{
11+
OpenFolder,
12+
OpenCollection,
13+
None
14+
}
1015
}

ImageCollection/Enums/TaskType.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,13 @@
66

77
namespace ImageCollection.Enums
88
{
9-
public enum TaskType : byte { OpenFolder, OpenCollections, SaveCollections, Distribution, RenameCollectionItems }
10-
}
9+
public enum TaskType : byte
10+
{
11+
OpenFolder,
12+
OpenCollections,
13+
SaveCollections,
14+
Distribution,
15+
RenameCollectionItems,
16+
СlearImageCache
17+
}
18+
}

ImageCollection/ImageCollection.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@
8484
<SubType>Designer</SubType>
8585
</ApplicationDefinition>
8686
<Compile Include="Classes\Collection.cs" />
87+
<Compile Include="Classes\ItemMovers\ItemMover.cs" />
88+
<Compile Include="Classes\ItemMovers\RemoveCollectionItemMover.cs" />
89+
<Compile Include="Classes\ListBoxImageItem.cs" />
8790
<Compile Include="Classes\Static\CollectionStore.cs" />
8891
<Compile Include="Structures\OpenFolderArgs.cs" />
8992
<Compile Include="Windows\CollectionInformationEditorWindow.xaml.cs">

ImageCollection/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@
5151
// Можно задать все значения или принять номера сборки и редакции по умолчанию
5252
// используя "*", как показано ниже:
5353
// [assembly: AssemblyVersion("1.0.*")]
54-
[assembly: AssemblyVersion("1.0.0.0")]
55-
[assembly: AssemblyFileVersion("1.0.0.0")]
54+
[assembly: AssemblyVersion("1.0.1.0")]
55+
[assembly: AssemblyFileVersion("1.0.1.0")]

0 commit comments

Comments
 (0)