private static (double, double) GetPaymentAmounts(IDbConnection c, IDbTransaction t, long idUser, long idTeam, long idTournament, string enrollmentData) { var workflowConfig = PaymentConfigsController.GetEnrollmentPaymentWorkflowForUser(c, t, idTeam, idTournament, idUser); if (workflowConfig == null) { throw new Exception("Error.PaymentWorkflowNotFound"); } var workFlow = EnrollmentPaymentWorkflow.Hydrate(workflowConfig.EnrollmentWorkflow); if (workFlow == null) { throw new Exception("Error.InvalidPaymentWorkflow"); } // DAVE: add organization payment options to workflow object here (from organization manager, using the request). var enrollWorkflowData = EnrollmentPaymentData.Hydrate(enrollmentData); if (enrollWorkflowData == null) { throw new Exception("Error.InvalidPlayerTeamEnrollmentData"); } var result = new double[2]; var total = enrollWorkflowData.GetTotal(workFlow); // Total with fees var selectedOptionsTotal = enrollWorkflowData.GetSelectedOptionsTotal(workFlow); // Total before fees return(total, selectedOptionsTotal); }
private static string ProcessEnrollmentData(string val) { if (val == null || val == "") { return(""); } try { var epm = EnrollmentPaymentData.Hydrate(val); if (epm == null) { return(""); } var result = new StringBuilder(); var isFirst = true; foreach (var step in epm.Steps) { if (isFirst) { isFirst = false; } else { result.Append(","); } result.Append(GetCsvValue($"{step.Title}: {step.SelectedOption?.Title}")); result.Append(", "); result.Append(GetCsvValue($"{step.SelectedOption?.Price}")); } return(result.ToString()); } catch { return(""); } }