/// <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); }