/// <summary> /// Nasumično generira količine otpada po vrsti otpada i prema kategoriji korisnika. /// </summary> /// <param name="parametri"></param> /// <param name="generatorBrojeva"></param> /// <param name="kategorija"></param> /// <returns></returns> private static Dictionary<VrstaOtpada, float> OdrediOtpadKorisnikuPoVrsti(ParametriSingleton parametri, GeneratorBrojevaSingleton generatorBrojeva, Kategorija kategorija) { string korisnikKategorija = kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int brojDecimala = parametri.DohvatiParametarInt("brojDecimala"); Dictionary<VrstaOtpada, float> otpadiKorisnika = new Dictionary<VrstaOtpada, float>(); foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; otpadiKorisnika[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); } return otpadiKorisnika; }
public static List <Ulica> OdrediOtpadKorisnicima(List <Ulica> ulice, string datotekaParametara) { ParametriSingleton parametri = ParametriSingleton.DohvatiInstancu(datotekaParametara); int sjemeGeneratora = int.Parse(parametri.DohvatiParametar("sjemeGeneratora")); GeneratorBrojevaSingleton generatorBrojeva = GeneratorBrojevaSingleton.DohvatiInstancu(sjemeGeneratora); int brojDecimala = parametri.DohvatiParametarInt("brojDecimala"); foreach (Ulica ulica in ulice) { Dictionary <VrstaOtpada, float> sumaOtpada = new Dictionary <VrstaOtpada, float>(); foreach (Korisnik korisnik in ulica.KorisniciMali) { foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { string korisnikKategorija = korisnik.Kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; korisnik.Otpad[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); sumaOtpada[vrsta] = 0; sumaOtpada[vrsta] += korisnik.Otpad[vrsta]; } } foreach (Korisnik korisnik in ulica.KorisniciSrednji) { foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { string korisnikKategorija = korisnik.Kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; korisnik.Otpad[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); sumaOtpada[vrsta] += korisnik.Otpad[vrsta]; } } foreach (Korisnik korisnik in ulica.KorisniciVeliki) { foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { string korisnikKategorija = korisnik.Kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; korisnik.Otpad[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); sumaOtpada[vrsta] += korisnik.Otpad[vrsta]; } } Console.WriteLine(); Console.WriteLine(ulica.Naziv); foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { Console.WriteLine("{0}: {1}kg", vrsta, sumaOtpada[vrsta]); } } return(ulice); }