JustPressPlay.ViewModels.EditQuestViewModel.Populate C# (CSharp) 메소드

Populate() 공개 정적인 메소드

public static Populate ( int id, UnitOfWork work = null ) : EditQuestViewModel
id int
work JustPressPlay.Models.Repositories.UnitOfWork
리턴 EditQuestViewModel
        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()
            };
        }
EditQuestViewModel