public static int SaveQuestState(QuestState input) { IQuestRepository repo = new EFQuestRepository(); var questState = repo.QuestStates.FirstOrDefault(q => q.Id == input.Id); if (questState == null) { questState = new QuestState(); } questState.Id = input.Id; questState.QuestEndId = input.QuestEndId; questState.QuestStateName = input.QuestStateName; questState.Text = input.Text; questState.QuestId = input.QuestId; questState.HideIfRequirementsNotMet = input.HideIfRequirementsNotMet; questState.Notes = input.Notes; questState.PinToDiagram = input.PinToDiagram; questState.X = input.X; questState.Y = input.Y; // always set this to something, even if it's just empty string if (questState.QuestStateName == null) { questState.QuestStateName = "-- QUEST STATE NOT NAMED --"; } repo.SaveQuestState(questState); return(questState.Id); }
public virtual JsonResult DiagramSaveNodePosition(int Id, string X, string Y) { IQuestRepository repo = new EFQuestRepository(); var state = repo.QuestStates.FirstOrDefault(q => q.Id == Id); state.PinToDiagram = true; state.X = float.Parse(X); state.Y = float.Parse(Y); repo.SaveQuestState(state); var output = "Pinned state " + Id; return(Json(output, JsonRequestBehavior.AllowGet)); }
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); }