示例#1
0
 public void CalculationPackage_FromString_PrazanString()
 {
     Assert.Throws <IndexOutOfRangeException>(() => {
         CalculationPackage cp = new CalculationPackage();
         cp.FromString(" ");
     });
 }
示例#2
0
        public void CalculationPackage_ToString_Ispravan(string tekst)
        {
            CalculationPackage cp = new CalculationPackage(ispravanDatum, 255.16, VrstaProracuna.MAKSIMALNI);

            cp.PosVreme = ispravanDatum;
            Assert.AreEqual(tekst, cp.ToString());
        }
示例#3
0
 public void CalculationPackage_FromString_NeispravanDatumFormat(string tekst)
 {
     Assert.Throws <ArgumentNullException>(() => {
         CalculationPackage cp = new CalculationPackage();
         cp.FromString(tekst);
     });
 }
示例#4
0
 [TestCase("59/45/22/28/10/2020-59/45/22/28/10/2020-sasasas-MAKSIMALNI")]  //NE VALJA KONVERZIJA VREDNOSTI MERENJA
 public void CalculationPackage_FromString_NeispravanDatumBroj(string tekst)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => {
         CalculationPackage cp = new CalculationPackage();
         cp.FromString(tekst);
     });
 }
示例#5
0
        public void CalculationPackage_Konstruktor_DobriParametri(double vrednost, VrstaProracuna vrsta)
        {
            CalculationPackage cp = new CalculationPackage(ispravanDatum, vrednost, vrsta);

            Assert.AreEqual(vrednost, cp.Rezultat);
            Assert.AreEqual(vrsta, cp.VrstaProracuna);
            Assert.AreEqual(ispravanDatum, cp.VremeProracuna);
        }
        public void DataAccessCommunication_SendMessage_Ispravan_SlanjePaketaDa()
        {
            List <ClientPackage> lista = new List <ClientPackage>();
            CalculationPackage   paket = new CalculationPackage();
            //public static void SendMessage(ref List<ClientPackage> compack,DateTime dat,bool slanje_paketa,CalculationPackage packetOut)
            string teststring = "Poruka uspesno poslata";
            var    output     = new StringWriter();

            Console.SetOut(output);
            CalculationFunctions.DataAccessCommunication.SendMessage(ref lista, ispravanDatum, true, paket);
            Assert.AreEqual(output.ToString(), teststring);
        }
示例#7
0
        public List <ClientPackage> RetrieveCalculations(bool slanje_paketa, CalculationPackage packetOut)
        {
            List <ClientPackage> kalkulacije = new List <ClientPackage>();
            Int32 portDataAccess             = 10010;
            DataAccessCommunication dac      = new DataAccessCommunication(portDataAccess, IPAddress.Parse("127.0.0.1"));
            DateTime datum = new DateTime();
            var      th1   = new Thread(() => DataAccessCommunication.SendMessage(ref kalkulacije, datum, slanje_paketa, packetOut));

            th1.IsBackground = true;
            th1.Start();
            return(kalkulacije);
        }
示例#8
0
        public void CalculationPackage_FromString_Ispravan(string tekst)
        {
            CalculationPackage cpkontrolni = new CalculationPackage(ispravanDatum, 255.16, VrstaProracuna.MAKSIMALNI);

            cpkontrolni.PosVreme = ispravanDatum;
            CalculationPackage cptest = new CalculationPackage();

            cptest.FromString(tekst);
            Assert.AreEqual(cpkontrolni.PosVreme, cptest.PosVreme);
            Assert.AreEqual(cpkontrolni.VremeProracuna, cptest.VremeProracuna);
            Assert.AreEqual(cpkontrolni.VrstaProracuna, cptest.VrstaProracuna);
            Assert.AreEqual(cpkontrolni.Rezultat, cptest.Rezultat);
        }
        public void SetUp()
        {
            calcPack      = new CalculationPackage(ispravanDatum, 245.16, VrstaProracuna.MINIMALNI);
            ispravanDatum = new DateTime(2020, 10, 28, 22, 45, 59);
            ch            = new Calculation();
            ClientPackage cp = new ClientPackage();

            cp.Datum     = ispravanDatum;
            cp.Potrosnja = 256.36;
            cp.Region    = "VOJVODINA";
            ispravnalista.Add(cp);
            cp           = new ClientPackage();
            cp.Datum     = new DateTime(2020, 6, 15, 15, 59, 59);
            cp.Potrosnja = 3636.36;
            cp.Region    = "MACVA";
            ispravnalista.Add(cp);
        }
