public async Task <IActionResult> PutPaquet(Guid id, Paquet paquet) { if (id != paquet.IdPA) { return(BadRequest()); } _context.Entry(paquet).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PaquetExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public static void acceptConnection(object obj) { TcpClient client = (TcpClient)obj; NetworkStream stream = client.GetStream(); Paquet paquet = Paquet.Receive(stream); if (paquet is MaterialPaquet) { MaterialPaquet ap = (MaterialPaquet)paquet; kitchenDesk.ListMaterialGet.Add(ap); Console.WriteLine("La Cuisine a recue un Paquet de {0}", ap.TypeMaterial); } if (paquet is CommandePaquet) { CommandePaquet ap = (CommandePaquet)paquet; kitchenDesk.ListCommandeGet.Add(ap); Console.WriteLine("La Cuisine a recue une Commande de la Table : {0}", ap.IdTable); Console.WriteLine("La liste commandeGet contient {0} lignes", kitchenDesk.ListCommandeGet.Count); } }
/*Permet d'essayer une methode du type 'byte? XYZ(Paquet)' avec un temporisateur avec * un nombre d'essaies max de 2. Retourne null si le nombre d'essai max est depasse*/ private byte?tryWithTemp(Func <Paquet, byte?> funcToTry, Paquet paquetRecu, ref int triesCount) { long time0 = DateTime.Now.Ticks; //ticks / 10 000 000 = seconds //Appel de la function a tester byte?result = funcToTry(paquetRecu); long temporisateurMax = 15000000;//1.5 secs //Si le temporisateur est ecoule if ((DateTime.Now.Ticks - time0) > temporisateurMax) { triesCount++; if (triesCount > 2) { return(null); } //Re-essayer return(tryWithTemp(funcToTry, paquetRecu, ref triesCount)); } else { return(result); } }
public async Task <ActionResult <Paquet> > PostPaquet(Paquet paquet) { _context.Paquets.Add(paquet); await _context.SaveChangesAsync(); return(CreatedAtAction("GetPaquet", new { id = paquet.IdPA }, paquet)); }
public void ObtenirNom_Test() { //arrange string carte = ""; //act carte = Paquet.ObtenirNom(10, Figure.Trefles); // assert Assert.AreEqual(carte, "10 de Trefles"); }
public void DistribuerLesCartes_Test() { // arrange var pqtDeCartes = new Queue <Carte>(); // act pqtDeCartes = Paquet.GenererPaquetDeCartes(); // assert Assert.AreEqual(52, (int)pqtDeCartes.Count); }
public void SendMaterial(MaterialPaquet ap) { TcpClient client = new TcpClient("127.0.0.1", 1800); NetworkStream stream = client.GetStream(); Paquet.Send(ap, stream); Console.WriteLine("j'envois le matériel de la table " + ap.IdTable); Thread.Sleep(100); }
public void SendCommande(CommandePaquet ap) { TcpClient client = new TcpClient("127.0.0.1", 1801); NetworkStream stream = client.GetStream(); Paquet.Send(ap, stream); Console.WriteLine("j'envois la commande de la table " + ap.IdTable); Thread.Sleep(100); }
public void FinJeu_Test_True() { // arrange var jeu = new Jeu("j1", "j2"); var pqt = Paquet.GenererPaquetDeCartes(); pqt.Clear(); //act jeu.FinJeu(); // Assert Assert.IsTrue(true); }
private void returnData(Paquet paquetRetour) { string paquetString = ""; foreach (byte b in paquetRetour.getPaquet()) { paquetString += (Convert.ToString(b) + ","); } Transport.ERs_TO_ET_File.WaitOne(); File.AppendAllText("R_ecr.txt", paquetString + "\n"); Transport.ERs_TO_ET_File.Release(); }
public Statistics GetStatistics() { Paquet paquet = new Paquet() { Type = PaquetType.Statistics }; Guid reqId; reqId = Guid.NewGuid(); _LastRequestId.Add(reqId.ToString(), null); paquet.RequestId = reqId.ToString(); var res = SendMessageProcessResponse(JsonConvert.SerializeObject(paquet), reqId, 30); return(Statistics); }
private void distributeCards() { Main mainA = new Main(); Main mainB = new Main(); Main mainC = new Main(); Main mainD = new Main(); Paquet paquet = new Paquet(); paquet.Brasser(); for (int i = 0; i < 13; i++) { mainA.AddCarte(paquet.Tirer()); mainB.AddCarte(paquet.Tirer()); mainC.AddCarte(paquet.Tirer()); mainD.AddCarte(paquet.Tirer()); } mainA.AddCarte(paquet.Tirer()); mainB.AddCarte(paquet.Tirer()); joueurs[0].SaMain = mainA; joueurs[1].SaMain = mainB; joueurs[2].SaMain = mainC; joueurs[3].SaMain = mainD; joueurs[0].SaMain.Sort(); joueurs[1].SaMain.Sort(); joueurs[2].SaMain.Sort(); joueurs[3].SaMain.Sort(); Carte carteDonne1 = joueurs[3].SaMain[11]; Carte carteDonne2 = joueurs[3].SaMain[12]; Carte carteDonne3 = joueurs[2].SaMain[12]; joueurs[3].SaMain.Remove(carteDonne1); joueurs[3].SaMain.Remove(carteDonne2); joueurs[2].SaMain.Remove(carteDonne3); joueurs[0].SaMain.Add(carteDonne1); joueurs[0].SaMain.Add(carteDonne2); joueurs[1].SaMain.Add(carteDonne3); joueurs[0].SaMain.Sort(); joueurs[1].SaMain.Sort(); }
/*Permet d'essayer une methode du type 'Paquet XYZ(Paquet)' avec un * nombre d'essaies max de 2. Retourne null si le nombre d'essai max est depasse*/ private Paquet tryWithAcquittementNegatif(Func <Paquet, Paquet> funcToTry, Paquet paquetRecu, ref int triesCount) { //Appel de la function a tester Paquet result = funcToTry(paquetRecu); if ((result.getType() & 0x09) == 0x09) { triesCount++; if (triesCount > 2) { return(null); } //Re-essayer return(tryWithAcquittementNegatif(funcToTry, paquetRecu, ref triesCount)); } else { return(result); } }
private byte?receiveData(Paquet paquetRecu) { Random rnd = new Random(); //Ne retourne rien si l'adresse source est un multiple de 15 if ((paquetRecu.getSrc() % 15) == 0) { writeLog(".....simulation de non reponse....."); Thread.Sleep(1500); //simulation de non-reponse return(null); } //Acquitement négatif else if ((int)((paquetRecu.getType() >> 1) & 0x07) == rnd.Next(0, 7)) { writeLog("paquet de données invalide reçu de " + paquetRecu.getSrc() + "\t\t" + DateTime.Now); return((byte?)((paquetRecu.getType() & 0xE0) | 0x09)); } //Acquitement Positif else { //S'il n'y a qu'une seule trame / dernier paquet if ((paquetRecu.getType() & 0x10) == 0) { trameComplete += (Encoding.ASCII.GetString(paquetRecu.getPaquet(), 2, 128)); //Fin de la trame writeData(trameComplete); trameComplete = ""; writeLog("Paquet de données reçu #" + (paquetRecu.getType() >> 5) + ". Prochain: #" + ((paquetRecu.getType() & 0x0E) >> 1) + ". source: " + paquetRecu.getSrc() + "\t\t" + DateTime.Now); return((byte?)((paquetRecu.getType() & 0xE0) | 0x01)); } //Sinon paquet d'une suite trameComplete += (Encoding.ASCII.GetString(paquetRecu.getPaquet(), 2, 128)); writeLog("Paquet de données reçu #" + (paquetRecu.getType() >> 5) + ". Prochain: #" + ((paquetRecu.getType() & 0x0E) >> 1) + ". source: " + paquetRecu.getSrc() + "\t\t" + DateTime.Now); return((byte?)((paquetRecu.getType() & (0x0E << 4)) | 0x01)); } }
private byte?establishConnexion(Paquet paquetRecu) { //writeData("tentative de connexion Source: " + ((int)paquetRecu.getSrc()).ToString() + ", Destination: " + ((int)paquetRecu.getDest()).ToString() + "\t\t" + DateTime.Now); //Pas de réponse if ((int)paquetRecu.getSrc() % 19 == 0) { writeLog(".....simulation de non reponse....."); Thread.Sleep(1500); //simulation de non-reponse return(null); } //Connexion refusée else if ((int)paquetRecu.getSrc() % 13 == 0) { writeLog("Connexion refusée " + DateTime.Now); return(Constantes.N_DISCONNECT_IND); } //Connexion établie else { writeLog("Connexion établie " + DateTime.Now); return(Constantes.N_CONNECT_IND); } }
private Paquet liaisonDonnees(Paquet paquetRecu) { int triesCount; switch (paquetRecu.getType()) { case Constantes.N_CONNECT_REQ: triesCount = 0; byte?connexion = tryWithTemp(establishConnexion, paquetRecu, ref triesCount); //Si le distant à refusé la connexion if (connexion == Constantes.N_DISCONNECT_IND) { etat = Constantes.DECONNECTE; writeData("paquet d'indication liberation"); return(new PaquetIndicationLiberation(paquetRecu.getNoConn(), paquetRecu.getSrc(), paquetRecu.getDest(), 0x01)); } //Si le distant a accepté la connexion else if (connexion == Constantes.N_CONNECT_IND) { etat = Constantes.CONNECTE; writeData("paquet de connexion etablie"); return(new PaquetConnexionEtablie(paquetRecu.getNoConn(), paquetRecu.getSrc(), paquetRecu.getDest())); } //Si le distant ne répond pas (connexion = null quand trop long, voir tryWithTemp) else if (connexion == null) { etat = Constantes.DECONNECTE; writeData("paquet d'indication liberation"); return(new PaquetIndicationLiberation(paquetRecu.getNoConn(), paquetRecu.getSrc(), paquetRecu.getDest(), 0x01)); } break; //Pour une demande de déconnexion case Constantes.N_DISCONNECT_REQ: writeLog("Demande de déconnexion Source: " + paquetRecu.getSrc() + "\t\t" + DateTime.Now); writeData("paquet d'indication liberation"); return(new PaquetIndicationLiberation(paquetRecu.getNoConn(), paquetRecu.getSrc(), paquetRecu.getDest(), 0x01)); break; //Data default: byte?retourData = receiveData(paquetRecu); if ((retourData & 0x09) == 0x09) { //Aquittement negatif writeData("paquet d'aqcuittement negatif"); return(new PaquetAcquittementNegatif(paquetRecu.getNoConn(), (byte)(retourData >> 5))); } else if ((retourData & 0x09) == 0x01) { //Acquittement positif writeData("paquet d'aqcuittement positif"); return(new PaquetAcquittement(paquetRecu.getNoConn(), (byte)(retourData >> 5))); } break; } return(null); }
public Carte(int valeur, Paquet.Couleur couleur) { Valeur = valeur; Couleur = couleur; }
public void TestPaquetTirer() { Paquet p = new Paquet(); Assert.IsNotNull(p.Tirer()); }