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
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000
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>();
        }
    }
}