public static decimal Izracunaj(ProdajaCmd cmd)
        {
            var rezultat = (decimal)0;

            if (cmd.Iznos < 0)
            {
                return(rezultat);
            }

            if (string.IsNullOrEmpty(cmd.SifraValuta))
            {
                return(rezultat);
            }

            if (VratiValutu(cmd.SifraValuta) == null)
            {
                return(rezultat);
            }

            var sifraDomaceValute = VratiDomacuValutu();

            var stavka = VratiStavkuKursneListe(sifraDomaceValute, cmd.SifraValuta);

            if (stavka == null)
            {
                return(rezultat);
            }

            rezultat = stavka.ProdajniKurs * cmd.Iznos;

            return(rezultat);
        }
 public static void Izvrsi(ProdajaCmd cmd)
 {
     IzvrsiInternal(cmd);
 }
        private static Dictionary <string, List <string> > IzvrsiInternal(ProdajaCmd cmd, bool validacija = false)
        {
            var rezultat = new Dictionary <string, List <string> >();

            if (cmd.Iznos < 0)
            {
                DodajValidacionuGresku(rezultat, "Iznos", "Iznos mora biti veći od 0!");
                if (validacija == false)
                {
                    throw new Exception("Iznos mora biti veći od 0!");
                }
            }

            if (string.IsNullOrEmpty(cmd.SifraValuta))
            {
                DodajValidacionuGresku(rezultat, "SifraValuta", "Valuta mora biti uneta!!!");
                if (validacija == false)
                {
                    throw new Exception("Valuta mora biti uneta!!!");
                }
            }

            if (VratiValutu(cmd.SifraValuta) == null)
            {
                DodajValidacionuGresku(rezultat, "SifraValuta", "Nepostojeca valuta!!!");
                if (validacija == false)
                {
                    throw new Exception("Nepostojeca valuta!!!");
                }
            }

            var sifraDomaceValute = VratiDomacuValutu();

            var stavka = VratiStavkuKursneListe(sifraDomaceValute, cmd.SifraValuta);

            if (stavka == null)
            {
                DodajValidacionuGresku(rezultat, "", "Nepostojeca kursna lista!!!");
                if (validacija == false)
                {
                    throw new Exception("Nepostojeca kursna lista!!!");
                }
            }
            else
            {
                var iznosProdaje = cmd.Iznos;

                var iznosOtkupa = stavka.ProdajniKurs * cmd.Iznos;

                var sifraValuteProdaje = cmd.SifraValuta;

                var sifraValutaOtkupa = sifraDomaceValute;

                var menjackaTransakcija = new MenjackaTransakcija
                {
                    DatumTransakcije   = DateTime.Now,
                    IznosOtkupa        = iznosOtkupa,
                    SifraValutaOtkupa  = sifraValutaOtkupa,
                    SifraValutaProdaje = sifraValuteProdaje,
                    Naziv                  = cmd.Naziv,
                    Opis                   = cmd.Opis,
                    Tip                    = TipMenjackeTransakcije.Prodaja,
                    IznosProdaje           = iznosProdaje,
                    FinansijskeTransakcije =
                        NapraviFinansijskeTransakcije(sifraDomaceValute, iznosOtkupa, sifraValuteProdaje, iznosProdaje)
                };

                IzvrsiTransakciju(menjackaTransakcija, validacija, rezultat);
            }

            return(rezultat);
        }
 public static Dictionary <string, List <string> > Validiraj(ProdajaCmd cmd)
 {
     return(IzvrsiInternal(cmd, true));
 }