Beispiel #1
0
        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("");
            }
        }