public Korisnik Get(int id) { KorisnikRepository manager = new KorisnikRepository(); var result = manager.Get(id); return(result); }
public void GetKorisnikByIDTest() { KorisnikRepository repo = new KorisnikRepository(); Korisnik korisnik = repo.GetKorisnikByID(5); Assert.IsNotNull(repo); }
public void GetAllKorisnikTest() { KorisnikRepository repo = new KorisnikRepository(); repo.GetAllKorisnik(); Assert.IsNotNull(repo); }
public void GetByIdTest() { KorisnikRepository repository = new KorisnikRepository(); Korisnik user = repository.Get(2027); Assert.AreEqual(2027, user.Id); }
public void InsertTest() { Random random = new Random(DateTime.Now.Millisecond); KorisnikRepository korisnikRep = new KorisnikRepository(); KorisnikCollection siteKorisnici = korisnikRep.GetAll(); int KorisnikID = random.Next(0, siteKorisnici.Count); Korisnik izbranKorisnik = siteKorisnici[KorisnikID]; PredmetRepository predmetRep = new PredmetRepository(); PredmetCollection sitePredmeti = predmetRep.GetAll(); int PredmetID = random.Next(0, sitePredmeti.Count); Predmet izbranPredmet = sitePredmeti[PredmetID]; Ocena ocena = new Ocena(); ocena.Ocenka = randomOcena(); ocena.student.Id = izbranKorisnik.Id; ocena.predmet.Id = izbranPredmet.Id; OcenaRepository repository = new OcenaRepository(); Ocena dodadete = repository.Insert(ocena); Assert.IsNotNull(dodadete); Assert.AreEqual(ocena.student.Id, dodadete.student.Id); Assert.AreEqual(ocena.predmet.Id, dodadete.predmet.Id); Assert.AreEqual(ocena.Ocenka, dodadete.Ocenka); Console.WriteLine("Додадена е нова оцена: СтудентИД: {0}, ПредметИД: {1}, Оцена: {2}", dodadete.student.Id, dodadete.predmet.Id, dodadete.Ocenka); }
public Korisnik TryGetByKorisnichkoIme(string korisnichkoIme) { var repository = new KorisnikRepository(); var result = repository.TryGetByKorisnichkoIme(korisnichkoIme); return(result); }
public void CreateRepositoryTest() { var testHelper = new TestHelper(); var repository = new KorisnikRepository(testHelper.Context); Assert.IsNotNull(repository, "repository is null"); }
public void InsertTest() { Random random = new Random(DateTime.Now.Millisecond); KorisnikRepository KorRep = new KorisnikRepository(); KorisnikCollection siteKorisnici = KorRep.GetAll(); int KorID = random.Next(0, siteKorisnici.Count); Korisnik izbranKorisnik = siteKorisnici[KorID]; PrijavaRepository PrijavaRep = new PrijavaRepository(); PrijavaCollection sitePrijavi = PrijavaRep.GetAll(); int prijava = random.Next(0, sitePrijavi.Count); Prijava izbranaprijava = sitePrijavi[prijava]; PrijavaStudent prijavaStudent = new PrijavaStudent(); prijavaStudent.prijava.Id = izbranaprijava.Id; prijavaStudent.student.Id = izbranKorisnik.Id; PrijavaStudentRepository repository = new PrijavaStudentRepository(); PrijavaStudent dodadete = repository.Insert(prijavaStudent); Assert.IsNotNull(dodadete); Assert.AreEqual(prijavaStudent.prijava.Id, dodadete.prijava.Id); Assert.AreEqual(prijavaStudent.student.Id, dodadete.student.Id); Console.WriteLine("Пријавен е нов студент: ПријаваИД: {0}, Студент: {1}, ", dodadete.prijava.Id, dodadete.student.Id); }
public Korisnik Delete(Domain.Security.Korisnik domainObject) { var repository = new KorisnikRepository(); var izbrishanKorisnik = repository.Delete(domainObject); return(izbrishanKorisnik); }
public Korisnik Update(Domain.Security.Korisnik domainObject) { KorisnikRepository manager = new KorisnikRepository(); Korisnik siteKorisnici = manager.Update(domainObject); return(siteKorisnici); }
public void DeleteKorisnikTest() { KorisnikRepository repo = new KorisnikRepository(); int id = repo.DeleteKorisnik(3); Assert.IsNotNull(repo); }
public KorisnikCollection GetAll() { KorisnikRepository manager = new KorisnikRepository(); KorisnikCollection siteKorisnici = manager.GetAll(); return(siteKorisnici); }
public void GetByStudiskaProgramaID() { KorisnikRepository repository = new KorisnikRepository(); KorisnikCollection korisniciOdStudiskaP = repository.GetByStudiskaProgramaId(1023); Assert.IsNotNull(korisniciOdStudiskaP); Assert.IsTrue(korisniciOdStudiskaP.All(korisnik => korisnik.studiskaPrograma.Id == 1023)); foreach (Korisnik korisnik in korisniciOdStudiskaP) { Console.WriteLine("KорисникИД: {0}, Име: {1}, Корисничко име: {2}, Презиме: {3}, Пол: {4}, Студиска Програма: {5}, Организација: {6}, Еmail: {7}, Мобилен: {8}, ", korisnik.Id, korisnik.Ime, korisnik.Username, korisnik.Prezime, korisnik.Pol, korisnik.studiskaPrograma.Id, korisnik.organizacija.Id, korisnik.Email, korisnik.Mobilen); } }
public void GetAllTest() { KorisnikRepository repository = new KorisnikRepository(); KorisnikCollection zemi = repository.GetAll(); Assert.IsNotNull(zemi); Assert.IsTrue(zemi.Count >= 0); foreach (Korisnik korisnik in zemi) { Console.WriteLine("KорисникИД: {0}, Име: {1}, Корисничко име: {2}, Презиме: {3}, Пол: {4}, Студиска Програма: {5}, Организација: {6}, Еmail: {7}, Мобилен: {8}, ", korisnik.Id, korisnik.Ime, korisnik.Username, korisnik.Prezime, korisnik.Pol, korisnik.studiskaPrograma.Ime, korisnik.organizacija.Ime, korisnik.Email, korisnik.Mobilen); } }
public PanjController() { var db = new bazaContext(); var uow = new UnitOfWork(db); var mecRepository = new MecRepository(uow); var igracRepository = new IgracRepository(uow); var igraRepository = new IgraRepository(uow); var korisnikRepository = new KorisnikRepository(uow); var preprekeRepository = new PreprekeRepository(uow); var suciRepository = new SuciRepository(uow); var timPripadnostRepository = new TimPripadnostRepository(uow); var timRepository = new TimRepository(uow); var vrstaPreprekeRepository = new VrstaPreprekeRepository(uow); _panjService = new PanjService(uow, mecRepository, timRepository, timPripadnostRepository, suciRepository, preprekeRepository, korisnikRepository, igraRepository, igracRepository); }
public KorisnikDTO GetKorisnikById(int korisnikId) { try { using (BHaoDataContext context = new BHaoDataContext()) { KorisnikRepository repo = new KorisnikRepository(context); return(repo.GetById(korisnikId)); } } catch (Exception ex) { throw new FaultException(ex.Message); } }
public void AddAuthorTest() { Korisnik korisnik = new Korisnik(); korisnik.Ime = "Milos"; korisnik.Prezime = "Seckovic"; korisnik.BrojTelefona = "069123456"; korisnik.Email = "*****@*****.**"; korisnik.Username = "******"; korisnik.Password = "******"; KorisnikRepository repo = new KorisnikRepository(); int id = repo.AddKorisnik(korisnik); Assert.IsNotNull(id > 0); }
public void UpdateAuthorTest() { Korisnik korisnik = new Korisnik(); korisnik.IDKorisnik = 2; korisnik.Ime = "Kristina"; korisnik.Prezime = "Jovanovic"; korisnik.BrojTelefona = "063663163"; korisnik.Email = "*****@*****.**"; korisnik.Username = "******"; korisnik.Password = "******"; KorisnikRepository repo = new KorisnikRepository(); int id = repo.UpdateKorisnik(korisnik); Assert.IsNotNull(id > 0); }
public MasterRepository(ProjectDbContext context) { dbContext = context; ServisRepository = new ServisRepository(context); ServiserRacunaraRepository = new ServiserRacunaraRepository(context, ServisRepository); RacunarRepository = new RacunarRepository(context); VlasnikRacunaraRepository = new VlasnikRacunaraRepository(context); KomponentaRepository = new KomponentaRepository(context); GarantniListRepository = new GarantniListRepository(context); PosjedujeRepository = new PosjedujeRepository(context); SastojiSeRepository = new SastojiSeRepository(context); RadiRepository = new RadiRepository(context); DonosiRepository = new DonosiRepository(context); ServisiraRepository = new ServisiraRepository(context); RacunarskiServisRepository = new RacunarskiServisRepository(context); KorisnikRepository = new KorisnikRepository(context, VlasnikRacunaraRepository, ServiserRacunaraRepository); MiscRepository = new MiscRepository(context, PosjedujeRepository, KorisnikRepository, RacunarRepository, VlasnikRacunaraRepository); }
public AukcijaDTO GetAukcijaDetail(int aukcijaId, int korisnikId) { try { using (BHaoDataContext context = new BHaoDataContext()) { IAukcijaRepository aukcijaRepo = new AukcijaRepository(context); KorisnikRepository korisnikRepo = new KorisnikRepository(context); AukcijaDTO aukcija = new AukcijaDTO(); aukcija = aukcijaRepo.GetAukcijaDetail(aukcijaId, korisnikId); return(aukcija); }; } catch (Exception ex) { throw new FaultException(ex.Message); } }
public void AddKorisnikToRepositoryTest() { //Create repository var testHelper = new TestHelper(); var repository = new KorisnikRepository(testHelper.Context); //Create korisnik for adding var korisnikId = repository.GetLast() + 1; var korisnikToAdd = new Korisnik { KorisnikId = korisnikId, RadnoMjestoId = 2, DatumRodjenja = new DateTime(1994, 3, 3), Ime = "Miro", Prezime = "Miric" }; //Add korisnik to repository repository.Create(korisnikToAdd); //Check if korisnik is added to the database var korisnikFromDb = repository.Get(korisnikId); Assert.IsNotNull(korisnikFromDb, "korisnik from database is null"); Assert.AreEqual(korisnikToAdd.Ime, korisnikFromDb.Ime); }
public void InsertTest() { Random random = new Random(DateTime.Now.Millisecond); OrganizacijaRepository orgRep = new OrganizacijaRepository(); OrganizacijaCollection siteOrg = orgRep.GetAll(); int Org = random.Next(0, siteOrg.Count); Organizacija izbranaOrg = siteOrg[Org]; StudiskaProgramaRepository studiskaProgRep = new StudiskaProgramaRepository(); StudiskaProgramaCollection siteStudiskiProg = studiskaProgRep.GetAll(); int StudProg = random.Next(0, siteStudiskiProg.Count); StudiskaPrograma izbranaProg = siteStudiskiProg[StudProg]; Korisnik korisnik = new Korisnik(); Guid guid; guid = Guid.NewGuid(); int koris = random.Next(0, 10); korisnik.Ime = string.Format("И:{0}", guid.ToString().Substring(1, 16)); korisnik.Username = string.Format("KИ:{0}", guid.ToString().Substring(1, 16)); int pass = random.Next(0, 8); string binaren = Convert.ToString(pass, 2); byte[] bin = binaren.Split().Select(s => Convert.ToByte(s, 2)).ToArray(); korisnik.PasswordOdNiza = bin; korisnik.Prezime = string.Format("П:{0}", guid.ToString().Substring(1, 16)); korisnik.Pol = SlucaenIzbor(); korisnik.organizacija.Id = izbranaOrg.Id; korisnik.Email = string.Format("E:{0}", guid.ToString()); korisnik.Mobilen = string.Format("М:{0}", guid.ToString().Substring(1, 12)); if (koris < 5) { korisnik.Administrator = false; korisnik.Student = true; korisnik.Mentor = false; korisnik.studiskaPrograma.Id = izbranaProg.Id; } else { korisnik.Student = false; korisnik.Mentor = true; korisnik.studiskaPrograma = null; if (koris > 8) { korisnik.Administrator = true; } else { korisnik.Administrator = false; } } KorisnikRepository repository = new KorisnikRepository(); Korisnik dodadete = repository.Insert(korisnik); Assert.IsNotNull(dodadete); Assert.AreEqual(korisnik.Ime, dodadete.Ime); Assert.AreEqual(korisnik.Username, dodadete.Username); Assert.AreEqual(korisnik.PasswordOdNiza, dodadete.PasswordOdNiza); Assert.AreEqual(korisnik.Prezime, dodadete.Prezime); Assert.AreEqual(korisnik.Pol, dodadete.Pol); Assert.AreEqual(korisnik.organizacija.Id, dodadete.organizacija.Id); Assert.AreEqual(korisnik.Email, dodadete.Email); Assert.AreEqual(korisnik.Mobilen, dodadete.Mobilen); Assert.AreEqual(korisnik.Student, dodadete.Student); Assert.AreEqual(korisnik.Mentor, dodadete.Mentor); Console.WriteLine("Додаден е нов корисник: KорисникИД: {0}, Име: {1}, Корисничко име: {2}, Презиме: {3}, Пол: {4}, Студиска Програма: {5}, Организација: {6}, Еmail: {7}, Мобилен: {8}, ", dodadete.Id, dodadete.Ime, dodadete.Username, dodadete.Prezime, dodadete.Pol, dodadete.studiskaPrograma.Id, dodadete.organizacija.Id, dodadete.Email, dodadete.Mobilen); }
public void UpdateTest() { KorisnikRepository repository = new KorisnikRepository(); KorisnikCollection siteKorisnici = repository.GetAll(); Random random = new Random(DateTime.Now.Millisecond); int KId = random.Next(0, siteKorisnici.Count); Korisnik izbranKorisnik = siteKorisnici[KId]; Console.WriteLine("Се менуваат податоците за корисник:KорисникИД: {0}, Име: {1}, Корисничко име: {2}, Презиме: {3}, Пол: {4}, Студиска Програма: {5}, Организација: {6}, Еmail: {7}, Мобилен: {8}, ", izbranKorisnik.Id, izbranKorisnik.Ime, izbranKorisnik.Username, izbranKorisnik.Prezime, izbranKorisnik.Pol, izbranKorisnik.studiskaPrograma.Id, izbranKorisnik.organizacija.Id, izbranKorisnik.Email, izbranKorisnik.Mobilen); OrganizacijaRepository orgRep = new OrganizacijaRepository(); OrganizacijaCollection siteOrg = orgRep.GetAll(); int Org = random.Next(0, siteOrg.Count); Organizacija izbranaOrg = siteOrg[Org]; StudiskaProgramaRepository studiskaProgRep = new StudiskaProgramaRepository(); StudiskaProgramaCollection siteStudiskiProg = studiskaProgRep.GetAll(); int StudProg = random.Next(0, siteStudiskiProg.Count); StudiskaPrograma izbranaProg = siteStudiskiProg[StudProg]; Guid guid; guid = Guid.NewGuid(); int koris = random.Next(0, 10); izbranKorisnik.Ime = string.Format("New{0}", guid.ToString().Substring(1, 16)); izbranKorisnik.Username = string.Format("New{0}", guid.ToString().Substring(1, 16)); izbranKorisnik.Prezime = string.Format("New{0}", guid.ToString().Substring(1, 16)); izbranKorisnik.Pol = SlucaenIzbor(); izbranKorisnik.organizacija.Id = izbranaOrg.Id; izbranKorisnik.Email = string.Format("New{0}", guid.ToString()); izbranKorisnik.Mobilen = string.Format("New{0}", guid.ToString().Substring(1, 12)); if (koris < 5) { izbranKorisnik.Student = true; izbranKorisnik.Mentor = false; izbranKorisnik.Administrator = false; izbranKorisnik.studiskaPrograma.Id = izbranaProg.Id; } else { izbranKorisnik.Student = false; izbranKorisnik.Mentor = true; izbranKorisnik.studiskaPrograma = null; if (koris > 8) { izbranKorisnik.Administrator = true; } else { izbranKorisnik.Administrator = false; } } Korisnik izmenetKorisnik = repository.Update(izbranKorisnik); Assert.IsNotNull(izmenetKorisnik); Assert.AreEqual(izbranKorisnik.Id, izmenetKorisnik.Id); Assert.AreEqual(izbranKorisnik.Ime, izmenetKorisnik.Ime); Assert.AreEqual(izbranKorisnik.Username, izmenetKorisnik.Username); Assert.AreEqual(izbranKorisnik.Prezime, izmenetKorisnik.Prezime); Assert.AreEqual(izbranKorisnik.Pol, izmenetKorisnik.Pol); Assert.AreEqual(izbranKorisnik.Email, izmenetKorisnik.Email); Assert.AreEqual(izbranKorisnik.Mobilen, izmenetKorisnik.Mobilen); Console.WriteLine("Изменетите податоци за корисник: KорисникИД: {0}, Име: {1}, Корисничко име: {2}, Презиме: {3}, Пол: {4}, Студиска Програма: {5}, Организација: {6}, Еmail: {7}, Мобилен: {8}, ", izmenetKorisnik.Id, izmenetKorisnik.Ime, izmenetKorisnik.Username, izmenetKorisnik.Prezime, izmenetKorisnik.Pol, izmenetKorisnik.studiskaPrograma.Id, izmenetKorisnik.organizacija.Id, izmenetKorisnik.Email, izmenetKorisnik.Mobilen); }
public KorisnikBusiness() { this.korisnikRepository = new KorisnikRepository(); }
public static AukcijaDTO Licitiraj(Ponuda ponuda, BHaoDataContext _context) { IAukcijaRepository aukcijaRepo = new AukcijaRepository(_context); IInkrementRepository inkrementRepo = new InkrementRepository(_context); IDataRepository <Ponuda> ponudaRepo = new DataRepositoryBase <Ponuda>(_context); KorisnikRepository korisnikRepo = new KorisnikRepository(_context); AukcijaDTO aukcijaDTO = new AukcijaDTO(); Aukcija aukcija = aukcijaRepo.Get(ponuda.AukcijaId); if (aukcija.ProdavacId == ponuda.KorisnikId) { throw new PonudaCreateException("Prodavac ne može licitirati na vlastitu aukciju!"); } if (ponuda.MaksimalanIznos <= aukcija.MinimalnaCijena || ponuda.MaksimalanIznos <= aukcija.NajvecaPonuda) { throw new PonudaCreateException("Maksimalna ponuda mora biti veća od početne cijene ili trenutne najveće ponude!"); } if (aukcija.Zavrsena || aukcija.Zavrsetak < DateTime.Now) { throw new PonudaCreateException("Vrijeme aukcije isteklo, aukcija završena!"); } List <Ponuda> topDvijePonude = ponudaRepo.GetAll().Where(x => x.AukcijaId == ponuda.AukcijaId) .OrderByDescending(x => x.MaksimalanIznos).ThenByDescending(x => x.Id).Take(2).ToList(); Ponuda trenutnaNajveca = new Ponuda(); if (topDvijePonude.Count > 0) { trenutnaNajveca = topDvijePonude[0]; } if (aukcija.NajvecaPonuda == null) { aukcija.NajvecaPonuda = aukcija.MinimalnaCijena > 0 ? aukcija.MinimalnaCijena : 1; ponuda.Iznos = (decimal)aukcija.NajvecaPonuda; ponudaRepo.Insert(ponuda); aukcija.NajvecaPonuda = ponuda.Iznos; aukcija.NajveciPonudjacId = ponuda.KorisnikId; aukcijaRepo.Update(aukcija); aukcijaDTO.NajvecaPonuda = ponuda; } else { if (aukcija.NajveciPonudjacId == ponuda.KorisnikId) { throw new PonudaCreateException("Već imate najveću ponudu!"); } //Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude((decimal)aukcija.NajvecaPonuda); if (ponuda.MaksimalanIznos > trenutnaNajveca.MaksimalanIznos) { Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude(trenutnaNajveca.MaksimalanIznos); if ((trenutnaNajveca.MaksimalanIznos + inkrement.IznosInkrementa) <= ponuda.MaksimalanIznos) { ponuda.Iznos = trenutnaNajveca.MaksimalanIznos + inkrement.IznosInkrementa; } else { ponuda.Iznos = ponuda.MaksimalanIznos; } ponudaRepo.Insert(ponuda); if (trenutnaNajveca.Iznos != trenutnaNajveca.MaksimalanIznos) { trenutnaNajveca.Iznos = trenutnaNajveca.MaksimalanIznos; ponudaRepo.Insert(trenutnaNajveca); } aukcija.NajvecaPonuda = ponuda.Iznos; aukcija.NajveciPonudjacId = ponuda.KorisnikId; aukcijaRepo.Update(aukcija); aukcijaDTO.NajvecaPonuda = ponuda; } else { Ponuda novaNajveca = new Ponuda(); novaNajveca.AukcijaId = trenutnaNajveca.AukcijaId; novaNajveca.KorisnikId = trenutnaNajveca.KorisnikId; novaNajveca.MaksimalanIznos = trenutnaNajveca.MaksimalanIznos; Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude(ponuda.MaksimalanIznos); if (trenutnaNajveca.MaksimalanIznos > (ponuda.MaksimalanIznos + inkrement.IznosInkrementa)) { novaNajveca.Iznos = ponuda.MaksimalanIznos + inkrement.IznosInkrementa; novaNajveca.Vrijeme = DateTime.Now; } else { novaNajveca.Iznos = trenutnaNajveca.MaksimalanIznos; novaNajveca.Vrijeme = DateTime.Now; } ponuda.Iznos = ponuda.MaksimalanIznos; ponudaRepo.Insert(ponuda); ponudaRepo.Insert(novaNajveca); aukcija.NajvecaPonuda = novaNajveca.Iznos; aukcija.NajveciPonudjacId = novaNajveca.KorisnikId; aukcijaRepo.Update(aukcija); aukcijaDTO.NajvecaPonuda = novaNajveca; } //ponuda.Iznos = (decimal)aukcija.NajvecaPonuda + inkrement.IznosInkrementa < ponuda.MaksimalanIznos // ? (decimal)aukcija.NajvecaPonuda + inkrement.IznosInkrementa : ponuda.MaksimalanIznos; } //if (topDvijePonude.Count > 1) //{ // Ponuda ponuda1 = topDvijePonude.First(); // Ponuda ponuda2 = topDvijePonude.Last(); // if (ponuda1.KorisnikId != ponuda2.KorisnikId) // { // Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude(ponuda2.MaksimalanIznos); // ponuda1.Iznos = (ponuda2.MaksimalanIznos + inkrement.IznosInkrementa) > ponuda1.MaksimalanIznos ? ponuda1.MaksimalanIznos : ponuda2.MaksimalanIznos + inkrement.IznosInkrementa; // ponudaRepo.Insert(ponuda1); // aukcija.NajvecaPonuda = ponuda1.Iznos; // aukcija.NajveciPonudjacId = ponuda1.KorisnikId; // aukcijaRepo.Update(aukcija); // aukcijaDTO.NajveciPonudjacId = aukcija.NajveciPonudjacId; // aukcijaDTO.NajvecaPonuda = ponuda1; // aukcijaDTO.NajveciPonudjac = korisnikRepo.GetById(aukcija.NajveciPonudjacId); // aukcijaDTO.Prodavac = korisnikRepo.GetById(aukcija.ProdavacId); // return aukcijaDTO; // } // aukcijaDTO.NajveciPonudjacId = ponuda1.KorisnikId; // aukcijaDTO.NajvecaPonuda = ponuda1; // aukcijaDTO.NajveciPonudjac = korisnikRepo.GetById(ponuda1.KorisnikId); // return aukcijaDTO; //} //aukcija.NajvecaPonuda = ponuda.Iznos; //aukcija.NajveciPonudjacId = ponuda.KorisnikId; //aukcijaRepo.Update(aukcija); //aukcijaDTO.NajvecaPonuda = ponuda; aukcijaDTO.NajveciPonudjacId = aukcija.NajveciPonudjacId; aukcijaDTO.NajveciPonudjac = korisnikRepo.GetById(aukcija.NajveciPonudjacId); aukcijaDTO.Prodavac = korisnikRepo.GetById(aukcija.ProdavacId); return(aukcijaDTO); }
/// <summary> /// Initializes a new instance of the <see cref="KorisnikService"/> class. /// </summary> /// <param name="context">The context.</param> /// <param name="repository">The repository.</param> public KorisnikService(ApotekaContext context, KorisnikRepository repository) { this.apotekaContext = context ?? throw new ArgumentNullException(nameof(context)); this.korisnikRepository = repository ?? throw new ArgumentNullException(nameof(repository)); }