// Save the map to the context public void Save(Episode episode) { // First, find if another episode was inserted before if (this.EpisodeHasBeenLoaded(episode.EpisodeNumber, episode.Idiom) == false) { // If is not, insert a new episode var sqlCommand = new SqlCommand("INSERT INTO EPISODES(EpisodeNumber, IDIOM, Prologue, Title, ImgHeaderPath) VALUES(@EPISODENUMBER, @IDIOM, @Prologue, @Title, @ImgHeaderPath)"); // Set parameters sqlCommand.Parameters.AddWithValue("EPISODENUMBER", episode.EpisodeNumber); sqlCommand.Parameters.AddWithValue("IDIOM", episode.Idiom); sqlCommand.Parameters.AddWithValue("Prologue", episode.Prologue); sqlCommand.Parameters.AddWithValue("Title", episode.Title); sqlCommand.Parameters.AddWithValue("ImgHeaderPath", episode.ImgHeaderPath); SQLOperation.ExecuteSQLCommand(sqlCommand); } // Adding all pages var pageRep = new PageRepository(); foreach (Page page in episode.Pages) { page.episodeNumber = episode.EpisodeNumber; pageRep.Save(page); } }
// Lookup one Episode and return it if is found public Episode Load(int episodeNumber, string episodeIdiom) { var sqlCommand = new SqlCommand("SELECT * FROM EPISODES WHERE EPISODENUMBER = @EPISODENUMBER"); sqlCommand.Parameters.AddWithValue("EPISODENUMBER", episodeNumber); var dt = SQLOperation.ExecuteSQLCommandWithResult(sqlCommand); if (dt.Tables[0].Rows.Count <= 0) { return null; } //Setting a loaded episode var episode = new Episode(); episode.EpisodeNumber = Int16.Parse(dt.Tables[0].Rows[0]["EPISODENUMBER"].ToString()); episode.Idiom = dt.Tables[0].Rows[0]["idiom"].ToString(); // Loading all Episode pages var pageRep = new PageRepository(); episode.Pages = pageRep.LoadFromEpisode(episode.EpisodeNumber); // Sending the episode return episode; }
// Return the list of all episodes of the page. It will just load the header of episodes, not the entire page and map list public List<Episode> AllEpisodeList() { // If is not, insert a new episode var sqlCommand = new SqlCommand("SELECT * FROM EPISODES ORDER BY EPISODENUMBER ASC"); var dt = SQLOperation.ExecuteSQLCommandWithResult(sqlCommand); var episodeList = new List<Episode>(dt.Tables[0].Rows.Count); for (int count = 0; count <= dt.Tables[0].Rows.Count - 1; count++) { //Setting a loaded episode var episode = new Episode(); episode.EpisodeNumber = Int16.Parse(dt.Tables[0].Rows[count]["EPISODENUMBER"].ToString()); episode.Idiom = dt.Tables[0].Rows[count]["idiom"].ToString(); episode.Title = dt.Tables[0].Rows[count]["Title"].ToString(); episode.Prologue = dt.Tables[0].Rows[count]["Prologue"].ToString(); episode.ImgHeaderPath = dt.Tables[0].Rows[count]["ImgHeaderPath"].ToString(); episodeList.Add(episode); } return episodeList; }