private static Dictionary <string, List <string> > IzvrsiInternal(KonverzijaCmd 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.SifraValutaIz) || string.IsNullOrEmpty(cmd.SifraValutaU))
            {
                DodajValidacionuGresku(rezultat, "SifraValuta", "Valuta mora biti uneta!!!");
                if (validacija == false)
                {
                    throw new Exception("Valuta mora biti uneta!!!");
                }
            }

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

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

            var sifraDomaceValute = VratiDomacuValutu();

            var stavkaU  = VratiStavkuKursneListe(sifraDomaceValute, cmd.SifraValutaU);
            var stavkaIz = VratiStavkuKursneListe(sifraDomaceValute, cmd.SifraValutaIz);

            if (stavkaU == null || stavkaIz == null)
            {
                DodajValidacionuGresku(rezultat, "", "Nepostojeca kursna lista!!!");
                if (validacija == false)
                {
                    throw new Exception("Nepostojeca kursna lista!!!");
                }
            }
            else
            {
                var medjuIznos = stavkaU.KupovniKurs * cmd.Iznos;

                var iznosProdaje = Math.Round(medjuIznos / stavkaIz.ProdajniKurs, 2);

                var sifraValuteProdaje = cmd.SifraValutaU;

                var iznosOtkupa = cmd.Iznos;

                var sifraValutaOtkupa = cmd.SifraValutaIz;

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

                IzvrsiTransakciju(menjackaTransakcija, validacija, rezultat);
            }

            return(rezultat);
        }
        public static Dictionary <string, List <string> > IzvrsiInternal(OtkupCmd 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 iznosOtkupa = cmd.Iznos;

                var iznosProdaje = stavka.KupovniKurs * cmd.Iznos;

                var sifraValutaOtkupa = cmd.SifraValuta;

                var sifraValuteProdaje = sifraDomaceValute;

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

                IzvrsiTransakciju(menjackaTransakcija, validacija, rezultat);
            }

            return(rezultat);
        }