Пример #1
0
        public bool ObrisiTransakcijuKorisnika(string korIme, int brojTransakcije)
        {
            IIdentity       id  = Thread.CurrentPrincipal.Identity;
            WindowsIdentity wID = id as WindowsIdentity;

            CustomPrincipal principal = new CustomPrincipal(wID);


            if (!principal.IsInRole("Radnik"))
            {
                MyAuditBehavior.LogNeuspesnaAutorizacija();
                Console.WriteLine("Nemate permisiju..\n");
                return(false);
            }

            MyAuditBehavior.LogUspesnaAutorizacija();

            if (!MojaBaza.korisnici.ContainsKey(korIme))
            {
                Console.WriteLine("Ne postoji korisnik sa zadatim korisnickim imenom " + MojaBaza.korisnici[korIme].KorisnickoIme + "\n");
                return(false);
            }
            else
            {
                if (MojaBaza.korisnici[korIme].PrethodneTransakcije.Keys.Contains(brojTransakcije))
                {
                    MojaBaza.korisnici[korIme].PrethodneTransakcije.Remove(brojTransakcije);
                    return(true);
                }
                else
                {
                    Console.WriteLine("U listi korisnickih transakcija ne postoji transakcija sa tim brojem...\n");
                    return(false);
                }
            }
        }
Пример #2
0
        public static void MesecnoSkidanjeProvizije()
        {
            while (!ZavrsiThread)
            {
                foreach (var korisnik in MojaBaza.korisnici)
                {
                    if (korisnik.Value.StanjeRacuna < MojaBaza.provizijaZaMesecnoOdrzavanje)
                    {
                        if (korisnik.Value.BrojacZaOpomenu == MojaBaza.brojac)
                        {
                            continue;
                        }

                        korisnik.Value.BrojacZaOpomenu++;

                        if (korisnik.Value.BrojacZaOpomenu == MojaBaza.brojac)
                        {
                            UpisUTxt.UpisOpomene(korisnik.Value.KorisnickoIme);
                            MyAuditBehavior.LogNeuspesnoMesecnoSkidanjeProvizije();
                        }
                    }
                    korisnik.Value.StanjeRacuna -= MojaBaza.provizijaZaMesecnoOdrzavanje;
                    MyAuditBehavior.LogUspesnoMesecnoSkidanjeProvizije();
                }

                Thread.Sleep(MojaBaza.skalabilneSekunde * 1000);
            }

            return;

            #region comment
            ////provera da li postoji korisnik sa tim korisnickim imenom
            //if (MojaBaza.korisnici.ContainsKey(korIme))
            //{
            //    if (MojaBaza.korisnici[korIme].StanjeRacuna >= MojaBaza.provizijaZaMesecnoOdrzavanje)
            //    {
            //        MojaBaza.korisnici[korIme].StanjeRacuna -= 200;
            //        Console.WriteLine("Preostalo stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " je: " + MojaBaza.korisnici[korIme].StanjeRacuna + "\n");
            //    }
            //    else if (MojaBaza.korisnici[korIme].StanjeRacuna < 200 && MojaBaza.korisnici[korIme].BrojacZaOpomenu < 2)
            //    {
            //        Console.WriteLine("Korisnik " + MojaBaza.korisnici[korIme].KorisnickoIme +  " nema dovoljno sredstava za skidanje sa racuna(200, 00 RSD)");
            //        MojaBaza.korisnici[korIme].BrojacZaOpomenu++;
            //    }
            //    else if (MojaBaza.korisnici[korIme].StanjeRacuna < 200 && MojaBaza.korisnici[korIme].BrojacZaOpomenu == 2)
            //    {
            //        Console.WriteLine("Korisnik " + MojaBaza.korisnici[korIme].KorisnickoIme +  " nema dovoljno sredstava za skidanje sa racuna i salje mu se opomena!\n");
            //        UpisUTxt.UpisOpomene(korIme);
            //        UpisUTxt.IspisiPoruke(korIme);
            //    }
            //    else if(MojaBaza.korisnici[korIme].StanjeRacuna < 200 && MojaBaza.korisnici[korIme].BrojacZaOpomenu > 2)
            //    {
            //        Console.WriteLine("Opomena je vec poslata...\n");
            //        UpisUTxt.IspisiPoruke(korIme);
            //    }

            //}
            //else
            //    Console.WriteLine("Ne postoji korisnik sa zadatim korisnickim imenom " + MojaBaza.korisnici[korIme].KorisnickoIme + " za skidanje mesecne provizije...\n");

            #endregion
        }
