From b6f4752f9212f651b271a0965154996f9761d11a Mon Sep 17 00:00:00 2001 From: "Ben R. Swanson" Date: Tue, 3 Nov 2020 11:32:45 -0600 Subject: [PATCH 1/8] typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 10a0aaf..c087182 100644 --- a/README.md +++ b/README.md @@ -64,4 +64,4 @@ While we won't give you the exact prompt ahead of time, our general recommendati ## Closing Thoughts -We very much look forwrard to meeting you. Our goal is to make interviewers feel comfortable and prepared, so always feel free to reach out to your recruiter if you have any questions. Afterward, we welcome any and all feedback. We're constantly iterating and improving this process, and anything you share will help us make our interviews better for future candidates. +We very much look forward to meeting you. Our goal is to make interviewers feel comfortable and prepared, so always feel free to reach out to your recruiter if you have any questions. Afterward, we welcome any and all feedback. We're constantly iterating and improving this process, and anything you share will help us make our interviews better for future candidates. From c980dad0dbc776f666409764c6676746ec9d1cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Berthou?= Date: Tue, 16 Mar 2021 12:59:35 -0400 Subject: [PATCH 2/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c087182..d0f15cf 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ QuadPay is a payment gateway that lets consumers split purchases into 4 interest free installments, every two weeks. The first 25% is taken when the purchase is made, and the remaining 3 installments of 25% are automatically taken every 14 days. We help customers manage their cash-flow while helping merchants increase conversion rates and average order values. -It may help to see our [product in action online](https://www.ugg.com/women-boots-classic-boots/classic-short-ii-boot/1016223.html?dwvar_1016223_color=CHE#start=2&cgid=women-boots), checkout our app on [ios](https://apps.apple.com/us/app/quadpay-buy-now-pay-later/id1425045070) or [android](https://play.google.com/store/apps/details?id=com.quadpay.quadpay&hl=en_US), and to read our documentation (https://docs.quadpay.com). +It may help to see our [product in action online](https://www.fanatics.com/mlb/new-york-yankees/new-york-yankees-nike-home-replica-custom-jersey-white/o-8976+t-36446587+p-2520909211+z-8-3193055640?_ref=p-CLP:m-GRID:i-r0c1:po-1), checkout our app on [ios](https://apps.apple.com/us/app/quadpay-buy-now-pay-later/id1425045070) or [android](https://play.google.com/store/apps/details?id=com.quadpay.quadpay&hl=en_US), and to read our documentation (https://docs.quadpay.com). ## Background From 8922e049c63c93c8195b10fc08e667406c8f4b9d Mon Sep 17 00:00:00 2001 From: "Ben R. Swanson" Date: Tue, 10 Aug 2021 17:09:24 -0500 Subject: [PATCH 3/8] Adding a simple codeowner file (#3) --- CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..d70eb51 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,2 @@ +# Global fallback +* @quadpay/tech-lead-em From ed186f241aa2b6a2a5f524363381b5593a9cddac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borna=20Butkovi=C4=87?= Date: Thu, 24 Feb 2022 00:09:35 +0100 Subject: [PATCH 4/8] Add golang example (#4) --- SoftwareEngineerInterview/Go/README.md | 10 ++++ .../Go/installments/go.mod | 5 ++ .../Go/installments/go.sum | 2 + .../installments/installment/installment.go | 44 +++++++++++++++++ .../installments/paymentplan/payment_plan.go | 49 +++++++++++++++++++ .../paymentplan/payment_plan_test.go | 11 +++++ 6 files changed, 121 insertions(+) create mode 100644 SoftwareEngineerInterview/Go/README.md create mode 100644 SoftwareEngineerInterview/Go/installments/go.mod create mode 100644 SoftwareEngineerInterview/Go/installments/go.sum create mode 100644 SoftwareEngineerInterview/Go/installments/installment/installment.go create mode 100644 SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan.go create mode 100644 SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan_test.go diff --git a/SoftwareEngineerInterview/Go/README.md b/SoftwareEngineerInterview/Go/README.md new file mode 100644 index 0000000..24d5fa0 --- /dev/null +++ b/SoftwareEngineerInterview/Go/README.md @@ -0,0 +1,10 @@ +# Golang Project + +## Requirements +> Go 1.16 + +## Install +> go get ./... + +## Run Tests +> go test ./payment_plan diff --git a/SoftwareEngineerInterview/Go/installments/go.mod b/SoftwareEngineerInterview/Go/installments/go.mod new file mode 100644 index 0000000..3e3f820 --- /dev/null +++ b/SoftwareEngineerInterview/Go/installments/go.mod @@ -0,0 +1,5 @@ +module github.com/quadpay/software-engineer-interview/SoftwareEngineerInterview/Go/installments + +go 1.17 + +require github.com/google/uuid v1.3.0 diff --git a/SoftwareEngineerInterview/Go/installments/go.sum b/SoftwareEngineerInterview/Go/installments/go.sum new file mode 100644 index 0000000..3dfe1c9 --- /dev/null +++ b/SoftwareEngineerInterview/Go/installments/go.sum @@ -0,0 +1,2 @@ +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= diff --git a/SoftwareEngineerInterview/Go/installments/installment/installment.go b/SoftwareEngineerInterview/Go/installments/installment/installment.go new file mode 100644 index 0000000..a65c1e0 --- /dev/null +++ b/SoftwareEngineerInterview/Go/installments/installment/installment.go @@ -0,0 +1,44 @@ +package installment + +import ( + "time" + + "github.com/google/uuid" +) + +// Installment is a structure that defines all the properties for an installment. +type Installment struct { + id uuid.UUID + dueDate time.Time + amount float64 +} + +// Id gets the unique identifier for each installment. +func (i Installment) Id() uuid.UUID { + return i.id +} + +// SetId sets the unique identifier for each installment. +func (i Installment) SetId(id uuid.UUID) { + i.id = id +} + +// DueDate gets the due date for each installment. +func (i Installment) DueDate() time.Time { + return i.dueDate +} + +// SetDueDate sets the due date for each installment. +func (i Installment) SetDueDate(dueDate time.Time) { + i.dueDate = dueDate +} + +// Amount gets the installment amount. +func (i Installment) Amount() float64 { + return i.amount +} + +// SetAmount sets the installment amount. +func (i Installment) SetAmount(amount float64) { + i.amount = amount +} diff --git a/SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan.go b/SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan.go new file mode 100644 index 0000000..0413075 --- /dev/null +++ b/SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan.go @@ -0,0 +1,49 @@ +package paymentplan + +import ( + "github.com/google/uuid" + "github.com/quadpay/software-engineer-interview/SoftwareEngineerInterview/Go/installments/installment" +) + +// PaymentPlan is a structure that defines all the properties for a payment plan. +type PaymentPlan struct { + id uuid.UUID + purchaseAmount float64 + installments []installment.Installment +} + +// Id gets the unique identifier for each payment plan. +func (p PaymentPlan) Id() uuid.UUID { + return p.id +} + +// SetId sets the unique identifier for each payment plan. +func (p PaymentPlan) SetId(id uuid.UUID) { + p.id = id +} + +// PurchaseAmount gets the purchase amount for each payment plan. +func (p PaymentPlan) PurchaseAmount() float64 { + return p.purchaseAmount +} + +// SetPurchaseAmount sets the purchase amount for each payment plan. +func (p PaymentPlan) SetPurchaseAmount(purchaseAmount float64) { + p.purchaseAmount = purchaseAmount +} + +// Installments gets the installments for each payment plan. +func (p PaymentPlan) Installments() []installment.Installment { + return p.installments +} + +// SetInstallments sets the installments for each payment plan. +func (p PaymentPlan) SetInstallments(installments []installment.Installment) { + p.installments = installments +} + +// New creates a new payment plan according to purchase amount. +func New(purchaseAmount float64) (PaymentPlan, error) { + // TODO + return PaymentPlan{}, nil +} diff --git a/SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan_test.go b/SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan_test.go new file mode 100644 index 0000000..2f667ba --- /dev/null +++ b/SoftwareEngineerInterview/Go/installments/paymentplan/payment_plan_test.go @@ -0,0 +1,11 @@ +package paymentplan + +import "testing" + +func TestCreateNewPaymentPlanWithValidOrderAmount(t *testing.T) { + _, err := New(123.45) + + if err != nil { + t.Errorf("creating payment plan error: %v", err) + } +} From cfd68a735cc89831f35aed25438548d8ebc65bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Berthou?= Date: Sat, 12 Mar 2022 07:39:37 +0100 Subject: [PATCH 5/8] Replace old branding in code (#6) * Replace old branding * Upgrade project to dotnet 6 * Add gitignore file --- .gitignore | 4 +++ ...CoreApp,Version=v3.0.AssemblyAttributes.cs | 4 --- ...y.InstallmentsService.Test.AssemblyInfo.cs | 23 ------------------ ...mentsService.Test.AssemblyInfoInputs.cache | 1 - .../QuadPay.InstallmentsService.csproj | 8 ------ ...tandard,Version=v2.1.AssemblyAttributes.cs | 4 --- ...uadPay.InstallmentsService.AssemblyInfo.cs | 23 ------------------ ...stallmentsService.AssemblyInfoInputs.cache | 1 - ...mentsService.csprojAssemblyReference.cache | Bin 81215 -> 0 bytes .../PaymentPlanFactoryTests.cs | 2 +- .../Zip.InstallmentsService.Test.csproj} | 8 +++--- .../Zip.InstallmentsService.sln} | 4 +-- .../Zip.InstallmentsService}/Installment.cs | 2 +- .../Zip.InstallmentsService}/PaymentPlan.cs | 2 +- .../PaymentPlanFactory.cs | 4 +-- .../Zip.InstallmentsService.csproj | 9 +++++++ 16 files changed, 25 insertions(+), 74 deletions(-) create mode 100644 .gitignore delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/.NETCoreApp,Version=v3.0.AssemblyAttributes.cs delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfo.cs delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfoInputs.cache delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/QuadPay.InstallmentsService.csproj delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfo.cs delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfoInputs.cache delete mode 100644 SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.csprojAssemblyReference.cache rename SoftwareEngineerInterview/CSharp/{QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test => Zip.InstallmentsService/Zip.InstallmentsService.Test}/PaymentPlanFactoryTests.cs (91%) rename SoftwareEngineerInterview/CSharp/{QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/QuadPay.InstallmentsService.Test.csproj => Zip.InstallmentsService/Zip.InstallmentsService.Test/Zip.InstallmentsService.Test.csproj} (67%) rename SoftwareEngineerInterview/CSharp/{QuadPay.InstallmentsService/QuadPay.InstallmentsService.sln => Zip.InstallmentsService/Zip.InstallmentsService.sln} (86%) rename SoftwareEngineerInterview/CSharp/{QuadPay.InstallmentsService/QuadPay.InstallmentsService => Zip.InstallmentsService/Zip.InstallmentsService}/Installment.cs (94%) rename SoftwareEngineerInterview/CSharp/{QuadPay.InstallmentsService/QuadPay.InstallmentsService => Zip.InstallmentsService/Zip.InstallmentsService}/PaymentPlan.cs (89%) rename SoftwareEngineerInterview/CSharp/{QuadPay.InstallmentsService/QuadPay.InstallmentsService => Zip.InstallmentsService/Zip.InstallmentsService}/PaymentPlanFactory.cs (87%) create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Zip.InstallmentsService.csproj diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0e3c3b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea +bin +obj +*DotSettings.user \ No newline at end of file diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/.NETCoreApp,Version=v3.0.AssemblyAttributes.cs b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/.NETCoreApp,Version=v3.0.AssemblyAttributes.cs deleted file mode 100644 index e7801f1..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/.NETCoreApp,Version=v3.0.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.0", FrameworkDisplayName = "")] diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfo.cs b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfo.cs deleted file mode 100644 index df2af58..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("QuadPay.InstallmentsService.Test")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyProductAttribute("QuadPay.InstallmentsService.Test")] -[assembly: System.Reflection.AssemblyTitleAttribute("QuadPay.InstallmentsService.Test")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfoInputs.cache b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfoInputs.cache deleted file mode 100644 index 6c35f8b..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/obj/Debug/netcoreapp3.0/QuadPay.InstallmentsService.Test.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -88c5b7bb5b907b64e00ca6bd15696547930f04c0 diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/QuadPay.InstallmentsService.csproj b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/QuadPay.InstallmentsService.csproj deleted file mode 100644 index 8bd9799..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/QuadPay.InstallmentsService.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard2.1 - 8 - - - diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs deleted file mode 100644 index 729e4de..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfo.cs b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfo.cs deleted file mode 100644 index 7a18699..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("QuadPay.InstallmentsService")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyProductAttribute("QuadPay.InstallmentsService")] -[assembly: System.Reflection.AssemblyTitleAttribute("QuadPay.InstallmentsService")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfoInputs.cache b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfoInputs.cache deleted file mode 100644 index 8624ff6..0000000 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -b7fd477c4b18343b4425771c2385915c1480e1a5 diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.csprojAssemblyReference.cache b/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/obj/Debug/netstandard2.1/QuadPay.InstallmentsService.csprojAssemblyReference.cache deleted file mode 100644 index 3d3dfb5cd5abf8636ec541a8a97689d8bbd77dd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81215 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 diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/PaymentPlanFactoryTests.cs b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.Test/PaymentPlanFactoryTests.cs similarity index 91% rename from SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/PaymentPlanFactoryTests.cs rename to SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.Test/PaymentPlanFactoryTests.cs index ade1269..292cb7c 100644 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/PaymentPlanFactoryTests.cs +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.Test/PaymentPlanFactoryTests.cs @@ -1,7 +1,7 @@ using Shouldly; using Xunit; -namespace QuadPay.InstallmentsService.Test +namespace Zip.InstallmentsService.Test { public class PaymentPlanFactoryTests { diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/QuadPay.InstallmentsService.Test.csproj b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.Test/Zip.InstallmentsService.Test.csproj similarity index 67% rename from SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/QuadPay.InstallmentsService.Test.csproj rename to SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.Test/Zip.InstallmentsService.Test.csproj index 4fe2904..3644275 100644 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.Test/QuadPay.InstallmentsService.Test.csproj +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.Test/Zip.InstallmentsService.Test.csproj @@ -1,11 +1,13 @@ - netcoreapp3.0 + net6.0 false - 8 + latestmajor + + Zip.InstallmentsService.Test @@ -17,7 +19,7 @@ - + diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.sln b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.sln similarity index 86% rename from SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.sln rename to SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.sln index d36fa92..60d66d6 100644 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService.sln +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26124.0 MinimumVisualStudioVersion = 15.0.26124.0 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuadPay.InstallmentsService", "QuadPay.InstallmentsService\QuadPay.InstallmentsService.csproj", "{E7F1FB5D-5D7B-49D1-8F44-C31B60A7E1DC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zip.InstallmentsService", "Zip.InstallmentsService\Zip.InstallmentsService.csproj", "{E7F1FB5D-5D7B-49D1-8F44-C31B60A7E1DC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuadPay.InstallmentsService.Test", "QuadPay.InstallmentsService.Test\QuadPay.InstallmentsService.Test.csproj", "{DF298FE5-362D-44BD-AD57-7DFC04CEB8B7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zip.InstallmentsService.Test", "Zip.InstallmentsService.Test\Zip.InstallmentsService.Test.csproj", "{DF298FE5-362D-44BD-AD57-7DFC04CEB8B7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/Installment.cs b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Installment.cs similarity index 94% rename from SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/Installment.cs rename to SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Installment.cs index 0841515..796dc42 100644 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/Installment.cs +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Installment.cs @@ -1,6 +1,6 @@ using System; -namespace QuadPay.InstallmentsService +namespace Zip.InstallmentsService { /// /// Data structure which defines all the properties for an installment. diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/PaymentPlan.cs b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/PaymentPlan.cs similarity index 89% rename from SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/PaymentPlan.cs rename to SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/PaymentPlan.cs index 22e67ff..11cbe10 100644 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/PaymentPlan.cs +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/PaymentPlan.cs @@ -1,6 +1,6 @@ using System; -namespace QuadPay.InstallmentsService +namespace Zip.InstallmentsService { /// /// Data structure which defines all the properties for a purchase installment plan. diff --git a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/PaymentPlanFactory.cs b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/PaymentPlanFactory.cs similarity index 87% rename from SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/PaymentPlanFactory.cs rename to SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/PaymentPlanFactory.cs index 3551cf5..1fdf1ea 100644 --- a/SoftwareEngineerInterview/CSharp/QuadPay.InstallmentsService/QuadPay.InstallmentsService/PaymentPlanFactory.cs +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/PaymentPlanFactory.cs @@ -1,7 +1,7 @@ -namespace QuadPay.InstallmentsService +namespace Zip.InstallmentsService { /// - /// This class is responsible for building the PaymentPlan according to the QuadPay product definition. + /// This class is responsible for building the PaymentPlan according to the Zip product definition. /// public class PaymentPlanFactory { diff --git a/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Zip.InstallmentsService.csproj b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Zip.InstallmentsService.csproj new file mode 100644 index 0000000..88704f4 --- /dev/null +++ b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/Zip.InstallmentsService/Zip.InstallmentsService.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + latestmajor + Zip.InstallmentsService + + + From 9e58eeb03d9b6f48efdf55cbd4542ed66dfa983a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Berthou?= Date: Sat, 12 Mar 2022 07:39:53 +0100 Subject: [PATCH 6/8] Update README.md (#5) --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d0f15cf..d68f288 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ -# QuadPay Software Engineer Interview +# Zip Software Engineer Interview ## Overview -QuadPay is a payment gateway that lets consumers split purchases into 4 interest free installments, every two weeks. The first 25% is taken when the purchase is made, and the remaining 3 installments of 25% are automatically taken every 14 days. We help customers manage their cash-flow while helping merchants increase conversion rates and average order values. +Zip is a payment gateway that lets consumers split purchases into 4 interest free installments, every two weeks. The first 25% is taken when the purchase is made, and the remaining 3 installments of 25% are automatically taken every 14 days. We help customers manage their cash-flow while helping merchants increase conversion rates and average order values. -It may help to see our [product in action online](https://www.fanatics.com/mlb/new-york-yankees/new-york-yankees-nike-home-replica-custom-jersey-white/o-8976+t-36446587+p-2520909211+z-8-3193055640?_ref=p-CLP:m-GRID:i-r0c1:po-1), checkout our app on [ios](https://apps.apple.com/us/app/quadpay-buy-now-pay-later/id1425045070) or [android](https://play.google.com/store/apps/details?id=com.quadpay.quadpay&hl=en_US), and to read our documentation (https://docs.quadpay.com). +It may help to see our [product in action online](https://www.fanatics.com/mlb/new-york-yankees/new-york-yankees-nike-home-replica-custom-jersey-white/o-8976+t-36446587+p-2520909211+z-8-3193055640?_ref=p-CLP:m-GRID:i-r0c1:po-1), checkout our app on [ios](https://apps.apple.com/us/app/quadpay-buy-now-pay-later/id1425045070) or [android](https://play.google.com/store/apps/details?id=com.quadpay.quadpay&hl=en_US), and to read our documentation (https://docs.us.zip.co). ## Background -One of the cornerstones of QuadPay's culture is openness and transparency. When reviewing our existing interview structure, we found that pair-programming challenges rarely replicated what our employees actually do in their day-to-day work. For example, when was the last time you coded without google, or when the requirements weren't clearly defined? To tackle that, we've decided to publish our pair programming interview and share it directly with candidates beforehand. +One of the cornerstones of Zip's culture is openness and transparency. When reviewing our existing interview structure, we found that pair-programming challenges rarely replicated what our employees actually do in their day-to-day work. For example, when was the last time you coded without google, or when the requirements weren't clearly defined? To tackle that, we've decided to publish our pair programming interview and share it directly with candidates beforehand. -As an Engineer at QuadPay you’ll help solve interesting problems on a daily basis. Some areas that you'll work on include fraud prevention, building real-time credit-decisioning models and, most importantly, shipping products that are secure, frictionless, and deliver a high-quality consumer experience. +As an Engineer at Zip you’ll help solve interesting problems on a daily basis. Some areas that you'll work on include fraud prevention, building real-time credit-decisioning models and, most importantly, shipping products that are secure, frictionless, and deliver a high-quality consumer experience. -The pair programming challenge will take an hour, and will more closely replicate a day-in-the-life at QuadPay. You’re free to use whichever resources help you to get the job done. When we evaluate your code at the end of the session, we will be looking for: +The pair programming challenge will take an hour, and will more closely replicate a day-in-the-life at Zip. You’re free to use whichever resources help you to get the job done. When we evaluate your code at the end of the session, we will be looking for: - A high code health - Simplicity - Readability @@ -30,7 +30,7 @@ During the interview, you will build a core service for our business, an Install #### Installment Calculator ##### User Story -As a QuadPay Customer, I would like to establish a payment plan spread over 6 weeks that splits the original charge evenly over 4 installments. +As a Zip Customer, I would like to establish a payment plan spread over 6 weeks that splits the original charge evenly over 4 installments. ##### Acceptance Criteria - Given it is the 1st of January, 2020 From 9bb7c62fbdaed1d25e05517fff60c2be4e6a9034 Mon Sep 17 00:00:00 2001 From: Erik LaBine Date: Mon, 15 Aug 2022 15:45:46 -0600 Subject: [PATCH 7/8] Update README branding, SDK version, and formatting (#7) --- SoftwareEngineerInterview/CSharp/README.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/SoftwareEngineerInterview/CSharp/README.md b/SoftwareEngineerInterview/CSharp/README.md index decd73d..1019619 100644 --- a/SoftwareEngineerInterview/CSharp/README.md +++ b/SoftwareEngineerInterview/CSharp/README.md @@ -1,15 +1,25 @@ # CSharp Project ## Requirements -> Visual Studio Code -> Dotnet SDK 3.1 +``` +Visual Studio Code +Dotnet SDK 6.0 +``` ## Install -> TODO +``` +cd Zip.InstallmentsService +dotnet restore +``` ## Quick Start -> TODO +``` +cd Zip.InstallmentsService +dotnet run +``` ## Run Tests -> cd QuadPay.InstallmentsService -> dotnet test QuadPay.InstallmentsService.sln +``` +cd Zip.InstallmentsService +dotnet test Zip.InstallmentsService.sln +``` From 2a94a462093dd188b7dde356bde39632c065aff5 Mon Sep 17 00:00:00 2001 From: BCP Date: Sat, 19 Nov 2022 13:26:27 +0530 Subject: [PATCH 8/8] nterview --- .../DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 100308 bytes ...4c38ec0e-f120-476c-8520-98c6ac7aa393.vsidx | Bin 0 -> 550 bytes ...6464d4d8-8866-4182-830b-7cda8adbe19a.vsidx | Bin 0 -> 8821 bytes ...777ebf08-f681-46fb-8856-01af50b74fba.vsidx | Bin 0 -> 5384 bytes .../FileContentIndex/read.lock | 0 .../.vs/Zip.InstallmentsService/v17/.suo | Bin 0 -> 47616 bytes .../v17/TestStore/0/000.testlog | Bin 0 -> 13463 bytes .../v17/TestStore/0/testlog.manifest | Bin 0 -> 24 bytes .../PaymentPlanFactory.cs | 21 ++++++++++++++++-- 9 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/DesignTimeBuild/.dtbcache.v2 create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/4c38ec0e-f120-476c-8520-98c6ac7aa393.vsidx create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/6464d4d8-8866-4182-830b-7cda8adbe19a.vsidx create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/777ebf08-f681-46fb-8856-01af50b74fba.vsidx create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/read.lock create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/v17/.suo create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/v17/TestStore/0/000.testlog create mode 100644 SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/v17/TestStore/0/testlog.manifest diff --git a/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/DesignTimeBuild/.dtbcache.v2 b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..c27b7b05d946c103adf0b27f55c7b6ec6ca5f549 GIT binary patch literal 100308 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 I`x%r50C7#6wEzGB literal 0 HcmV?d00001 diff --git a/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/6464d4d8-8866-4182-830b-7cda8adbe19a.vsidx b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/6464d4d8-8866-4182-830b-7cda8adbe19a.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..f644818363bbb0845564d3620db20a913d1e42d5 GIT binary patch literal 8821 zcmdU!e~=|tRmb0kT>=5gt|Wj2!P=1UW|#D2H?!o&OvZO#_nmon(|x3@8#vfTTo3q)ODn68^wKP|LC`epUFTq5>*~3Md3E&iC|} z_g)^$|Je1qKll8&=bU@*>Gx)9(`KW zFllO1Yf>3RlV#=_XY#(u<(Zpe(G=DcrSVB>X8=Z~8#%9T+GIh!M zrLta%$#Sx=Z2hv0%Z(eDFfego{lKLI7Y1cBSTXLvA$RbglVzv#F14_vwacu_N|#lV z$=TqRoXay;7*|;5<+JR(b3Qm9UFltwxMPhA(S^pvc^3yRx}!7mM-y{2$*yre@6P1L z=O*B+GKrMuna{I2&q8ifNu0YZcOlQad2aK($P1f?m=EWRnR#icBFPGKO=0rF)P+q7 zdv#%bVPzZ&mllPbdE>h?zI(`bGoJ)+3hY^0dn=#d?W#6HBD>(-G4G-;<+JKT;=`g3 zDb^8kA4(shkNbV>`Z(ib;^VB3^FA)hDt)Yc3_f1(UFe%a(wX1SV_tMjs9l}Rg8S7un*y2?#e`l_0*>auG3 zRZ|~pu-oRO2WM9=kj(nHfiK_aq`KVJZtj2DT>Cs#*1&-)V8U8 z6I>JGipf`uY(To=!b<5@6SF$7s{^;{;hC^-Jc)F!=IW z_`d6O{zUHVs5E8(Wv0*xcFJ`q>j3x32}-EKP1?NyE+STeq!UcjC6hZEo+ZpFDZ%#^%m; zz(mRNL-a}9*xp&I)=$H^I=Q~Nw0?Z&)YfUJx0B=BhacH|@C%QAde@I!;cF9%lsa{X zCm-oqr+!2WpV;jGw}rDy9#jAKcl;YqZqMNfJP!QQfB(j-fEz#j(Cr}~Po7O;F6>Vv z&mo^gA_eR}Mm~i+m)uM4BY&KHst~!KPWc(+Pms?fFA(Cdl4r|}3q-!>kUu4a{X)vm zB`+c`CZ9)k$rVFQl|roVYRZd3?01i{A^T)X zWi93p-=zF4^1sRdA-_$2hkTU$t`O@)FyuQ+h`5g< zcawX_$CGCZv5s>nKZ$%Y_2&u^Zy)(oA@V$3D4)(VC_jtxPm<53em~_4$>)+6krxXQ zze{;WhzrE<0C|vnK6!}{bzdq(J#*9_AzwgVPF_J?NnSze2u>d^LF|d6y7%y_WK?ldmIRPu?xW z1!8y)c`x|}A@<`wA>#cO^=~16n|v#IKlwKD?Lu52h7XVrlJ6kjNxqAGh;FD9QSgx>-366zCjmb_Gm3q+nnltIXc$;*UT z$K{l-Ag?5^BIkw3yC{@Tr$@b^oRU@uzX9!zJW72**$d^w+iLcIYqvN`Ym#s+!12l?LzrMRhvD>FVp&7OrBO7Y40QH@l}I zqTp{UZX(1?rClnlx>tJ0T82i>M#

