/// <summary> /// Exports the masteries. /// </summary> /// <param name="typeMasteries">The type masteries.</param> /// <returns></returns> private static IEnumerable<SerializableMastery> ExportMasteries(IGrouping<int, DgmTypeMasteries> typeMasteries) { List<SerializableMastery> listOfMasteries = new List<SerializableMastery>(); foreach (DgmMasteries typeMastery in typeMasteries.Select(x => Database.DgmMasteriesTable[x.MasteryID])) { Util.UpdatePercentDone(Database.MasteriesTotalCount); int grade = typeMastery.Grade + 1; SerializableMastery mastery; if (listOfMasteries.All(x=> x.Grade != grade)) { mastery = new SerializableMastery { Grade = grade }; listOfMasteries.Add(mastery); } else mastery = listOfMasteries.First(x => x.Grade == grade); SerializableMasteryCertificate masteryCertificate = new SerializableMasteryCertificate { ID = typeMastery.CertificateID, ClassName = Database.CrtClassesTable[Database.CrtCertificatesTable[typeMastery.CertificateID].ClassID].ClassName }; mastery.Certificates.Add(masteryCertificate); } return listOfMasteries; }
/// <summary> /// Deserialization constructor. /// </summary> /// <param name="masteryLevel">The mastery level.</param> /// <param name="src">The source.</param> internal MasteryCertificate(Mastery masteryLevel, SerializableMasteryCertificate src) { MasteryLevel = masteryLevel; Certificate = StaticCertificates.GetCertificateByID(src.ID); }