Пример #3
0
        public bool Uplata(string korIme, string korImeUplatioc, double novac, int izbor)
        {
            //string temp = "";

            IIdentity       id  = Thread.CurrentPrincipal.Identity;
            WindowsIdentity wID = id as WindowsIdentity;

            CustomPrincipal principal = new CustomPrincipal(wID);


            if (!principal.IsInRole("Korisnik"))
            {
                MyAuditBehavior.LogNeuspesnaAutorizacija();
                Console.WriteLine("Nemate permisiju..\n");
                return(false);
            }

            MyAuditBehavior.LogUspesnaAutorizacija();

            if (!MojaBaza.korisnici.ContainsKey(korIme))
            {
                Console.WriteLine("Ne postoji korisnik na ciji racun radnik treba da uplati pare...\n");
                MyAuditBehavior.LogNeuspesnaTransakcija();
                return(false);
            }
            else
            {
                /*
                 * MojaBaza.korisnici[korIme].StanjeRacuna += novac;
                 * MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr++, novac);
                 * Console.WriteLine("Stanje na racunu korisnika nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna);
                 * return true;*/

                switch (izbor)
                {
                case 1:
                    MojaBaza.korisnici[korIme].StanjeRacuna += novac;
                    MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac);
                    MojaBaza.korisnici[korIme].BrTr++;
                    Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna);
                    MyAuditBehavior.LogUspesnaTransakcija();
                    break;

                case 2:

                    if (MojaBaza.korisnici[korImeUplatioc].StanjeRacuna > 100)
                    {
                        MojaBaza.korisnici[korIme].StanjeRacuna         += novac;
                        MojaBaza.korisnici[korImeUplatioc].StanjeRacuna -= 100;
                        MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac);
                        MojaBaza.korisnici[korIme].BrTr++;
                        MyAuditBehavior.LogUspesnaTransakcija();
                        Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna);
                    }
                    else
                    {
                        Console.WriteLine("Nemoguce uplatiti novac");
                        MyAuditBehavior.LogNeuspesnaTransakcija();
                        return(false);
                    }
                    break;

                case 3:
                    if (MojaBaza.korisnici[korImeUplatioc].StanjeRacuna > 0.3 * novac)
                    {
                        MojaBaza.korisnici[korIme].StanjeRacuna         += novac;
                        MojaBaza.korisnici[korImeUplatioc].StanjeRacuna -= 0.3 * novac;
                        // Console.WriteLine("Stanje na racunu korisnika nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna);
                        MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac);
                        MojaBaza.korisnici[korIme].BrTr++;
                        Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna);
                        MyAuditBehavior.LogUspesnaTransakcija();
                    }
                    else
                    {
                        Console.WriteLine("Nemoguce uplatiti novac");
                        MyAuditBehavior.LogNeuspesnaTransakcija();
                        return(false);
                    }
                    break;

                case 4:
                    if (MojaBaza.korisnici[korImeUplatioc].StanjeRacuna > 250)
                    {
                        MojaBaza.korisnici[korIme].StanjeRacuna         += novac;
                        MojaBaza.korisnici[korImeUplatioc].StanjeRacuna -= 250;
                        MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac);
                        MojaBaza.korisnici[korIme].BrTr++;
                        Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna);
                        MyAuditBehavior.LogUspesnaTransakcija();
                    }
                    else
                    {
                        Console.WriteLine("Nemoguce uplatiti novac");
                        MyAuditBehavior.LogNeuspesnaTransakcija();
                        return(false);
                    }
                    break;
                }
                return(true);
            }
        }
Пример #4
0
        static void Main(string[] args)
        {
            string srvCertCN = "PubSubEngine";

            MyAuditBehavior myAuditBehavior = new MyAuditBehavior();

            NetTcpBinding binding = new NetTcpBinding();

            binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate;

            X509Certificate2 srvCert = CertManager.GetCertificateFromStorage(StoreName.TrustedPeople, StoreLocation.LocalMachine, srvCertCN);

            EndpointAddress address = new EndpointAddress(new Uri("net.tcp://localhost:8888/Subscriber"), new X509CertificateEndpointIdentity(srvCert));

            MyServiceCallback subscriberCallback = new MyServiceCallback();
            InstanceContext   instanceContext    = new InstanceContext(subscriberCallback);

            string subject, from, to;

            using (Subscriber proxy = new Subscriber(binding, address, subscriberCallback))
            {
                Console.WriteLine("Connected to the PubSubEngine\n");

                while (true)
                {
                    proxy.RegisterSubscriber();
                    PrintMenu();
                    int choice = int.Parse(Console.ReadLine());

                    switch (choice)
                    {
                    case 1:
                        if (proxy.UnregisterSubscriber())
                        {
                            Console.WriteLine("Successfully unregistered.");
                        }
                        else
                        {
                            Console.WriteLine("Failed to unregister.");
                        }
                        break;

                    case 2:
                        Console.Write("Enter topic name: ");
                        subject = Console.ReadLine();
                        Console.Write("Enter risk range: \nfrom: ");
                        from = Console.ReadLine();
                        Console.Write("to: ");
                        to = Console.ReadLine();
                        if (proxy.Subscribe(subject, Int32.Parse(from), Int32.Parse(to)))
                        {
                            Console.WriteLine("Successfully subscribed.");
                        }
                        else
                        {
                            Console.WriteLine("Unable to subscribe");
                        }
                        break;

                    case 3:
                        Console.Write("Enter topic name: ");
                        if (proxy.Unsubsrcibe(Console.ReadLine()))
                        {
                            Console.WriteLine("Successfully unsubscribed.");
                        }
                        else
                        {
                            Console.WriteLine("Unable to unsubscribe.");
                        }
                        break;

                    default:
                        Console.WriteLine("Bad input, try again.");
                        break;
                    }

                    if (choice == 1)
                    {
                        break;
                    }
                }
            }
        }