public static Achievement GetAchievementDto(this AchievementBase achievement) { var descriptionAttribute = GetDescriptionAttribute(achievement); var assembly = achievement.GetType().Assembly; var AchievementResourcesType = assembly.GetType("Strokes.Resources.AchievementResources"); var categoryResourcesType = assembly.GetType("Strokes.Resources.AchievementCategoryResources"); var AchievementResources = (ResourceManager)AchievementResourcesType.GetProperty("ResourceManager", BindingFlags.Static | BindingFlags.Public).GetValue(null, null); var categoryResources = (ResourceManager)categoryResourcesType.GetProperty("ResourceManager", BindingFlags.Static | BindingFlags.Public).GetValue(null, null); var category = descriptionAttribute.AchievementCategory; if (category.StartsWith("@") && category.Length > 1) category = categoryResources.GetString(category.Substring(1)); var title = descriptionAttribute.AchievementTitle; if (title.StartsWith("@") && title.Length > 1) title = AchievementResources.GetString(title.Substring(1)); var description = descriptionAttribute.AchievementDescription; if (description.StartsWith("@") && description.Length > 1) description = AchievementResources.GetString(description.Substring(1)); var descriptor = new Achievement { Guid = descriptionAttribute.Guid, AchievementType = achievement.GetType(), Category = category, Description = description, Name = title, Image = descriptionAttribute.Image, }; return descriptor; }
public CompletedAchievement(Achievement achievementDescriptor) { Guid = achievementDescriptor.Guid; }