private void GetNameBySpyinit() { if (!InitSpy) { // Clear memomry playerMapp = null; planeteMapp = null; lastPlayer = null; // Get planet wihtout name and quest List <Planet> listPlanete = new List <Planet>(); IEnumerable <Player> listPlayerQuest = new PlayerAction().GetPlayerQuestWithoutName(); foreach (Player player in listPlayerQuest) { if (player.Planets.Count != 0) { listPlanete.Add(player.Planets[0]); } } spy = new Spy(listPlanete); InitSpy = true; } }
public void GetNameByMessage(Main mainForm) { if (nav.NavigationPage(mainForm.webBrowserMain, urlMessageSpy)) { if (!messageRead) { HtmlDocument htmlDoc = mainForm.webBrowserMain.Document; HtmlElementCollection listTable = htmlDoc.GetElementsByTagName("table"); // drop start and end int nbMessage = listTable[2].Children[0].Children.Count - 2; Dictionary <string, object> messageIds = new Dictionary <string, object>(); //Start at 1 (0 is header) if (nbMessage == 1) { mainForm.action = Action.UNKNOW; nav.NavigationPage(mainForm.webBrowserMain, urlMessageSpy); return; } for (int i = 1; i <= nbMessage; i++) { listTable[2].Children[0].Children[i].Children[0].Children[0].SetAttribute("checked", "checked"); // Get player by planet Planet planet = null; var text = listTable[2].Children[0].Children[i].InnerText; var namePlayer = Regex.Match(text, @"\(([^)]*)\)").Groups[1].Value; var positionPlayer = Regex.Match(text, @"\[([^)]*)\]").Groups[1].Value; var positionSeparateString = positionPlayer.Split(':'); int[] positionSeparate = Array.ConvertAll(positionSeparateString, int.Parse); //update player var messageId = listTable[2].Children[0].Children[i].Children[0].Children[0].GetAttribute("name"); messageIds.Add(messageId, "on"); planet = new PlanetAction().GetPlanetByPosition(positionSeparate[0], positionSeparate[1], positionSeparate[2]); PlayerAction playerAction = new PlayerAction(); var player = playerAction.GetPlayerById(planet.PlayerId); player.Name = namePlayer; playerAction.UpdatePlayer(player); } // Click "Voir les messages var listElement = htmlDoc.GetElementsByTagName("input"); foreach (HtmlElement item in listElement) { bool boutonReadFound = item.OuterHtml.Contains("value=Lire"); if (boutonReadFound) { nav.InvokeMember(item, "click"); messageRead = true; } } } else { messageRead = false; nav.NavigationPage(mainForm.webBrowserMain, urlBase + "messagerie_delester.php?cat=Espio"); } } }
public static void MergeBDD() { DataAccess db = new DataAccess(); Dictionary <int, IList <Planet> > QuestMaybe = new Dictionary <int, IList <Planet> >(); var allQuest = db.GetAllQuestDetails(); var count2 = allQuest.Count(); allQuest = allQuest.Where(x => !QueteAlreadyProcess.Any(y => y == x.IDQuete)); count2 = allQuest.Count(); var allQuestGroupBy = allQuest.GroupBy(x => x.IDQuete); QuestError.Clear(); foreach (IEnumerable <QueteDetails> queteDetails in allQuestGroupBy) { List <Planet> temp = new List <Planet>(); bool add = false; int groupby = 1; int count = 1; foreach (QueteDetails details in queteDetails) { string sanitiseName = string.Empty; var temp2 = details.Nom.Split('.'); if (temp2.Count() > 2) { details.Nom = temp2[0].Substring(0, temp2[0].Count() - 2); } var planets = new PlanetAction().SearchByNameQuest(details.Nom.Trim()); if (planets.Count() == 0) { // planete non reconnu continue; } else if (planets.Count() > 1) { if (temp.Count == 0) { temp.AddRange(planets.ToList()); continue; } else { count++; temp.AddRange(planets.ToList()); var groupByPlayerTemp = temp.GroupBy(x => x.PlayerId); var player2 = groupByPlayerTemp.Where(x => x.Count() > groupby); var player3 = player2.Where(x => x.Any(b => b.Name.ToLower() == details.Nom)); if (player2.Count() == 0) { continue; } else if (player2.Count() == 1) { planets = player2.First(); add = true; } else { if (count == queteDetails.Count()) { planets = player2.First(); add = true; } temp = new List <Planet>(); foreach (var item in player2) { temp.AddRange(item); } } } } else { add = true; } if (add) { var quete = db.GetQuestById(details.IDQuete); Quest quest = new Quest() { Name = quete.Nom, RewardTypeId = quete.IDTypeRecompense, ProfitId = quete.IDNomRecompense, ProfitTypeId = quete.IDTypeGain, ValueProfit = (Int16)quete.Valeur, DurationProfil = (Int16)quete.Duree, HasSoldier = quete.Soldat, HasSpaceship = quete.Flotte, HasDefense = quete.Defense, HasExploration = quete.Exploration, Comment = quete.Commentaire, Visible = quete.Visible, ProfilOldDatabase = quete.RecompenseDetail, PlayerId = planets.First().PlayerId }; try { new QuestAction().AddQuest(quest); QueteAlreadyProcess.Add(quete.ID); break; } catch { if (!QuestAddBug.Contains(quete.ID)) { QuestAddBug.Add(quete.ID); } } } } if (!add) { if (!QuestError.Contains(queteDetails.First().IDQuete)) { QuestError.Add(queteDetails.First().IDQuete); } } } }
public void Search(Main mainForm) { // on regarde initialise la page au debut if (!ProcessInit) { mainForm.action = Action.updatePlayerIdUnique; Initialisation(mainForm); return; } if (GalaxyNavigation <= GalaxyMax) { // on est actuellement au coordonnées suivantes string galaxieActual = mainForm.webBrowserMain.Document.GetElementById("galaxi").GetAttribute("value"); string systemActual = mainForm.webBrowserMain.Document.GetElementById("system").GetAttribute("value"); // on recupere l'ID parent le plus proche des planetes HtmlElement pageSystemSolaire = mainForm.webBrowserMain.Document.GetElementById("galaxiform"); foreach (HtmlElement elementTemp in pageSystemSolaire.Children) { // on recupere le conteneur de l'ensemble des planetes if (elementTemp.GetAttribute("className").Contains("orcp2m")) { // mainForm.searchCDRUserView.progressChanged(this.GalaxyStart, this.SystemStart, this.GalaxyMax, 100, this.GalaxyNavigation, this.SystemNavigation, base.lastLoadTime); int position = 0; foreach (HtmlElement elementTemp2 in elementTemp.Children) { // Parcours de chaques lignes de planetes (pas de différence en les zones sombres et claires) if (elementTemp2.GetAttribute("className").Contains("orcp2mlg")) { position++; Player player; Planete planete = null; foreach (HtmlElement elementTemp3 in elementTemp2.Children) { // on recupère les informations de la planète if (elementTemp3.GetAttribute("className").Contains("orcp2mlgc")) { string planeteName = elementTemp3.InnerText; if (!string.IsNullOrEmpty(planeteName)) { planete = new Planete(); planete.Galaxy = GalaxyNavigation; planete.System = SystemNavigation; planete.Position = position; planete.Name = planeteName; } } if (elementTemp3.GetAttribute("className").Contains("orcp2mlgf")) { if ((elementTemp3.FirstChild != null) && (planete != null)) { string elementClick = elementTemp3.FirstChild.OuterHtml; if (elementClick.Contains("messagerie_ecrire")) { List <long> allInt = GeneralFunction.getNumberFromText(elementClick); int UniquePUniqueNumberContact = Convert.ToInt32(allInt[0]); player = new Player(); player.UniqueNumberContact = UniquePUniqueNumberContact; EasyOR.DataAccess.SqlServer.PlayerAction playerDB = new DataAccess.SqlServer.PlayerAction(); var playerFound = playerDB.GetUserByInternalIdOR(player.UniqueNumberContact); if (playerFound == null) { // Add player playerDB.AddPlayer(new EasyOR.DTO.Player() { Name = null, IsAFK = null, IsVacation = null, InternalIdOR = player.UniqueNumberContact }); playerFound = playerDB.GetUserByInternalIdOR(player.UniqueNumberContact); // add planet new PlanetAction().AddPlanet(new DTO.Planet() { Galaxy = (Int16)planete.Galaxy, System = (Int16)planete.System, Position = (Int16)planete.Position, PlayerId = playerFound.PlayerId, Name = planete.Name }); } else { var planet = new PlanetAction().GetByCoordinatesAndUserInternalID((Int16)planete.Galaxy, (Int16)planete.System, (Int16)planete.Position, player.UniqueNumberContact); if (planet == null) { new PlanetAction().AddPlanet(new DTO.Planet() { Galaxy = (Int16)planete.Galaxy, System = (Int16)planete.System, Position = (Int16)planete.Position, PlayerId = playerFound.PlayerId, Name = planete.Name }); } } } } } } } } } } SystemNavigation++; new Navigation().InvokeForm(capteurInterstellaireURL, mainForm.webBrowserMain, "galaxi_envoi", new object[] { GalaxyNavigation, SystemNavigation }); } else { mainForm.action = Action.updatePlayerNameStep1; mainForm.getPlayerName = new GetPlayerName(); mainForm.getPlayerName.GetName(mainForm); mainForm.searchPlayer = null; } }