public virtual ActionResult QuestConnectionSend(QuestConnectionFormViewModel input)
        {
            var id = QuestWriterProcedures.SaveQuestConnection(input.QuestConnection);

            QuestWriterProcedures.LogQuestWriterAction(User.Identity.Name, input.QuestConnection.QuestId, " saved connection Id <b>" + id + "</b>.");

            return(RedirectToAction(MVC.QuestWriter.QuestConnection(id, input.QuestConnection.QuestId, input.QuestConnection.QuestStateFromId, input.QuestConnection.QuestStateToId)));
        }
        public virtual ActionResult QuestConnection(int Id, int QuestId, int FromQuestId, int ToQuestId)
        {
            IQuestRepository repo = new EFQuestRepository();

            var questConnection = repo.QuestConnections.FirstOrDefault(q => q.Id == Id);

            if (questConnection == null)
            {
                questConnection = new QuestConnection
                {
                    QuestId = QuestId,
                    QuestConnectionRequirements = new List <QuestConnectionRequirement>(),
                    QuestStateFromId            = FromQuestId,
                    QuestStateToId     = ToQuestId,
                    QuestStateFailToId = 0,
                };
            }

            var output = new QuestConnectionFormViewModel
            {
                QuestConnection = questConnection,
            };

            if (FromQuestId > 0)
            {
                output.FromQuestState = QuestProcedures.GetQuestState(FromQuestId);
            }
            if (ToQuestId > 0)
            {
                output.ToQuestState = QuestProcedures.GetQuestState(ToQuestId);
            }

            if (questConnection.QuestStateFailToId > 0)
            {
                output.FailToQuestState = QuestProcedures.GetQuestState(questConnection.QuestStateFailToId);
            }

            return(PartialView(MVC.QuestWriter.Views.QuestConnection, output));
        }