/// <summary> /// make They Pay IC recuring payment monthly /// </summary> /// <createdby>Sumit Saurav</createdby> /// <createddate>09/july/2014</createddate> public static void MakeTheyPayIcRecurringMontthlyPayment() { try { #region Valiables DecisionPointRepository objDecisionPointRepository = null; RecurringPaymentResponseParam planDetails = null; objDecisionPointRepository = new DecisionPointRepository(); IList <CompanyIdResponseParam> lstTheyPayIc = objDecisionPointRepository.getAllPayeeIcCompanyId(); IList <PaymentAmountResponseParam> PaymentAmount = null; int amount = 0; #endregion if (lstTheyPayIc != null && lstTheyPayIc.Count > 0) { foreach (var item in lstTheyPayIc) { try { #region Ic Payment Calculation & Deductions // get payment amount of an They Pay Ic. PaymentAmount = objDecisionPointRepository.getPaymentAmount(item.CompanyId).ToList(); planDetails = new RecurringPaymentResponseParam(); //get recurring payment customer details planDetails = objDecisionPointRepository.getPlanDetails(Convert.ToInt32(item.Id)); if (planDetails != null) { int IsPaymentDone = objDecisionPointRepository.IsRecurringPaymentDone(planDetails.CustomerId, remarkMonthlyPlan); // check is payment already done for this month or not?? if (IsPaymentDone == 0) { //check wether is invoice is false or not?? if (!Convert.ToBoolean(PaymentAmount[0].IsInvoice)) { if (PaymentAmount != null && PaymentAmount.Count > 0) { decimal IcAmount = Convert.ToDecimal(lstTheyPayIc.Count()) * Convert.ToDecimal(PaymentAmount[0].PerIcFee); amount = Convert.ToInt32((IcAmount * 100)); } planDetails.Amount = amount; planDetails.Remark = remarkMonthlyPlan; planDetails.UserId = item.Id; //update plan in stripe. StripePayment payment = new StripePayment(Convert.ToString(ConfigurationManager.AppSettings["StripeKey"])); XamarinStripeCore.AnnualMonthlyPaymentCharge(payment, planDetails); } } } #endregion } catch { } } } } catch { throw; } finally { } }