public Task <int> CreateDiscountVoucher(VoucherRequest discountRequest) { // var numOfVouchersCreated = 0; var vouchersList = new List <Discount>(discountRequest.NumbersOfVoucherToCreate); //create the gift object from the Vouher foreach (var num in Enumerable.Range(1, discountRequest.NumbersOfVoucherToCreate)) { Discount discountVoucher = new Discount() { Code = CodeGenerator.HashedCode(discountRequest), CreationDate = discountRequest.CreationDate, ExpiryDate = discountRequest.ExpiryDate, VoucherStatus = "Active", VoucherType = discountRequest.VoucherType, Description = discountRequest.Description, DiscountAmount = discountRequest.DiscountAmount, DiscountUnit = discountRequest.DiscountUnit, DiscountPercentage = discountRequest.DiscountPercentage, RedemptionCount = 0L, MerchantId = discountRequest.MerchantId, Metadata = discountRequest.Metadata }; vouchersList.Add(discountVoucher); } //persist the object to the db return(DiscountRepository.CreateDiscountVoucherAsync(vouchersList)); }
public async Task <ActionResult <object> > CreateVoucher([FromBody] VoucherRequest voucherReq) { var createdVoucher = await baseVoucherService.CreateVoucher(voucherReq); var voucherType = voucherReq.VoucherType; //TODO:provide better status code to client on internal error if (createdVoucher == null) { return(new StatusCodeResult(500)); //(new {Message = "Could not create the vouchers"}); } switch (voucherType.ToUpper()) { case "GIFT": return(CreatedAtAction(nameof(GetAllGiftVouchers), new { VoucherCreated = createdVoucher, Message = $"Created {createdVoucher} Vouchers" })); case "DISCOUNT": return(CreatedAtAction(nameof(GetAllDiscountVouchers), new { VoucherCreated = createdVoucher, Message = $"Created {createdVoucher} Vouchers" })); case "VALUE": return(CreatedAtAction(nameof(GetAllValueVouchers), new { value = "value/all" }, new { VoucherCreated = createdVoucher, Message = $"Created {createdVoucher} Vouchers" })); default: return(BadRequest(new { Message = "Invalid Voucher type" })); } }
public Task <int> CreateGiftVoucher(VoucherRequest giftRequest) { // var numOfVouchersCreated = 0; var vouchersList = new List <Gift>(giftRequest.NumbersOfVoucherToCreate); //create the gift object from the Vouher foreach (var num in Enumerable.Range(1, giftRequest.NumbersOfVoucherToCreate)) { Gift giftVoucher = new Gift() { Code = CodeGenerator.HashedCode(giftRequest), CreationDate = giftRequest.CreationDate, ExpiryDate = giftRequest.ExpiryDate, VoucherStatus = "Active", VoucherType = giftRequest.VoucherType, Description = giftRequest.Description, GiftAmount = giftRequest.GiftAmount, MerchantId = giftRequest.MerchantId, Metadata = giftRequest.Metadata, GiftBalance = giftRequest.GiftAmount //giftbalance == gift amount at creation }; vouchersList.Add(giftVoucher); } return(GiftRepository.CreateGiftVoucherAsync(vouchersList)); }
public Task <int> CreateValueVoucher(VoucherRequest valueRequest) { // var numOfVouchersCreated = 0; var vouchersList = new List <Value>(valueRequest.NumbersOfVoucherToCreate); //create the gift object from the Vouher foreach (var num in Enumerable.Range(1, valueRequest.NumbersOfVoucherToCreate)) { Value valueVoucher = new Value() { Code = CodeGenerator.HashedCode(valueRequest), CreationDate = valueRequest.CreationDate, ExpiryDate = valueRequest.ExpiryDate, VoucherStatus = "Active", VoucherType = valueRequest.VoucherType, Description = valueRequest.Description, ValueAmount = valueRequest.ValueAmount, MerchantId = valueRequest.MerchantId, Metadata = valueRequest.Metadata, }; vouchersList.Add(valueVoucher); } return(ValueRepository.CreateValueVoucherAsync(vouchersList)); }
public List <CustomerGiftVoucherDTO> GetAllVouchers(VoucherRequest request) { var vouchers = _customerGiftVoucherRepository .All.Include(x => x.Customer); if (request.Status == VoucherStatus.Redeemed) { return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.Where(x => x.IsRedeem).ToList())); } else if (request.Status == VoucherStatus.Cancelled) { return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.Where(x => x.IsCanceled).ToList())); } else if (request.Status == VoucherStatus.Issued) { return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.Where(x => !x.IsCanceled && !x.IsRedeem).ToList())); } else if (request.Status == VoucherStatus.All) { return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.ToList())); } return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.ToList())); }
public void VoucherRequest_CanBeCreated_IsCreated() { VoucherRequest voucherRequest = new VoucherRequest(TestData.FileId, TestData.FileName, TestData.FileProfileId); voucherRequest.FileId.ShouldBe(TestData.FileId); voucherRequest.FileName.ShouldBe(TestData.FileName); voucherRequest.FileProfileId.ShouldBe(TestData.FileProfileId); }
public void CreateVoucher([FromBody] VoucherRequest voucherReq) { VoucherController controller = new VoucherController(); // Act ViewResult result = controller.CreateVoucher(voucherReq) as ViewResult; // Assert Assert.IsNotNull(result); }
public JukeBox.BLL.Response.ApiResponse RedeemVoucher(VoucherRequest request) { var apiResp = new JukeBox.BLL.Response.ApiResponse { ResponseType = -1, ResponseMessage = "Failed" }; var retVal = (new JukeBox.BLL.Account()).RedeemVoucher(request.VoucherPin, request.CustomerId); return(retVal); }
public FinanceResponse Find(VoucherRequest request) { var voucher = new Voucher(); var id = service.Linked(request.id, request.Linked); if (id == 0) { throw new FinanceException(FinanceResult.RECORD_NOT_EXIST); } voucher.header = service.FindHeader(id); voucher.entries = service.FindEntrys(id); voucher.udefenties = service.FindUdefEntrys(id); return(new VoucherResponse { Content = voucher }); }
public static string HashedCode(VoucherRequest voucherRequest) //TODO: move to a util class so it can be shared by all services { string hashedCode; //pattern or length; prefix; suffix string characterSet; string code; switch (voucherRequest.CharacterSet.ToLower()) { case "alphabet": characterSet = Constants.ALPHABET_CHARACTERS; break; case "numeric": characterSet = Constants.NUMBER_CHARACTERS; break; case "alphanumeric": characterSet = Constants.ALPHABET_CHARACTERS + Constants.NUMBER_CHARACTERS; break; default: characterSet = Constants.ALPHABET_CHARACTERS + Constants.NUMBER_CHARACTERS; break; } if (!string.IsNullOrEmpty(voucherRequest.CodePattern)) { code = CodeGenerator.GenerateCodeWithPattern( voucherRequest.CodePattern, characterSet, voucherRequest.Separator); } else //length is specified { code = CodeGenerator.GenerateCode(voucherRequest.CodeLength, characterSet); } if (!string.IsNullOrEmpty(voucherRequest.Prefix)) { code = CodeGenerator.GetCodeWithPrefix(voucherRequest.Prefix, code); } if (!string.IsNullOrEmpty(voucherRequest.Suffix)) { code = CodeGenerator.GetCodeWithSuffix(code, voucherRequest.Suffix); } hashedCode = CodeGenerator.Encrypt(code); return(hashedCode); }
public async Task <ApiResponse> TopUpVoucher( string urlBase, string servicePrefix, string controller, VoucherRequest requestVoucher) { try { var request = JsonConvert.SerializeObject(requestVoucher); var content = new StringContent( request, Encoding.UTF8, "application/json"); var client = new HttpClient(); // client.DefaultRequestHeaders.Authorization = // new AuthenticationHeaderValue(tokenType, accessToken); client.BaseAddress = new Uri(urlBase); var url = string.Format("{0}{1}", servicePrefix, controller); var response = await client.PostAsync(url, content); if (!response.IsSuccessStatusCode) { return(null); } var result = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ApiResponse>(result)); } catch (Java.Net.SocketException e) { // Console.WriteLine("\nException Caught!"); // Console.WriteLine("Message :{0} ", e.Message); return(null); } catch (System.Net.Http.HttpRequestException) { return(null); } }
/// <summary> /// Creates the process file request. /// </summary> /// <param name="fileProfile">The file profile.</param> /// <param name="fileName">Name of the file.</param> /// <returns></returns> private IRequest CreateProcessFileRequest(FileProfile fileProfile, String fileName) { IRequest request = null; // Extract the file Id var fields = fileName.Split('-'); switch (fileProfile.RequestType) { case "SafaricomTopupRequest": request = new SafaricomTopupRequest(Guid.Parse(fields[1]), fileName, fileProfile.FileProfileId); break; case "VoucherRequest": request = new VoucherRequest(Guid.Parse(fields[1]), fileName, fileProfile.FileProfileId); break; } return(request); }
public async Task <Unit> Handle(VoucherRequest request, CancellationToken cancellationToken) { return(await this.ProcessFile(request.FileId, request.FileProfileId, request.FileName, cancellationToken)); }
private async void BtnTopUp_OnClicked(object sender, EventArgs e) { var img = ((Button)sender); if (img.BindingContext is MainViewModel main) { var request = new VoucherRequest { VoucherPin = txtpin.Text, CustomerId = main.User.UserId }; var apiService = new ApiService(); var checkConnetion = await apiService.CheckConnection(); if (!checkConnetion.IsSuccess) { this.IsEnabled = true; await DisplayAlert( Languages.Error, checkConnetion.Message, Languages.Accept); return; } var apiSecurity = Application.Current.Resources["APISecurity"].ToString(); var orderResponse = await apiService.TopUpVoucher( apiSecurity, "/api/account", "/customer/redeem", request); if (orderResponse == null) { this.IsEnabled = true; await DisplayAlert(Languages.Error, Languages.SomethingWrong, Languages.Accept); return; } if (orderResponse.ResponseType == 1) { var user = await apiService.GetUserByEmail( apiSecurity, "/api/account", "/customer/getcustomer", main.Token.TokenType, main.Token.AccessToken, main.User.UserId.ToString()); var userLocal = Converter.ToUserLocal(user, Convert.ToInt32(main.Token.UserName)); userLocal.Password = main.User.Password; main.User = userLocal; var dataService = new DataService(); dataService.Update(userLocal); this.IsEnabled = true; await DisplayAlert(Languages.Accept, orderResponse.ResponseMessage, Languages.Accept); return; } else { this.IsEnabled = true; await DisplayAlert(Languages.Error, orderResponse.ResponseMessage, Languages.Accept); return; } } }
public async Task <int?> CreateVoucher(VoucherRequest voucherRequest) { var numOfVouchersCreated = voucherRequest.NumbersOfVoucherToCreate; //let each voucher service handle its own creation try { voucherRequest.CreationDate = DateTime.Now; voucherRequest.Metadata = Guid.NewGuid().ToString(); if (voucherRequest.VoucherType.ToUpper() == "GIFT") { Task.Run(() => _giftVoucherService.CreateGiftVoucher(voucherRequest)); } else if (voucherRequest.VoucherType.ToUpper() == "DISCOUNT") { Task.Run(() => _discountVoucherService.CreateDiscountVoucher(voucherRequest)); } else { Task.Run(() => _valueVoucherService.CreateValueVoucher(voucherRequest)); } //TODO: Log the event (VoucherCreated) var voucherGeneratedEvent = new VoucherGeneratedEvent() { EventId = Guid.NewGuid(), EventTime = DateTime.Now, MerchantId = voucherRequest.MerchantId, NumberGenerated = numOfVouchersCreated, Message = "New Vouchers created" }; _logger.LogInformation("Created {Number}: vouchers for {Merchant} :{@Event}", numOfVouchersCreated, voucherRequest.MerchantId, voucherGeneratedEvent); return(numOfVouchersCreated); } catch (VoucherCreateException ex) //something happened handle it //if some error occurred and not all voucher could be created log the error { //Log the error var creationError = new VoucherGenerationFailedEvent() { EventId = Guid.NewGuid(), EventTime = DateTime.Now, MerchantId = voucherRequest.MerchantId, FailureReason = ex.Message, Message = "Failed to generate voucher", VoucherType = voucherRequest.VoucherType, NumberToGenerate = voucherRequest.NumbersOfVoucherToCreate }; _logger.LogError("Could not generate voucher: {@creationError}", creationError); _logger.LogDebug(ex, "An error occured while creating vouchers for {Merchant}", voucherRequest.MerchantId); return(null); } }
public async Task <int?> CreateVoucher(VoucherRequest voucherRequest) { var numOfVouchersCreated = 0; //let each voucher service handle its own creation try { voucherRequest.CreationDate = DateTime.Now; if (voucherRequest.VoucherType.ToUpper() == "GIFT") { voucherRequest.CreationDate = DateTime.Now; voucherRequest.Metadata = Guid.NewGuid().ToString(); if (voucherRequest.VoucherType.ToUpper() == "GIFT") { numOfVouchersCreated += await _giftVoucherService.CreateGiftVoucher(voucherRequest); } else if (voucherRequest.VoucherType.ToUpper() == "DISCOUNT") { numOfVouchersCreated += await _discountVoucherService.CreateDiscountVoucher(voucherRequest); } else { numOfVouchersCreated += await _valueVoucherService.CreateValueVoucher(voucherRequest); } //TODO: Log the event (VoucherCreated) var voucherGeneratedEvent = new VoucherGeneratedEvent() { EventId = Guid.NewGuid(), EventTime = DateTime.Now, MerchantId = voucherRequest.MerchantId, NumberGenerated = numOfVouchersCreated, Message = "New Vouchers created" }; _logger.LogInformation("Created {Number}: vouchers for {Merchant} :{@Event}", numOfVouchersCreated, voucherRequest.MerchantId, voucherGeneratedEvent); return(numOfVouchersCreated); } else if (voucherRequest.VoucherType.ToUpper() == "DISCOUNT") { //TODO: Log the error event (VoucherGenerationFailed) var voucherGeneratedEvent = new VoucherGeneratedEvent() { EventId = Guid.NewGuid(), EventTime = DateTime.Now, MerchantId = voucherRequest.MerchantId, NumberGenerated = numOfVouchersCreated, Message = "New Vouchers created" }; _logger.LogInformation("Created {Number}: vouchers for {Merchant} :{@Event}", numOfVouchersCreated, voucherRequest.MerchantId, voucherGeneratedEvent); //handle the error here; what should happen, try again or what return(null); } else { numOfVouchersCreated += await _valueVoucherService.CreateValueVoucher(voucherRequest); } //Log the event (Voucher Created) _logger.LogInformation("Created {Number}: vouchers for {Merchant}", numOfVouchersCreated, voucherRequest.MerchantId); return(numOfVouchersCreated); } catch (VoucherCreateException ex) //something happened handle it //if some error occurred and not all voucher could be created log the error { //Log the error _logger.LogError(ex, "An error occured while creating vouchers for {Merchant}", voucherRequest.MerchantId); return(null); } }
/// <summary> /// خرید کارت شارژ /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ServiceResultClient> VoucherRequestAsync(VoucherRequest model) { return(null); //try //{ // var voucher = new Voucher(); // var voucherCpIn = new voucherCpIn() // { // authInfo = new authInfo() // { // userName = Request.AuthInfo.Username, // password = Request.AuthInfo.Password // } // }; // voucher.MerchantID = voucherCpIn.MerchantID = Request.MerchantID; // voucher.TerminalID = voucherCpIn.TerminalID = Request.TerminalID; // voucher.Date = voucherCpIn.Date = Request.Date; // voucher.Time = voucherCpIn.Time = Request.Time; // voucher.LocalIP = voucherCpIn.localIP = Request.LocalIP; // voucher.PAN = voucherCpIn.PAN = model.PAN; // voucherCpIn.PINBlock = model.PINBlock; // voucher.Serial = voucherCpIn.Serial = Request.Serial; // voucher.STAN = voucherCpIn.STAN = Request.STAN; // voucherCpIn.track2Ciphered = model.Track2Ciphered; // voucherCpIn.custMobile = Request.Mobile; // voucher.InvoiceNo = voucherCpIn.invoiceNo = Request.InvoiceNo; // voucher.Amount = voucherCpIn.amount = model.Amount; // voucherCpIn.profileId = model.profileId; // voucherCpIn.OrderType = 1; // SoapMobileClient soapMobileClient = new SoapMobileClient(); // voucher voucherMTNCpSingle = null; // if (new[] { "19", "20" }.Contains(model.profileId)) // { // voucherMTNCpSingle = soapMobileClient.voucherMTNCPSingle(voucherCpIn); // } // else if (new[] { "3", "4", "5", "6", "8", "41", "42" }.Contains(model.profileId)) // { // voucherMTNCpSingle = soapMobileClient.voucherSetavalCPSingle(voucherCpIn); // } // var resultRequestCPMessage = TransactionMessage(voucherMTNCpSingle.responseCode, voucherMTNCpSingle.responseMsg); // if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString()) // { // voucher.Success = false; // var resultLog = await InsertLog(voucher); // voucher.RefNo = voucherMTNCpSingle.RefNo; // voucher.Amount = voucherMTNCpSingle.responseMsg; // return resultRequestCPMessage; // } // else // { // var settleReverseIn = new settleReverseIn() // { // authInfo = voucherCpIn.authInfo, // custMobile = voucherCpIn.custMobile, // Date = voucherCpIn.Date, // localIP = voucherCpIn.localIP, // MerchantID = voucherCpIn.MerchantID, // orgRefNo = voucherMTNCpSingle.RefNo, // TerminalID = voucherCpIn.TerminalID, // Serial = voucherCpIn.Serial, // Time = voucherCpIn.Time, // orgAmount = voucherCpIn.amount, // STAN = voucherCpIn.STAN, // version = voucherCpIn.version // }; // if (new[] { "19", "20" }.Contains(model.profileId)) // { // settleReverseIn.transType = "vouchermtn"; // } // else if (new[] { "3", "4", "5", "6", "8", "41", "42" }.Contains(model.profileId)) // { // settleReverseIn.transType = "vouchersetaval"; // } // var resultSettlement = soapMobileClient.settlement(settleReverseIn); // var resultSettlementMessage = TransactionMessage(resultSettlement.responseCode, resultSettlement.responseMsg); // resultSettlementMessage.ClientRefNo = settleReverseIn.STAN; // resultSettlementMessage.Date = settleReverseIn.Date; // resultSettlementMessage.RefNo = settleReverseIn.orgRefNo; // resultSettlementMessage.Time = settleReverseIn.Time; // voucher.Success = true; // var resultLog = await InsertLog(voucher); // return resultSettlementMessage; // } //} //catch (Exception) //{ // return AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق"); //} }
public async Task <ServiceResultClient> VoucherRequest(VoucherRequest model) { return(await TransactionService.VoucherRequestAsync(model)); }
//helper method public List <Pet> CreateMockPetData() { List <Pet> mockPets = new List <Pet>(); string testClientID = "001"; DateTime?petDateOfBirth = null; Pet pet = new Pet("Test Dog 1", "Dog", "Male", petDateOfBirth, "Large", testClientID); pet.PetID = 1; DateTime decisionDate = new DateTime(2020, 10, 1); VoucherRequest voucherRequest = new VoucherRequest("Denied", 1); voucherRequest.RequestDecisionDate = decisionDate; pet.VoucherRequestsForPet.Add(voucherRequest); voucherRequest.RequestForPet = pet; voucherRequest = new VoucherRequest("Pending", 1); pet.VoucherRequestsForPet.Add(voucherRequest); voucherRequest.RequestForPet = pet; mockPets.Add(pet); petDateOfBirth = new DateTime(2015, 11, 10); pet = new Pet("Test Dog 2", "Dog", "Female", petDateOfBirth, "Medium", testClientID); pet.PetID = 2; decisionDate = new DateTime(2020, 10, 15); voucherRequest = new VoucherRequest("Denied", 2); voucherRequest.RequestDecisionDate = decisionDate; pet.VoucherRequestsForPet.Add(voucherRequest); voucherRequest.RequestForPet = pet; decisionDate = new DateTime(2020, 11, 25); voucherRequest = new VoucherRequest("Approved", 2); voucherRequest.RequestDecisionDate = decisionDate; pet.VoucherRequestsForPet.Add(voucherRequest); voucherRequest.RequestForPet = pet; mockPets.Add(pet); petDateOfBirth = new DateTime(2018, 10, 15); testClientID = "002"; pet = new Pet("Test Cat 1", "Cat", "Female", petDateOfBirth, null, testClientID); pet.PetID = 3; decisionDate = new DateTime(2020, 10, 15); voucherRequest = new VoucherRequest("Denied", 3); voucherRequest.RequestDecisionDate = decisionDate; pet.VoucherRequestsForPet.Add(voucherRequest); voucherRequest.RequestForPet = pet; mockPets.Add(pet); pet = new Pet("Test Dog 3", "Dog", "Female", petDateOfBirth, "Medium", testClientID); pet.PetID = 4; decisionDate = new DateTime(2020, 11, 25); voucherRequest = new VoucherRequest("Approved", 2); voucherRequest.RequestDecisionDate = decisionDate; pet.VoucherRequestsForPet.Add(voucherRequest); voucherRequest.RequestForPet = pet; mockPets.Add(pet); return(mockPets); }
public ActionResult GetFilteredVouchers([FromQuery] VoucherRequest request) { return(Ok(_customerGiftVoucherService.GetAllVouchers(request))); }
//signature of a method? //accessType returnType MethodName(parameterType param1, parameterType param2) number, dataType, order //class methods / object or instance methods public static void Initialize(IServiceProvider services) { //Three services //1. databases ApplicationDbContext database = services.GetRequiredService <ApplicationDbContext>(); //2. Roles // In startup.cs //.AddRoles<IdentityRole>() on line 34 RoleManager <IdentityRole> roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); //3. Users //In startup.cs (change on line 33: IdentityUser to ApplicationUser) //In _LoginPartial.cshtml (change lines 2 and 3 identityUser to ApplicationUser) UserManager <ApplicationUser> userManager = services.GetRequiredService <UserManager <ApplicationUser> >(); string clientRole = "Client"; string volunteerRole = "Volunteer"; string administratorRole = "Administrator"; if (!database.Roles.Any()) { IdentityRole role = new IdentityRole(clientRole); roleManager.CreateAsync(role).Wait(); role = new IdentityRole(volunteerRole); roleManager.CreateAsync(role).Wait(); role = new IdentityRole(administratorRole); roleManager.CreateAsync(role).Wait(); } if (!database.ApplicationUser.Any()) { Client client = new Client("Test", "Client1", "1 Client1 Address", "3040000001", "*****@*****.**", "TestClient1"); userManager.CreateAsync(client).Wait(); userManager.AddToRoleAsync(client, clientRole).Wait();//all async methods need to have the .wait() attached client = new Client("Test", "Client2", "2 Client2 Address", "3040000002", "*****@*****.**", "TestClient2"); userManager.CreateAsync(client).Wait(); userManager.AddToRoleAsync(client, clientRole).Wait(); Volunteer volunteer = new Volunteer("Test", "Volunteer1", "1 Volunteer1 Address", "3040000003", "*****@*****.**", "TestVolunteer1", 10); userManager.CreateAsync(volunteer).Wait(); userManager.AddToRoleAsync(volunteer, volunteerRole).Wait(); userManager.AddToRoleAsync(volunteer, administratorRole).Wait(); volunteer = new Volunteer("Test", "Volunteer2", "2 Volunteer2 Address", "3040000004", "*****@*****.**", "TestVolunteer2", 10); userManager.CreateAsync(volunteer).Wait(); userManager.AddToRoleAsync(volunteer, volunteerRole).Wait(); ApplicationUser applicationUser = new ApplicationUser("Test", "Administrator1", "1 Administrator1 Address", "3040000005", "*****@*****.**", "TestAdministrator1"); userManager.CreateAsync(applicationUser).Wait(); userManager.AddToRoleAsync(applicationUser, administratorRole).Wait(); } //conditional operators //lovical operators: &&, ||, ! (not) //relational: <, >, >=, == if (!database.Pet.Any()) //Does the Pet table have any data in it? yes { DateTime?dateOfBirth = new DateTime(2015, 6, 15); //LINQ's Lambda Expression (C# Queries) Client client = database.Client.Where(c => c.Email == "*****@*****.**").FirstOrDefault(); string clientID = client.Id; Pet pet = new Pet("James", "Dog", "Male", dateOfBirth, "Large", clientID); database.Pet.Add(pet); database.SaveChanges(); dateOfBirth = null; pet = new Pet("Cleo", "Cat", "Female", dateOfBirth, null, clientID); database.Pet.Add(pet); database.SaveChanges(); client = database.Client.Where(c => c.Email == "*****@*****.**").FirstOrDefault(); clientID = client.Id; dateOfBirth = new DateTime(2018, 6, 10); pet = new Pet("Chuck", "Dog", "Male", dateOfBirth, "Small", clientID); database.Pet.Add(pet); database.SaveChanges(); dateOfBirth = new DateTime(2020, 3, 26); pet = new Pet("Jamie", "Dog", "Female", dateOfBirth, "Large", clientID); database.Pet.Add(pet); database.SaveChanges(); dateOfBirth = new DateTime(2018, 4, 25); pet = new Pet("Larry", "Cat", "Male", dateOfBirth, null, clientID); database.Pet.Add(pet); database.SaveChanges(); } if (!database.VoucherRequest.Any()) { VoucherRequest voucherRequest = new VoucherRequest("Denied", 1); voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 04); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); voucherRequest = new VoucherRequest("Denied", 2); voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 10); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); voucherRequest = new VoucherRequest("Approved", 1); voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 09); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); voucherRequest = new VoucherRequest("Pending", 2); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); voucherRequest = new VoucherRequest("Pending", 3); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); voucherRequest = new VoucherRequest("Approved", 4); voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 01); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); voucherRequest = new VoucherRequest("Approved", 5); voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 29); database.VoucherRequest.Add(voucherRequest); database.SaveChanges(); //add five more requests (2 pets - 2 requests (first request was denied) } if (!database.Fund.Any()) { Fund fund = new Fund("Any Fund 1", null, 2000); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Cat Fund 1", "Cat", null); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Dog Fund 1", "Dog", 5000); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Male Fund 1", "Male", 900); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Female Fund 1", "Female", 4000); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Large Dog Fund 1", "Large Dog", 500); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Any Fund 7", null, 700); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Any Fund 8", null, 3000); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Any Fund 9", null, 6000); database.Fund.Add(fund); database.SaveChanges(); fund = new Fund("Any Fund 10", "Any", null); database.Fund.Add(fund); database.SaveChanges(); } if (!database.FundCriteria.Any()) { int fundID = 2; FundCriteria fundCriteria = new FundCriteria(fundID, "Morgantown", null, null, "Cat"); database.FundCriteria.Add(fundCriteria); database.SaveChanges(); Fund fund = database.Fund.Find(fundID); fund.FundCriteriaID = 1; database.Fund.Update(fund); database.SaveChanges(); fundID = 3; fundCriteria = new FundCriteria(fundID, "Morgantown", null, null, "Dog"); database.FundCriteria.Add(fundCriteria); database.SaveChanges(); fund = database.Fund.Find(fundID); fund.FundCriteriaID = 2; database.Fund.Update(fund); database.SaveChanges(); fundID = 4; fundCriteria = new FundCriteria(fundID, "Morgantown", "Male", null, null); database.FundCriteria.Add(fundCriteria); database.SaveChanges(); fund = database.Fund.Find(fundID); fund.FundCriteriaID = 3; database.Fund.Update(fund); database.SaveChanges(); fundID = 5; fundCriteria = new FundCriteria(fundID, "Morgantown", "Female", null, null); database.FundCriteria.Add(fundCriteria); database.SaveChanges(); fund = database.Fund.Find(fundID); fund.FundCriteriaID = 4; database.Fund.Update(fund); database.SaveChanges(); fundID = 6; fundCriteria = new FundCriteria(fundID, "Morgantown", null, "Large", "Dog"); database.FundCriteria.Add(fundCriteria); database.SaveChanges(); fund = database.Fund.Find(fundID); fund.FundCriteriaID = 5; database.Fund.Update(fund); database.SaveChanges(); } if (!database.FundForVoucher.Any()) { FundForVoucher fundForVoucher = new FundForVoucher(3, 6, 100); database.FundForVoucher.Add(fundForVoucher); database.SaveChanges(); fundForVoucher = new FundForVoucher(6, 6, 100); database.FundForVoucher.Add(fundForVoucher); database.SaveChanges(); fundForVoucher = new FundForVoucher(7, 2, 50); database.FundForVoucher.Add(fundForVoucher); database.SaveChanges(); } } //end initialize method