/// <summary>
        /// Deserialization constructor.
        /// </summary>
        /// <param name="src"></param>
        internal StaticCertificateGroup(SerializableCertificateGroup src)
            : base(src.Classes.Count)
        {
            ID          = src.ID;
            Name        = src.Name;
            Description = src.Description;

            foreach (SerializableCertificateClass srcClass in src.Classes)
            {
                Items.Add(new StaticCertificateClass(this, srcClass));
            }
        }
Exemple #2
0
        /// <summary>
        /// Generate the certificates datafile.
        /// </summary>
        internal static void GenerateDatafile()
        {
            Stopwatch stopwatch = Stopwatch.StartNew();

            Util.ResetCounters();

            Console.WriteLine();
            Console.Write(@"Generating certificates datafile... ");

            // Export certificates groups
            List <SerializableCertificateGroup> listOfCertGroups = new List <SerializableCertificateGroup>();

            foreach (InvGroups group in Database.CrtCertificatesTable.GroupBy(x => x.GroupID)
                     .Select(x => Database.InvGroupsTable[x.Key]).OrderBy(x => x.Name))
            {
                SerializableCertificateGroup crtGroup = new SerializableCertificateGroup
                {
                    ID          = group.ID,
                    Name        = group.Name,
                    Description = group.Description
                };

                // Add classes to categories
                crtGroup.Classes.AddRange(ExportCertificateClasses(group).OrderBy(x => x.Name));

                //// Add category
                listOfCertGroups.Add(crtGroup);
            }

            // Serialize
            CertificatesDatafile datafile = new CertificatesDatafile();

            datafile.Groups.AddRange(listOfCertGroups);

            Util.DisplayEndTime(stopwatch);

            Util.SerializeXml(datafile, DatafileConstants.CertificatesDatafile);
        }