aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/JobsModuleSettings.cs
blob: 85278d6922179973ae4e547b9c947ff3fe276420 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Settings;

namespace Tango.PPC.Jobs
{
    /// <summary>
    /// Represents the jobs module settings.
    /// </summary>
    /// <seealso cref="Tango.Settings.SettingsBase" />
    public class JobsModuleSettings : SettingsBase
    {
        public class RecentCatalog
        {
            public String Guid { get; set; }
            public List<String> RecentItems { get; set; }

            public RecentCatalog()
            {
                RecentItems = new List<string>();
            }
        }

        /// <summary>
        /// Gets or sets the recent catalogs items.
        /// </summary>
        public List<RecentCatalog> RecentCatalogsItems { get; set; }

        /// <summary>
        /// Gets or sets the last job color space.
        /// </summary>
        public ColorSpaces? LastJobColorSpace { get; set; }

        /// <summary>
        /// Gets or sets the new job last type.
        /// </summary>
        public JobTypes? LastJobType { get; set; }

        /// <summary>
        /// Gets or sets the last selected catalog unique identifier.
        /// </summary>
        public String LastSelectedCatalogGuid { get; set; }

        /// <summary>
        /// Adds a catalog item to the recent list.
        /// </summary>
        /// <param name="catalog">The catalog.</param>
        /// <param name="item">The catalog item.</param>
        public void AddRecentCatalogItem(ColorCatalog catalog, ColorCatalogsItem item)
        {
            var recentCatalog = RecentCatalogsItems.FirstOrDefault(x => x.Guid == catalog.Guid);

            if (recentCatalog == null)
            {
                recentCatalog = new RecentCatalog();
                recentCatalog.Guid = catalog.Guid;
                RecentCatalogsItems.Add(recentCatalog);
            }

            if (recentCatalog.RecentItems.Exists(x => x == item.Guid))
            {
                recentCatalog.RecentItems.Remove(item.Guid);
            }

            recentCatalog.RecentItems.Insert(0, item.Guid);

            if (recentCatalog.RecentItems.Count > 20)
            {
                recentCatalog.RecentItems.RemoveAt(recentCatalog.RecentItems.Count - 1);
            }
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="JobsModuleSettings"/> class.
        /// </summary>
        public JobsModuleSettings()
        {
            RecentCatalogsItems = new List<RecentCatalog>();
        }
    }
}