コード例 #1
0
        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());
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        /*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);
            }
        }
コード例 #4
0
        public async Task <ActionResult <Paquet> > PostPaquet(Paquet paquet)
        {
            _context.Paquets.Add(paquet);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPaquet", new { id = paquet.IdPA }, paquet));
        }
コード例 #5
0
        public void ObtenirNom_Test()
        {
            //arrange
            string carte = "";

            //act
            carte = Paquet.ObtenirNom(10, Figure.Trefles);
            // assert
            Assert.AreEqual(carte, "10 de Trefles");
        }
コード例 #6
0
        public void DistribuerLesCartes_Test()
        {
            // arrange
            var pqtDeCartes = new Queue <Carte>();

            // act
            pqtDeCartes = Paquet.GenererPaquetDeCartes();
            // assert
            Assert.AreEqual(52, (int)pqtDeCartes.Count);
        }
コード例 #7
0
ファイル: SocketApp.cs プロジェクト: pirmin6/RtrCsharp
        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);
        }
コード例 #8
0
ファイル: SocketApp.cs プロジェクト: pirmin6/RtrCsharp
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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();
        }
コード例 #11
0
ファイル: Nabaztag.cs プロジェクト: Ellerbach/Nabaztag.Net
        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);
        }
コード例 #12
0
        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();
        }
コード例 #13
0
        /*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);
            }
        }
コード例 #14
0
        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));
            }
        }
コード例 #15
0
        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);
            }
        }
コード例 #16
0
        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);
        }
コード例 #17
0
ファイル: Carte.cs プロジェクト: chef-marmotte/jeu-blackjack
 public Carte(int valeur, Paquet.Couleur couleur)
 {
     Valeur = valeur;
     Couleur = couleur;
 }
コード例 #18
0
        public void TestPaquetTirer()
        {
            Paquet p = new Paquet();

            Assert.IsNotNull(p.Tirer());
        }