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); }
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); }