示例#10
0
        public static void SendInfoToInsert_Calculation(CalculationPackage cp)
        {
            string        responseData = "";
            IPEndPoint    iPEndPoint   = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20000);
            TcpClient     client       = new TcpClient(iPEndPoint);
            NetworkStream ns           = client.GetStream();

            string poruka = "Calculation_Update;" + cp.ToString();

            Byte[] data = System.Text.Encoding.ASCII.GetBytes(poruka);
            ns.Write(data, 0, data.Length);

            Int32 bytes = ns.Read(data, 0, data.Length);

            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
            ns.Close();
            client.Close();
        }
示例#11
0
        public static void ReceiveMessage()
        {
            try
            {
                DataBaseCommunication dbc = new DataBaseCommunication();
                clh = new TcpListener(IPAddress.Parse("127.0.0.1"), 10010);
                clh.Start();
                Byte[]   bytes = new Byte[256];
                String   data  = null;
                DateTime datum = new DateTime();
                while (true)
                {
                    Console.Write("Waiting for a connection... ");
                    // Perform a blocking call to accept requests.
                    TcpClient client = clh.AcceptTcpClient();
                    Console.WriteLine("Connected!");
                    data = null;
                    // Get a stream object for reading and writing
                    NetworkStream stream = client.GetStream();
                    int           i;
                    // Loop to receive all the data sent by the client.
                    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        // Translate data bytes to a ASCII string.
                        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                        Console.WriteLine("Received: {0}", data);
                        string[] provera = data.Split(';');
                        if (provera[0].Equals("Kalkulacija"))
                        {
                            CalculationPackage cp = new CalculationPackage();
                            cp.FromString(provera[1]);
                            var t1 = new Thread(() => DataBaseCommunication.SendInfoToInsert_Calculation(cp));
                            t1.Start();

                            string odgovor = "Dodato";
                            bytes = System.Text.Encoding.ASCII.GetBytes(odgovor);
                            stream.Write(bytes, 0, bytes.Length);
                        }
                        else
                        {
                            //5/1/2008 6:32:06 PM
                            //Dodati if sa proverom posiljke od CalculationHandlera
                            string[] vreme = data.Split('/');
                            //vreme[0] - godina, vreme[1] - mesec, vreme[2] - dan, vreme[3] - sat, vreme[4] - minut, vreme[5] - sekund;
                            datum = new DateTime(Int32.Parse(vreme[0]), Int32.Parse(vreme[1]), Int32.Parse(vreme[2]), Int32.Parse(vreme[3]), Int32.Parse(vreme[4]), Int32.Parse(vreme[5]));
                            string odgovor = "";
                            //IZDVOJEN DATUM, OVDE TREBA DA SE POZIVA FUNKCIJA KOJA CE DA RETRIEVE LISTU PO OVOM DATUMU
                            var t1 = new Thread(() => DataBaseCommunication.AskForList(datum, ref odgovor, false));
                            t1.Start();
                            //VRACANJE LISTE PRETABANE U STRING
                            bytes = System.Text.Encoding.ASCII.GetBytes(odgovor);
                            stream.Write(bytes, 0, bytes.Length);
                        }
                    }
                    // Shutdown and end connection
                    client.Close();
                }
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                // Stop listening for new clients.
                clh.Stop();
            }
        }
