public static int SaveQuestStart(QuestStart input)
        {
            IQuestRepository repo = new EFQuestRepository();

            var questStart = repo.QuestStarts.FirstOrDefault(q => q.Id == input.Id);
            var questState = repo.QuestStates.FirstOrDefault(q => q.QuestId == input.Id);

            var newStart = false;

            if (questStart == null)
            {
                questStart = new QuestStart();
                newStart   = true;
            }
            questStart.dbName            = input.dbName;
            questStart.Location          = input.Location;
            questStart.MaxStartLevel     = input.MaxStartLevel;
            questStart.MaxStartTurn      = input.MaxStartTurn;
            questStart.MinStartLevel     = input.MinStartLevel;
            questStart.MinStartTurn      = input.MinStartTurn;
            questStart.Name              = input.Name;
            questStart.PrerequisiteQuest = input.PrerequisiteQuest;
            questStart.RequiredGender    = input.RequiredGender;
            questStart.StartState        = input.StartState;
            questStart.Tags              = input.Tags;
            questStart.Description       = input.Description;

            repo.SaveQuestStart(questStart);

            // save an additional quest state to start this off
            if (newStart || questState == null)
            {
                questState = new QuestState
                {
                    QuestId        = questStart.Id,
                    QuestStateName = "[ STARTING QUEST STATE ]",
                };
                repo.SaveQuestState(questState);

                questStart.StartState = questState.Id;
                repo.SaveQuestStart(questStart);
            }



            return(questStart.Id);
        }
        public static void MarkQuestAsLive(int Id, bool live)
        {
            IQuestRepository repo = new EFQuestRepository();
            var dbQuestStart      = repo.QuestStarts.FirstOrDefault(q => q.Id == Id);

            dbQuestStart.IsLive = live;
            repo.SaveQuestStart(dbQuestStart);
        }