public RepositoryTests() { DbContext context = new Dab2_2RdbContext(); _uut = new Repository <Person>(context); }
static async Task Task(string[] args) { var context = new Dab2_2RdbContext(); var uow = new UnitOfWork(context); var personRepo = new Repository <Person>(context); var telephoneCompanyRepo = new Repository <TelephoneCompany>(context); var addressRepo = new Repository <Address>(context); var personAddressRepo = new UnionRepository <PersonAddress>(context); var addressTypeRepo = new Repository <AddressType>(context); var personAddressTypeRepo = new UnionRepository <PersonAddressType>(context); var cityRepo = new Repository <City>(context); var countryCodeRepo = new Repository <CountryCode>(context); var person = new Person { FirstName = "Kasper", LastName = "Hermansen", Email = "*****@*****.**", Context = "Myself", PhoneNumbers = new List <PhoneNumber>() { new PhoneNumber() { Number = "+45 28 99 02 58", Usage = "Work", }, new PhoneNumber() { Number = "+45 61 66 20 25", Usage = "School", } }, }; var telephoneCompany = new TelephoneCompany() { CompanyName = "Telmore" }; var address = new Address() { AddressName = new AddressName() { HouseNumber = "4", StreetName = "Grankrogen" } }; var personAddress = new PersonAddress() { Address = address, Person = person }; var addressType = new AddressType() { Type = "Home", Address = address }; var personAddressType = new PersonAddressType() { Person = person, AddressType = addressType }; var city = new City() { Name = "Skødstrup", ZipCode = "8541", }; city.Addresses.Add(address); var countryCode = new CountryCode() { City = city, Code = "Dk" }; Console.WriteLine("Creating classes"); Console.WriteLine(); // Create // Person await personRepo.CreateAsync(person); // Telephonecompany await telephoneCompanyRepo.CreateAsync(telephoneCompany); await personAddressRepo.CreateAsync(personAddress); await personAddressTypeRepo.CreateAsync(personAddressType); await cityRepo.CreateAsync(city); await countryCodeRepo.CreateAsync(countryCode); await uow.SaveAsync(); Console.WriteLine("Unit Of Work - Saving..."); Console.WriteLine("Reading info"); Console.WriteLine(); // Read person = personRepo.ReadAsync(person.Id).Result; PrintPerson(telephoneCompanyRepo, person, telephoneCompany); Console.WriteLine("Updating info"); Console.WriteLine(); // Update person.FirstName = "Karsten"; person.PhoneNumbers.Add(new PhoneNumber() { Number = "Blabla 22 22", Usage = "Misc" }); foreach (var personPhoneNumber in person.PhoneNumbers) { personPhoneNumber.TelephoneCompany = telephoneCompany; } await telephoneCompanyRepo.UpdateAsync(telephoneCompany.Id, telephoneCompany); await personRepo.UpdateAsync(person.Id, person); await uow.SaveAsync(); Console.WriteLine("Unit Of Work - Saving..."); PrintPerson(telephoneCompanyRepo, person, telephoneCompany); Console.WriteLine("Deleting Info"); Console.WriteLine(); // Delete personRepo.Delete(person); telephoneCompanyRepo.Delete(telephoneCompany); addressRepo.Delete(address); cityRepo.Delete(city); countryCodeRepo.Delete(countryCode); await uow.SaveAsync(); Console.WriteLine("Unit Of Work - Saving..."); try { person = null; person = personRepo.ReadAsync(person.Id).Result; } catch (Exception) { Console.WriteLine("Person not found..."); } }