示例#12
0
 public void CalculationPackage_Konstruktor_NeispravnaVrsta(double vrednost, VrstaProracuna vrsta)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => {
         CalculationPackage cp = new CalculationPackage(ispravanDatum, vrednost, vrsta);
     });
 }
示例#13
0
        static void Main(string[] args)
        {
            Calculation c         = new Calculation();
            TcpListener server    = null;
            Int32       port      = 10003;
            IPAddress   localAddr = IPAddress.Parse("127.0.0.1");

            try
            {
                server = new TcpListener(localAddr, port);
                // Start listening for client requests.
                server.Start();
                // Buffer for reading data
                Byte[] bytes   = new Byte[256];
                String data    = null;
                bool   trigger = false;
                // Enter the listening loop.
                while (true)
                {
                    Console.Write("Waiting for a connection... ");
                    // Perform a blocking call to accept requests.
                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("Connected!");
                    data = null;
                    // Get a stream object for reading and writing
                    NetworkStream stream = client.GetStream();
                    int           i;
                    // Loop to receive all the data sent by the client.
                    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        // Translate data bytes to a ASCII string.
                        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                        Console.WriteLine("Received: {0}", data);
                        trigger = true;
                        if (trigger)
                        {
                            //primamo string formatiran unutar override metode toString klase ClientPackage
                            List <double>        listaMerenja = new List <double>();
                            CalculationPackage   paketOut     = new CalculationPackage();
                            List <ClientPackage> unosi_baza   = c.RetrieveCalculations(false, paketOut);

                            List <string> unosi = new List <string>(unosi_baza.Count);
                            foreach (ClientPackage cp in unosi_baza)
                            {
                                unosi.Add(cp.ToString());
                            }

                            int k = 0;
                            while (listaMerenja.Count != unosi.Count)
                            {
                                string[] delovi = unosi[k].Split('-');
                                //radimo sa DateTime delom
                                string[] datumpodaci = delovi[0].Split('/');
                                int      sekunde = 0, minuti = 0, sati = 0, dani = 0, meseci = 0, godine = 0;
                                Int32.TryParse(datumpodaci[0], out sekunde);
                                Int32.TryParse(datumpodaci[1], out minuti);
                                Int32.TryParse(datumpodaci[2], out sati);
                                Int32.TryParse(datumpodaci[3], out dani);
                                Int32.TryParse(datumpodaci[4], out meseci);
                                Int32.TryParse(datumpodaci[0], out godine);
                                DateTime datum = new DateTime(godine, meseci, dani, sati, minuti, sekunde);
                                paketOut.VremeProracuna = datum;
                                //radimo sa vrednosti potrosnje
                                double potrosnja = 0;
                                Double.TryParse(delovi[2], out potrosnja);
                                listaMerenja.Add(potrosnja);
                                paketOut.PosVreme = DateTime.Now;
                                if (data.Equals("min"))
                                {
                                    paketOut.Rezultat       = listaMerenja.Min();
                                    paketOut.VrstaProracuna = VrstaProracuna.MINIMALNI;
                                }
                                //Maximum
                                if (data.Equals("max"))
                                {
                                    paketOut.Rezultat       = listaMerenja.Max();
                                    paketOut.VrstaProracuna = VrstaProracuna.MAKSIMALNI;
                                }
                                //Prosek
                                if (data.Equals("average"))
                                {
                                    paketOut.Rezultat       = listaMerenja.Average();
                                    paketOut.VrstaProracuna = VrstaProracuna.PROSECNI;
                                }
                                k++;
                                if (k == unosi.Count)
                                {
                                    k = 0;
                                }
                            }
                            //Slanje paketOut-a na upis u bazu podataka
                            unosi_baza = c.RetrieveCalculations(true, paketOut);
                            trigger    = false;
                        }
                    }
                }
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                // Stop listening for new clients.
                server.Stop();
            }

            Console.WriteLine("\nHit enter to continue...");
            Console.Read();
        }