public void All_ItShouldReturnTheListOfBills() { var list = RecurringBill.All(); Assert.AreEqual("rbill-1", list[0].Id); Assert.AreEqual("rbill-2", list[1].Id); }
public void Retrieve_ItShouldReturnASingleBill() { var obj = RecurringBill.With(presetName).Retrieve("rbill-1"); Assert.AreEqual("rbill-1", obj.Id); Assert.AreEqual(presetName, obj.PresetName); }
private DateTime?CalculateNextOccurenceDate(RecurringBill rb) { if (DateTime.Compare(DateTime.Now, rb.StartDate) <= 0) { return(rb.StartDate); } else { if (rb.LastOccurenceDate == null) { rb.LastOccurenceDate = DateTime.Now.AddHours(-1); } //We assume that there was at least one occurence, so LastOccurenceDate is not null int weekDaysNumber = 7; int numberOfDaysToAdd = 0, numberOfWeeksToAdd = 0, numberOfMonthsToAdd = 0; switch (rb.Frequency) { case Helpers.Frequency.EveryDay: numberOfDaysToAdd = 1; break; case Helpers.Frequency.EveryWeek: numberOfWeeksToAdd = 1; break; case Helpers.Frequency.Every2Weeks: numberOfWeeksToAdd = 2; break; case Helpers.Frequency.Every3Weeks: numberOfWeeksToAdd = 3; break; case Helpers.Frequency.EveryMonth: numberOfMonthsToAdd = 1; break; case Helpers.Frequency.Every2Months: numberOfMonthsToAdd = 2; break; case Helpers.Frequency.Every3Months: numberOfMonthsToAdd = 3; break; case Helpers.Frequency.Every6Months: numberOfMonthsToAdd = 6; break; case Helpers.Frequency.EveryYear: numberOfMonthsToAdd = 12; break; } DateTime nextOccurenceDate = rb.LastOccurenceDate.Value.AddDays(numberOfDaysToAdd + weekDaysNumber * numberOfWeeksToAdd).AddMonths(numberOfMonthsToAdd); return((DateTime.Compare(nextOccurenceDate, rb.ExpirationDate) <= 0) ? (DateTime?)nextOccurenceDate : null); } }
public void Create_ItShouldCreateABill() { var obj = RecurringBill.Create( groupId: "cld-3", priceCents: 1500, description: "Some Bill" ); Assert.IsNotNull(obj.Id); Assert.IsNotNull(obj.CreatedAt); }
public void Create_ItShouldCreateABill() { var obj = RecurringBill.With(presetName).Create( groupId: "cld-3", priceCents: 1500, description: "Some Bill" ); Assert.IsNotNull(obj.Id); Assert.IsNotNull(obj.CreatedAt); Assert.AreEqual(presetName, obj.PresetName); }
public void Cancel_ItShouldCancelABill() { var obj = RecurringBill.Create( groupId: "cld-3", priceCents: 1500, description: "Some Bill" ); var updatedAt = obj.UpdatedAt; obj.Cancel(); Assert.AreEqual("cancelled", obj.Status); Assert.IsTrue(obj.UpdatedAt.HasValue); }
/// <summary> /// Perform a new RecurringBilling. /// /// <param name="recurringBill"> /// RecurringBill object. /// </param> /// <returns> /// RecurringBillingInformation object. /// </returns> /// <seealso cref="PayHubWS.com.payhub.ws.api.RecurringBillingInformation"/> /// </summary> public RecurringBillInformation doRecurringBill(RecurringBill recurringBill) { recurringBill.Merchant = _merchant; recurringBill._url = _url; var request = setHeadersPost(recurringBill._url, this._oauthToken); string json = JsonConvert.SerializeObject(recurringBill, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }); RecurringBillInformation response = recurringBill.PerformRecurringBill(json, request); response.transactionManager = this; return(response); }
public void doRecurringBilling() { string url = "https://staging-api.payhub.com/api/v2/"; string oauth = "107d74ab-4a18-4713-88ff-69bd05710086"; ScheduleSartAndEnd scheduleSartAndEnd = new ScheduleSartAndEnd(); scheduleSartAndEnd.Start_date = Convert.ToDateTime("2015-07-08"); scheduleSartAndEnd.End_date = Convert.ToDateTime("2016-07-08"); scheduleSartAndEnd.end_date_type = "O"; MontlySchedule montlySchedule = new MontlySchedule(); montlySchedule.Monthly_type = "E"; List <int> m = new List <int>(); m.Add(15); montlySchedule.Monthly_each_days = m; Schedule schedule = new Schedule(scheduleSartAndEnd, montlySchedule); schedule.Schedule_type = "M"; schedule.Bill_generation_interval = 1; Merchant merchant = new Merchant(); merchant.organization_id = 10127; merchant.terminal_id = 215; Bill bill = new Bill(); bill.Base_amount = (decimal)19.99m; CardData card_data = new CardData(); card_data.card_number = "4012881888818888"; card_data.card_expiry_date = "202012"; //September 2018 card_data.billing_zip = "60527"; Customer customer = new Customer(); customer.first_name = "Joe"; customer.last_name = "Tester"; customer.phone_number = "844-217-1631"; customer.phone_type = "W"; RecurringBill recurringBill = new RecurringBill(merchant, card_data, customer, schedule, bill); recurringBill.Merchant = merchant; recurringBill.Card_data = card_data; recurringBill.Customer = customer; recurringBill.Schedule = schedule; recurringBill.Bill = bill; TransactionManager transaction = new TransactionManager(url, oauth, merchant); RecurringBillInformation response = transaction.doRecurringBill(recurringBill); Console.Write(response.rowData); }
public IActionResult NewRecurringBill([Bind("Subject, Value, Frequency, ExpenseCategory, StartDate, ExpirationDate, GroupId, ParticipantIds")] BillingViewModel rbcvm) { if (ModelState.IsValid) { var newRecurringBill = new RecurringBill { Id = rbcvm.Id, CreationDate = DateTime.Now, ExpenseCategory = rbcvm.ExpenseCategory, ExpirationDate = rbcvm.ExpirationDate, Frequency = rbcvm.Frequency, StartDate = rbcvm.StartDate, Subject = rbcvm.Subject, Value = rbcvm.Value }; _context.RecurringBills.Add(newRecurringBill); _context.SaveChanges(); var currentUserId = 1; var billAssignments = new List <RecurringBillPerTeamMember>() { new RecurringBillPerTeamMember { TeamId = rbcvm.GroupId, RecurringBillId = newRecurringBill.Id, UserId = currentUserId } }; foreach (var participantId in rbcvm.ParticipantIds) { billAssignments.Add(new RecurringBillPerTeamMember { TeamId = rbcvm.GroupId, RecurringBillId = newRecurringBill.Id, UserId = participantId }); } _context.RecurringBillAssignments.AddRange(billAssignments); _context.SaveChanges(); //TODO: change for the currentUserId return(RedirectToAction("Index", "BudgetManager", null)); } return(PartialView("_newRecurringBillPartial", rbcvm)); }
private static RecurringBill [] InitializeRecurringBills(FlatmateContext context) { var RBs = new RecurringBill[] { new RecurringBill { CreationDate = DateTime.Now, ExpenseCategory = Helpers.ExpenseCategory.Bill, ExpirationDate = DateTime.Parse("06/05/2021"), Frequency = Helpers.Frequency.Every2Months, LastOccurenceDate = DateTime.Parse("06/07/2019"), StartDate = DateTime.Parse("06/05/2018"), Subject = "Miesięczne opłaty", Value = 295.0 }, new RecurringBill { CreationDate = DateTime.Now, ExpenseCategory = Helpers.ExpenseCategory.Bill, ExpirationDate = DateTime.Parse("11/07/2020"), Frequency = Helpers.Frequency.EveryMonth, LastOccurenceDate = DateTime.Parse("11/08/2019"), StartDate = DateTime.Parse("11/07/2018"), Subject = "Internet", Value = 125.0 } }; foreach (RecurringBill rb in RBs) { context.RecurringBills.Add(rb); } context.SaveChanges(); return(RBs); }
public void Retrieve_ItShouldReturnASingleBill() { var obj = RecurringBill.Retrieve("rbill-1"); Assert.AreEqual("rbill-1", obj.Id); }