示例#1
0
        public async Task <ModelRezultatKreiranjaRacuna> DodajRacun(RacunDomenskiModel racunZaDodavanje)
        {
            var proveraPostojecihRacuna = await _racunRepo.DajPoKorisnikuIValuti(racunZaDodavanje.IdKorisnika, racunZaDodavanje.IdValute);

            if (proveraPostojecihRacuna != null)
            {
                return(new ModelRezultatKreiranjaRacuna
                {
                    Uspeh = false,
                    Greska = Greske.RACUN_POSTOJECI_RACUN
                });
            }

            Racun racunZaUnos = new Racun
            {
                IdKorisnika = racunZaDodavanje.IdKorisnika,
                IdRacuna    = racunZaDodavanje.IdRacuna,
                IdValute    = racunZaDodavanje.IdValute
            };

            var rezultatUnosa = _racunRepo.Insert(racunZaUnos);

            if (proveraPostojecihRacuna != null)
            {
                return(new ModelRezultatKreiranjaRacuna
                {
                    Uspeh = false,
                    Greska = Greske.RACUN_GRESKA_PRI_UNOSI
                });
            }

            _racunRepo.Sacuvaj();

            ModelRezultatKreiranjaRacuna unetiRacun = new ModelRezultatKreiranjaRacuna
            {
                Uspeh  = true,
                Greska = null,
                Racun  = new RacunDomenskiModel
                {
                    IdKorisnika = rezultatUnosa.IdKorisnika,
                    IdRacuna    = rezultatUnosa.IdRacuna,
                    IdValute    = rezultatUnosa.IdValute,
                    Stanje      = rezultatUnosa.Stanje
                }
            };

            return(unetiRacun);
        }
示例#2
0
        public async Task <ModelRezultatKreiranjaRacuna> OduzmiSredstva(long id, decimal sumaNovca)
        {
            // Provera da li racun postoji
            var postojeciRacun = await _racuniRepozitorijum.DajPoIdRacuna(id);

            if (postojeciRacun == null)
            {
                return(new ModelRezultatKreiranjaRacuna
                {
                    Uspeh = false,
                    Greska = Greske.RACUN_NEPOSTOJECI_RACUN
                });
            }

            // Provera da li racun ima dovoljno sredstava za placanje
            if (postojeciRacun.Stanje < sumaNovca)
            {
                return(new ModelRezultatKreiranjaRacuna
                {
                    Uspeh = false,
                    Greska = Greske.RACUN_NEDOVOLJNO_SREDSTAVA
                });
            }

            // Skidanje Sredstava
            Racun racunZaIzmenu = new Racun
            {
                IdRacuna    = postojeciRacun.IdRacuna,
                IdKorisnika = postojeciRacun.IdKorisnika,
                IdValute    = postojeciRacun.IdValute,
                Stanje      = postojeciRacun.Stanje - sumaNovca
            };

            var rezultatIzmene = _racuniRepozitorijum.Izmeni(racunZaIzmenu);

            if (rezultatIzmene == null)
            {
                return(new ModelRezultatKreiranjaRacuna
                {
                    Uspeh = false,
                    Greska = Greske.RACUN_GRESKA_PRI_SKIDANJU_SREDSTAVA
                });
            }

            _racuniRepozitorijum.Sacuvaj();

            // Odgovaranje novim stanjem racuna
            RacunDomenskiModel rezultatIzmeneModel = new RacunDomenskiModel
            {
                IdRacuna    = rezultatIzmene.IdRacuna,
                IdKorisnika = rezultatIzmene.IdKorisnika,
                IdValute    = rezultatIzmene.IdValute,
                Stanje      = rezultatIzmene.Stanje
            };

            ModelRezultatKreiranjaRacuna rezultat = new ModelRezultatKreiranjaRacuna
            {
                Greska = null,
                Uspeh  = true,
                Racun  = rezultatIzmeneModel
            };

            return(rezultat);
        }