public static EditQuestViewModel Populate(int id, UnitOfWork work = null)
{
if (work == null)
work = new UnitOfWork();
quest_template currentQuest = work.EntityContext.quest_template.Find(id);
List<quest_achievement_step> currentQuestSteps = work.EntityContext.quest_achievement_step.Where(qac => qac.quest_id == currentQuest.id).ToList();
List<int> currentQuestStepsIDs = new List<int>();
foreach (quest_achievement_step questStep in currentQuestSteps)
currentQuestStepsIDs.Add(questStep.achievement_id);
return new EditQuestViewModel()
{
Title = currentQuest.title,
Description = currentQuest.description,
Icon = currentQuest.icon_file_name,
State = currentQuest.state,
SelectedAchievementsList = currentQuestStepsIDs,
Threshold= currentQuest.threshold,
AchievementsList = work.EntityContext.achievement_template.Where(at => at.state != (int)JPPConstants.AchievementQuestStates.Draft).ToList(),
IconFilePath = currentQuest.icon,
IconList = JPPImage.GetIconFileNames()
};
}