private void Seed() { using (var context = new ConfigurationContext(ContextOptions)) { context.Database.EnsureDeleted(); context.Database.EnsureCreated(); IEnumerable <User> users = Enumerable.Range(1, 20) .Select(x => { var user = new User { FirstName = $"Tal_{x}", LastName = $"Almog_{x}", Username = $"TalAlmog45_{x}", Email = $"email_{x}" }; using (var hmac = new HMACSHA512()) { user.PasswordSalt = hmac.Key; user.PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes("test-password")); } return(user); }); context.AddRange(users); context.SaveChanges(); } }
/// <summary> /// Update/Delete de Contract Holder /// </summary> /// <param name="id"></param> /// <param name="vm"></param> /// <returns></returns> public ContractHolderViewModel Update(Guid id, ContractHolderViewModel vm) { using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { var individual = _db.Individuals.Where(ind => ind.BeneficiaryId == id).FirstOrDefault(); if (individual == null) { return(null); } var beneficary_addresses = _db.Beneficiary_Address.Where(benAd => benAd.BeneficiaryId == individual.BeneficiaryId).ToList(); var individual_telephones = _db.Individual_Telephone.Where(indTel => indTel.BeneficiaryId == individual.BeneficiaryId).ToList(); //Soft Delete if (vm.isDeleted) { if (_db.SignedContracts.Where(sigCon => (sigCon.ContractIndividualIsActive == true) && (sigCon.IndividualId == id)).Any()) { return(null); } individual.IsDeleted = vm.isDeleted; _db.Update(individual); } //Update else { if (Factories.IndividualFactory.Create(vm) == null || Factories.AddressFactory.CreateList(vm.individualAddresses).Count() != vm.individualAddresses.Count() || Factories.TelephoneFactory.CreateList(vm.individualTelephones).Count() != vm.individualTelephones.Count()) { return(null); } else if (individual.IndividualCPF != vm.individualCPF) { return(null); } individual.IndividualBirthdate = vm.individualBirthdate; individual.IndividualCPF = vm.individualCPF; individual.IndividualEmail = vm.individualEmail; individual.IndividualName = vm.individualName; individual.IndividualRG = vm.individualRG; _db.Update(individual); if (beneficary_addresses.Count() > 0) { _db.RemoveRange(beneficary_addresses); } if (individual_telephones.Count() > 0) { _db.RemoveRange(individual_telephones); } _db.AddRange(vm.individualAddresses); _db.AddRange(vm.individualTelephones); foreach (var benAdd in vm.individualAddresses) { _db.Add(new BeneficiaryAddress { BeneficiaryAddressId = Guid.NewGuid(), BeneficiaryId = individual.BeneficiaryId, AddressId = benAdd.AddressId }); } foreach (var indTel in vm.individualTelephones) { _db.Add(new BeneficiaryTelephone { BeneficiaryTelephoneId = Guid.NewGuid(), BeneficiaryId = individual.BeneficiaryId, TelephoneId = indTel.TelephoneId }); } } _db.SaveChanges(); scope.Complete(); return(vm); } }