public virtual ActionResult QuestEnd(int Id, int QuestStateId, int QuestId)
        {
            IQuestRepository repo = new EFQuestRepository();

            var questEnd = repo.QuestEnds.FirstOrDefault(q => q.Id == Id);
            var state    = repo.QuestStates.FirstOrDefault(q => q.Id == QuestStateId);

            if (questEnd == null)
            {
                questEnd = new QuestEnd
                {
                    QuestEndName = "[NAME NOT SET]",
                    QuestId      = QuestId,
                    QuestStateId = state,
                };
            }
            else
            {
            }

            var output = new QuestEndFormViewModel();

            output.QuestEnd         = questEnd;
            output.ParentQuestState = repo.QuestStates.FirstOrDefault(q => q.Id == QuestStateId);

            return(PartialView(MVC.QuestWriter.Views.QuestEnd, output));
        }
        public virtual ActionResult QuestEndSend(QuestEndFormViewModel input)
        {
            IQuestRepository repo = new EFQuestRepository();
            var state             = repo.QuestStates.FirstOrDefault(q => q.Id == input.ParentQuestState.Id);

            var savedId = QuestWriterProcedures.SaveQuestEnd(input.QuestEnd, state);

            QuestWriterProcedures.LogQuestWriterAction(User.Identity.Name, state.QuestId, " saved quest end Id <b>" + savedId + "</b>.");

            return(RedirectToAction(MVC.QuestWriter.QuestEnd(savedId, state.Id, input.QuestEnd.QuestId)));
        }