rsDW$&zq`1*Nb`W#!eNaR_L^2$H{f1 z2Nf}F-yRvXm5zHzD{ZGuMTYZKPimV@>CS_nu2L7HC#^4RdlU$*O{0nS!MW{I7<5K^ zJXptA)VE9@8l??|`r1YsRjTiYCRandvEtTI!$f50j2e)r_0yDis9|bZDvkrRr=@ZBQ%$`i{XqKHD;?!+_X+`ec(hG8TBR;p zyIrmN&<4@{(=+O!s@;gE&e|m!wEaR6{X}GSX_tU$?a3gUeiv)fj#EzeJ*+*sf1sb$fXEY};HT}Q8=-rkm1=l>1KJAU*TZA# zJajwNudN>8+cQ^Zq||urYcMKp{M9nv@wRE;qMZ1FiKVw?>8NWO*ccRBtL=@Gv@5d-_`%S1; z@!;WMq}_DhD7o&W>e}-iJ5N>m*vM@+X_T=a=1y;f>hRElrh2^X4Mdq}F2vKl(iYtV zv29HFY54IT=%S65fkzL{+A8C(G_`6X?U$Z-{6LW!0EX#o8gw*cqP>ws&qxc`hbAAt zWtviT6N}dRbS@&d(=>-xFdDUU&y*J~+Hm8o)6JQv1=I9E)lc_Io%PpQH+Ed9eyz8! zGp0><9V*rEZ2%kPiCU)P}*)h zw6w8R1Lz+FMvQGoOdNpfbXgc_85%{G6*VPRnLTz18dQtK)QR6qqeljv8pf~H^r9c@ zH?e%33#+zr52Bu%iql^n@YBfcUs@0~Z%+o(O|5&Nq0|K)_*KOJ@8G(iMQ4}(RCYT5 NadxZtcb(Vid=J;Ko1*{# literal 0 HcmV?d00001 diff --git a/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/777ebf08-f681-46fb-8856-01af50b74fba.vsidx b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/FileContentIndex/777ebf08-f681-46fb-8856-01af50b74fba.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..d9bd241b5a338e63f03268c73c9e5129b9d3b61b GIT binary patch literal 5384 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 R`>DdB9l3L{xFPBB{{cZNK(PP- literal 0 HcmV?d00001 diff --git a/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/v17/TestStore/0/000.testlog b/SoftwareEngineerInterview/CSharp/Zip.InstallmentsService/.vs/Zip.InstallmentsService/v17/TestStore/0/000.testlog new file mode 100644 index 0000000000000000000000000000000000000000..6247dad69abd67aa85024ba7dec107b80c555b24 GIT binary patch literal 13463 zcmeHNYitxn9KWj&F+RaW6Q4yI5!1cS&d$Cr@<9%e%B!I~j9itOomski>^8f5K%-Fz zF+O5q(fIm+!T3s4R6s)%qqS(_E2kVL<`5B$Mn4#1)EFTco!u*3ySBJ(FH+)e+wI-X z?CktszyI$)vs0(~t-i;WPE4gzjr=b-F#qy!y39X?r-n)s=s$$uf8=zm?Lg|n36&;_ zWgx;JKw=DOTGS6R9v~A|X%567VU71$f^KqfDhS|Q?&fK+@!7@Ro zOdIYFF18i0Jr^5%lw=N?J#O{I?i_HHfz#gEGSv$OeS9&^3?tXx~(bBeCP@-FLgyu8tg zZR%pfzLj4${dL%70<%|JHe;?}*?us8wl3e^-!`Yesr7hEuDuhxUHM@IAMSdnkUX*M z{A@;wtMfMVl?*sx?+h&z-W=vJ;c(AZ2kF_kJy7dnatky3%u*LyzV}eWqv?NMeYVOF0c1^%uFwDi zVyY-m1)73Lpdn}`1cYhCG(}u#(nP9Z5krCKIuZ;OQ-L6Y1%((U)n^0ADqn1Mn+N`gqraq4G<2EbC17Y}|H30NepYy8~i8!|FOUC5VWQR2VT$VEhT;sgfDs0d1}mAo=2=-&OQ;j_qTfoZRE_<+iL9 z_w1Xr|HJ9(xij|GroVAWX+JsE@vB9bf4eX}NV?PFNp~Q1*`!JnHUN}NSrilz>jDrJ zBp?+KffB+LBqJzF>Ii(ks)~=Udg6krOLJA669z+gs!6qVYfsJRUs}<+NCZ%v2WN9O z1NQNog5xxzFJsKQ-a-KP?bPIlaG0`=1_*1(*a?fUqQJ zgcE38R)C;0&b19mHceTDM59~-W3j+_p+lW08iueye&>CYLkr}0Zg2Y!EZ}_8x;
Px#}=Iafryk|T4R zknO#w=e;i?w{i{;C%5;W^~LA&o;#ios^xpU5F9goD4{Lqy|(8V7^iA3H#8?m`On$Q zB2orn8-vyMzOY~w8RFI$!I(sRQWcM)hL0Wby9X1hk*%7=aQzXa^Ky;XjUZNpJu}WnC`BG#!?Y@xbMF6`d z(C+g~OCq2$64ZV9q@r$6V7>9n_g~h;85(uNN-XHO{O(WpMx;$hQ?M+Nkf!RYW!)DR zM@gDS!U+=e9l-`j{no(%Hbp2=gYtDpWDtloWDW z_?=kj8+3eS^Ydp#q)pH_LEqY*(Rf1Nq^wFf!T90?BgqW^kJXTb`J5Ey!xz}81T>@o zQACCW`KGHWLtb?9^?#M(>JH|=)SU~2DF-54U?l#1((BHvr`(I)j>CMyj*m^>{ZvHS zg!v@QCt*HydRH#lLdsNM3#;o}Q61xnkH=Uh4tGcrPH<8<0n;@JFj1C}!jK55CP^3* zpz$|zkQ|c}G=JmV9?6oY6enn2)O5EShZBSyo6s4_cHU4g&n9)}_^LY-rkXI-@yS#Z zPB5 @@ -12,8 +15,22 @@ public class PaymentPlanFactory /// The PaymentPlan created with all properties set. public PaymentPlan CreatePaymentPlan(decimal purchaseAmount) { - // TODO - return new PaymentPlan(); + Installment insObj = new Installment(); + var inscount = 4; + insObj.Amount = purchaseAmount / inscount; + insObj.DueDate = System.DateTime.Now; + List insList = new List(); + + PaymentPlan pp = new PaymentPlan(); + + for (int i = 0; i < inscount; i++) + { + insObj.DueDate.AddDays(i*14); + + } + + + return pp; } } }