Esempio n. 1
0
        public static ApplicationDynamicsModel ToVsdVictimsModel(this ApplicationFormModel model)
        {
            var application = GetApplicationDefaults();

            application.Application.vsd_applicanttype = (int)ApplicationType.Victim;

            if (model == null)
            {
                return(null);
            }

            if (model.PersonalInformation != null)
            {
                application.Application.vsd_applicantsfirstname  = model.PersonalInformation.firstName;
                application.Application.vsd_applicantsmiddlename = model.PersonalInformation.middleName;
                application.Application.vsd_applicantslastname   = model.PersonalInformation.lastName;
                application.Application.vsd_otherfirstname       = model.PersonalInformation.otherFirstName;
                application.Application.vsd_otherlastname        = model.PersonalInformation.otherLastName;
                if (model.PersonalInformation.dateOfNameChange.HasValue)
                {
                    application.Application.vsd_dateofnamechange = model.PersonalInformation.dateOfNameChange;
                }

                application.Application.vsd_applicantsgendercode = model.PersonalInformation.gender;
                if (model.PersonalInformation.birthDate.HasValue)
                {
                    application.Application.vsd_applicantsbirthdate = model.PersonalInformation.birthDate.Value;
                }
                application.Application.vsd_applicantsmaritalstatus = model.PersonalInformation.maritalStatus;

                application.Application.vsd_applicantsoccupation            = model.PersonalInformation.occupation;
                application.Application.vsd_applicantssocialinsurancenumber = model.PersonalInformation.sin;

                // what format does dynamics expect in the JSON?
                // currently the Dynamics UI only allows a 10-digit number and uses some fancy input masking to include the parens and hyphens
                // Form side should mimic the fancy javascript input masking from the Dynamics UI, and probably just represent it as a pure 10 digit number behind the scenes and in the JSON
                // Ideally the whole thing would support international numbers and use the E.164 standard for behind-the-scenes representation
                // (see https://www.sitepoint.com/working-phone-numbers-javascript/ for inspiration)
                // but for now we should only support whatever the Dynamics UI supports - no sense adding extra features that can't be used because of the Dynamics side
                application.Application.vsd_applicantsprimaryphonenumber   = model.PersonalInformation.phoneNumber;
                application.Application.vsd_applicantsalternatephonenumber = model.PersonalInformation.alternatePhoneNumber;
                application.Application.vsd_applicantsemail = model.PersonalInformation.email;
                application.Application.vsd_applicantspreferredmethodofcontact = model.PersonalInformation.preferredMethodOfContact;

                if (model.PersonalInformation.primaryAddress != null)
                {
                    application.Application.vsd_applicantsprimaryaddressline1 = model.PersonalInformation.primaryAddress.line1;
                    application.Application.vsd_applicantsprimaryaddressline2 = model.PersonalInformation.primaryAddress.line2;
                    application.Application.vsd_applicantsprimarycity         = model.PersonalInformation.primaryAddress.city;
                    application.Application.vsd_applicantsprimaryprovince     = model.PersonalInformation.primaryAddress.province;
                    application.Application.vsd_applicantsprimarycountry      = model.PersonalInformation.primaryAddress.country;
                    application.Application.vsd_applicantsprimarypostalcode   = model.PersonalInformation.primaryAddress.postalCode;
                }

                if (model.PersonalInformation.alternateAddress != null)
                {
                    application.Application.vsd_applicantsalternateaddressline1 = model.PersonalInformation.alternateAddress.line1;
                    application.Application.vsd_applicantsalternateaddressline2 = model.PersonalInformation.alternateAddress.line2;
                    application.Application.vsd_applicantsalternatecity         = model.PersonalInformation.alternateAddress.city;
                    application.Application.vsd_applicantsalternateprovince     = model.PersonalInformation.alternateAddress.province;
                    application.Application.vsd_applicantsalternatecountry      = model.PersonalInformation.alternateAddress.country;
                    application.Application.vsd_applicantsalternatepostalcode   = model.PersonalInformation.alternateAddress.postalCode;
                }
            }

            if (model.CrimeInformation != null)
            {
                application.Application.vsd_cvap_typeofcrime = model.CrimeInformation.typeOfCrime;
                if (model.CrimeInformation.crimePeriodStart.HasValue)
                {
                    application.Application.vsd_cvap_crimestartdate = model.CrimeInformation.crimePeriodStart;
                }
                if (model.CrimeInformation.crimePeriodEnd.HasValue)
                {
                    application.Application.vsd_cvap_crimeenddate = model.CrimeInformation.crimePeriodEnd;
                }
                application.Application.vsd_cvap_reasontoapplylate = model.CrimeInformation.whyDidYouNotApplySooner; // TODO: Verify mapping - I think it's right but just different names

                // Add Crime Locations as an array separated by line feeds
                if (model.CrimeInformation.crimeLocations.Count() > 0)
                {
                    string tempOutput = "";
                    foreach (Crimelocation tempCrimeLocation in model.CrimeInformation.crimeLocations)
                    {
                        tempOutput = tempOutput + tempCrimeLocation.location + "\r\n";
                    }
                    application.Application.vsd_cvap_crimelocations = tempOutput.Substring(0, tempOutput.Length - 2);
                }

                application.Application.vsd_cvap_crimedetails = model.CrimeInformation.crimeDetails;
                application.Application.vsd_cvap_injuries     = model.CrimeInformation.crimeInjuries;

                // Include upload file
                try
                {
                    if (model.CrimeInformation.additionalInformationFiles != null)
                    {
                        if (model.CrimeInformation.additionalInformationFiles.fileName.Length > 0)
                        {
                            Documentcollection tempDocumentCollection = new Documentcollection();
                            tempDocumentCollection.body       = model.CrimeInformation.additionalInformationFiles.body;
                            tempDocumentCollection.filename   = model.CrimeInformation.additionalInformationFiles.fileName;
                            application.DocumentCollection    = new Documentcollection[1];
                            application.DocumentCollection[0] = tempDocumentCollection;
                        }
                    }
                }
                catch (Exception e)
                {
                    string errormessage = e.Message;
                }

                application.Application.vsd_cvap_reportedtopolice = model.CrimeInformation.wasReportMadeToPolice;
                application.Application.vsd_cvap_policedetachment = model.CrimeInformation.policeReportedWhichPoliceForce;
                if (model.CrimeInformation.policeReportedDate.HasValue)
                {
                    application.Application.vsd_cvap_policereportingstartdate = model.CrimeInformation.policeReportedDate;
                }
                if (model.CrimeInformation.policeReportedEndDate.HasValue)
                {
                    application.Application.vsd_cvap_policereportingenddate = model.CrimeInformation.policeReportedEndDate;
                }
                application.Application.vsd_cvap_crimereportedto = model.CrimeInformation.noPoliceReportIdentification; // TODO: verify mapping - I think it's right, but different names

                // Setup policeFiles, don't show if there isn't any
                if (model.CrimeInformation.policeReports != null)
                {
                    if (model.CrimeInformation.policeReports[0].policeFileNumber.Length > 0)
                    {
                        application.PoliceFileNumberCollection = model.CrimeInformation.policeReports.Select(r => new Policefilenumbercollection
                        {
                            vsd_investigatingpoliceofficername = r.investigatingOfficer,
                            vsd_policefilenumber = r.policeFileNumber
                        }).ToArray();
                    }
                }

                application.Application.vsd_cvap_offenderfirstname  = model.CrimeInformation.offenderFirstName;
                application.Application.vsd_cvap_offendermiddlename = model.CrimeInformation.offenderMiddleName;
                application.Application.vsd_cvap_offenderlastname   = model.CrimeInformation.offenderLastName;

                application.Application.vsd_cvap_relationshiptooffender = model.CrimeInformation.offenderRelationship;
                application.Application.vsd_cvap_isoffendercharged      = model.CrimeInformation.offenderBeenCharged;

                // Setup courtFiles, don't show if there isn't any
                if (model.CrimeInformation.courtFiles != null)
                {
                    if (model.CrimeInformation.courtFiles[0].courtFileNumber.Length > 0)
                    {
                        application.CourtInfoCollection = model.CrimeInformation.courtFiles.Select(f => new Courtinfocollection
                        {
                            vsd_courtfilenumber = f.courtFileNumber,
                            vsd_courtlocation   = f.courtLocation
                        }).ToArray();
                    }
                }

                application.Application.vsd_cvap_isoffendersued         = model.CrimeInformation.haveYouSuedOffender;
                application.Application.vsd_cvap_intentiontosueoffender = model.CrimeInformation.intendToSueOffender;

                if (model.CrimeInformation.racafInformation != null)
                {
                    application.Application.vsd_racaf_appliedforrestitution = model.CrimeInformation.racafInformation.applyToCourtForMoneyFromOffender;
                    application.Application.vsd_racaf_requestedexpenses     = model.CrimeInformation.racafInformation.expensesRequested;
                    application.Application.vsd_racaf_expensesawarded       = model.CrimeInformation.racafInformation.expensesAwarded;
                    application.Application.vsd_racaf_amountreceived        = model.CrimeInformation.racafInformation.expensesReceived;

                    application.Application.vsd_racaf_legalactiontaken   = model.CrimeInformation.racafInformation.willBeTakingLegalAction;
                    application.Application.vsd_racaf_lawyerorfirmname   = model.CrimeInformation.racafInformation.lawyerOrFirmName;
                    application.Application.vsd_racaf_lawyeraddressline1 = model.CrimeInformation.racafInformation.lawyerAddress?.line1;
                    application.Application.vsd_racaf_lawyeraddressline2 = model.CrimeInformation.racafInformation.lawyerAddress?.line2;
                    application.Application.vsd_racaf_lawyercity         = model.CrimeInformation.racafInformation.lawyerAddress?.city;
                    application.Application.vsd_racaf_lawyerprovince     = model.CrimeInformation.racafInformation.lawyerAddress?.province;
                    application.Application.vsd_racaf_lawyerpostalcode   = model.CrimeInformation.racafInformation.lawyerAddress?.postalCode;
                    application.Application.vsd_racaf_lawyercountry      = model.CrimeInformation.racafInformation.lawyerAddress?.country;

                    application.Application.vsd_racaf_signature = model.CrimeInformation.racafInformation.signature;
                }
            }

            if (model.MedicalInformation != null)
            {
                application.Application.vsd_applicantspersonalhealthnumber       = model.MedicalInformation.personalHealthNumber;
                application.Application.vsd_applicantsextendedhealthprovidername = model.MedicalInformation.otherHealthCoverageProviderName;       // TODO: verify mapping, "other" seems weird here
                application.Application.vsd_applicantsextendedhealthnumber       = model.MedicalInformation.otherHealthCoverageExtendedPlanNumber; // TODO: verify mapping, "other" seems weird here

                application.Application.vsd_cvap_treatmenthospitalname = model.MedicalInformation.treatedAtHospitalName;
                if (model.MedicalInformation.treatedAtHospitalDate.HasValue)
                {
                    application.Application.vsd_cvap_treatmentdate = model.MedicalInformation.treatedAtHospitalDate;
                }

                // Setup otherTreatments, don't show if there isn't any
                if (model.MedicalInformation.otherTreatments != null)
                {
                    if (model.MedicalInformation.otherTreatments[0].providerName.Length > 0)
                    {
                        application.ProviderCollection = model.MedicalInformation.otherTreatments.Select(t => new Providercollection
                        {
                            vsd_name        = t.providerName,
                            vsd_phonenumber = t.providerPhoneNumber,

                            vsd_addressline1  = t.providerAddress.line1,
                            vsd_addressline2  = t.providerAddress.line2,
                            vsd_city          = t.providerAddress.city,
                            vsd_province      = t.providerAddress.province,
                            vsd_country       = t.providerAddress.country,
                            vsd_postalcode    = t.providerAddress.postalCode,
                            vsd_relationship1 = t.providerType.ToString(),
                            //    // TODO: It looks like we're using this object in two different places - confirm that we can safely ignore the following fields in this context
                            //    vsd_firstname = "", // TODO: We don't collect a split name here
                            //    vsd_middlename = "", // TODO: We don't collect a split name here
                            //    vsd_lastname = "", // TODO: We don't collect a split name here
                            //    vsd_alternatephonenumber = "", // TODO: We don't collect an alternate phone number
                            //    vsd_email = "", // TODO: We don't collect an email here
                            //    //vsd_preferredmethodofcontact = 1, // TODO: We don't collect a contact method here
                            //    //vsd_preferredmethodofcontact = model.RepresentativeInformation.representativePreferredMethodOfContact, // TODO: This isn't correct either
                            //    vsd_relationship1 = "", // TODO: We don't collect a relationship here
                        }).ToArray();
                    }
                }
            }

            // Add employer information to Provider collection
            if (model.EmploymentIncomeInformation != null)
            {
                if (model.EmploymentIncomeInformation.employers.Count() > 0)
                {
                    if (model.EmploymentIncomeInformation.employers[0].employerFirstName != null)
                    {
                        Providercollection[] tempProviderCollection;
                        tempProviderCollection = model.EmploymentIncomeInformation.employers.Select(f => new Providercollection
                        {
                            vsd_name          = f.employerName,
                            vsd_phonenumber   = f.employerPhoneNumber,
                            vsd_addressline1  = f.employerAddress.line1,
                            vsd_addressline2  = f.employerAddress.line2,
                            vsd_city          = f.employerAddress.city,
                            vsd_province      = f.employerAddress.province,
                            vsd_postalcode    = f.employerAddress.postalCode,
                            vsd_country       = f.employerAddress.country,
                            vsd_firstname     = f.employerFirstName,
                            vsd_lastname      = f.employerLastName,
                            vsd_relationship1 = "100000005", // TODO: This is just an assumption, looking for confirmation from Mano
                        }).ToArray();

                        int tempProviderCount = 0;
                        if (application.ProviderCollection == null)
                        {
                            tempProviderCount = 0;
                        }
                        else
                        {
                            tempProviderCount = application.ProviderCollection.Count();
                        }
                        Providercollection[] tempCombinedCollection = new Providercollection[tempProviderCount + tempProviderCollection.Count()];
                        if (application.ProviderCollection == null)
                        {
                            tempCombinedCollection = tempProviderCollection;
                        }
                        else
                        {
                            Array.Copy(application.ProviderCollection, tempCombinedCollection, tempProviderCount);
                        }
                        Array.Copy(tempProviderCollection, 0, tempCombinedCollection, tempProviderCount, tempProviderCollection.Count());
                        application.ProviderCollection = tempCombinedCollection;
                    }
                }
            }

            // Add medical doctor information
            if (model.MedicalInformation.familyDoctorName.Length > 0) // Only do this if there is something in this field
            {
                Providercollection[] tempProviderCollection = new Providercollection[1];
                tempProviderCollection[0]                   = new Providercollection();
                tempProviderCollection[0].vsd_name          = model.MedicalInformation.familyDoctorName;
                tempProviderCollection[0].vsd_phonenumber   = model.MedicalInformation.familyDoctorPhoneNumber;
                tempProviderCollection[0].vsd_addressline1  = model.MedicalInformation.familyDoctorAddressLine1;
                tempProviderCollection[0].vsd_addressline2  = model.MedicalInformation.familyDoctorAddressLine2;
                tempProviderCollection[0].vsd_relationship1 = "100000000"; // TODO: This is just an assumption, looking for confirmation from Mano

                int tempProviderCount = 0;
                if (application.ProviderCollection == null)
                {
                    tempProviderCount = 0;
                }
                else
                {
                    tempProviderCount = application.ProviderCollection.Count();
                }
                Providercollection[] tempCombinedCollection = new Providercollection[tempProviderCount + tempProviderCollection.Count()];
                if (application.ProviderCollection == null)
                {
                    tempCombinedCollection = tempProviderCollection;
                }
                else
                {
                    Array.Copy(application.ProviderCollection, tempCombinedCollection, tempProviderCount);
                }
                Array.Copy(tempProviderCollection, 0, tempCombinedCollection, tempProviderCount, tempProviderCollection.Count());
                application.ProviderCollection = tempCombinedCollection;
            }

            if (model.ExpenseInformation != null)
            {
                // Build Expenses CSV String
                string tempExpenses = "";
                if (model.ExpenseInformation.haveMedicalExpenses)
                {
                    tempExpenses = tempExpenses + "100000000,";
                }
                if (model.ExpenseInformation.haveDentalExpenses)
                {
                    tempExpenses = tempExpenses + "100000001,";
                }
                if (model.ExpenseInformation.havePrescriptionDrugExpenses)
                {
                    tempExpenses = tempExpenses + "100000002,";
                }
                if (model.ExpenseInformation.haveCounsellingExpenses)
                {
                    tempExpenses = tempExpenses + "100000003,";
                }
                if (model.ExpenseInformation.haveLostEmploymentIncomeExpenses)
                {
                    tempExpenses = tempExpenses + "100000004,";
                }
                if (model.ExpenseInformation.havePersonalPropertyLostExpenses)
                {
                    tempExpenses = tempExpenses + "100000005,";
                }
                if (model.ExpenseInformation.haveProtectiveMeasureExpenses)
                {
                    tempExpenses = tempExpenses + "100000006,";
                }
                if (model.ExpenseInformation.haveDisabilityExpenses)
                {
                    tempExpenses = tempExpenses + "100000007,";
                }
                if (model.ExpenseInformation.haveCrimeSceneCleaningExpenses)
                {
                    tempExpenses = tempExpenses + "100000008,";
                }
                if (model.ExpenseInformation.haveOtherExpenses)
                {
                    tempExpenses = tempExpenses + "100000009,";
                }
                if (tempExpenses.Length > 0)
                {
                    tempExpenses = tempExpenses.Substring(0, tempExpenses.Length - 1);
                    application.Application.vsd_cvap_benefitsrequested = tempExpenses;
                }
                application.Application.vsd_cvap_benefitsrequestedother = model.ExpenseInformation.otherSpecificExpenses;

                // Build Benefits CSV String
                string tempBenefits = "";
                if (model.ExpenseInformation.haveDisabilityPlanBenefits)
                {
                    tempBenefits = tempBenefits + "100000000,";
                }
                if (model.ExpenseInformation.haveEmploymentInsuranceBenefits)
                {
                    tempBenefits = tempBenefits + "100000001,";
                }
                if (model.ExpenseInformation.haveIncomeAssistanceBenefits)
                {
                    tempBenefits = tempBenefits + "100000002,";
                }
                if (model.ExpenseInformation.haveCanadaPensionPlanBenefits)
                {
                    tempBenefits = tempBenefits + "100000003,";
                }
                if (model.ExpenseInformation.haveAboriginalAffairsAndNorthernDevelopmentCanadaBenefits)
                {
                    tempBenefits = tempBenefits + "100000004,";
                }
                if (model.ExpenseInformation.haveCivilActionBenefits)
                {
                    tempBenefits = tempBenefits + "100000005,";
                }
                if (model.ExpenseInformation.haveOtherBenefits)
                {
                    tempBenefits = tempBenefits + "100000006,";
                }
                if (tempBenefits.Length > 0)
                {
                    tempBenefits = tempBenefits.Substring(0, tempBenefits.Length - 1);
                    application.Application.vsd_cvap_otherbenefits = tempBenefits;
                }
                application.Application.vsd_cvap_otherbenefitsother = model.ExpenseInformation.otherSpecificBenefits;
            }

            if (model.EmploymentIncomeInformation != null)
            {
                // what is with all the "ifm" stuff?
                if (model.EmploymentIncomeInformation.wereYouEmployedAtTimeOfCrime.HasValue)
                {
                    application.Application.vsd_cvap_ifmemployedduringcrime = model.EmploymentIncomeInformation.wereYouEmployedAtTimeOfCrime;
                }
                application.Application.vsd_cvap_ifmatworkduringcrime = model.EmploymentIncomeInformation.wereYouAtWorkAtTimeOfIncident;
                application.Application.vsd_cvap_ifmwcbclaimnumber    = model.EmploymentIncomeInformation.workersCompensationClaimNumber;
                application.Application.vsd_cvap_ifmmissedwork        = model.EmploymentIncomeInformation.didYouMissWorkDueToCrime;
                if (model.EmploymentIncomeInformation.daysWorkMissedStart.HasValue)
                {
                    application.Application.vsd_cvap_ifmmissedworkstart = model.EmploymentIncomeInformation.daysWorkMissedStart;
                }
                if (model.EmploymentIncomeInformation.daysWorkMissedEnd.HasValue)
                {
                    application.Application.vsd_cvap_ifmmissedworkend = model.EmploymentIncomeInformation.daysWorkMissedEnd;
                }
                application.Application.vsd_cvap_ifmlostwages = model.EmploymentIncomeInformation.didYouLoseWages;
                if (model.EmploymentIncomeInformation.areYouSelfEmployed > 0)
                {
                    application.Application.vsd_cvap_ifmselfemployed = model.EmploymentIncomeInformation.areYouSelfEmployed;
                }
                application.Application.vsd_cvap_ifmcontactemployer = model.EmploymentIncomeInformation.mayContactEmployer;
            }

            if (model.RepresentativeInformation != null)
            {
                application.Application.vsd_cvap_onbehalfofdeclaration = model.RepresentativeInformation.completingOnBehalfOf;
            }

            if (model.DeclarationInformation != null)
            {
                // TODO: Apparently we don't do anything with this information? No obvious fields on the Dynamics side to feed this into
            }

            if (model.AuthorizationInformation != null)
            {
                application.Application.vsd_cvap_onbehalfofdeclaration = model.RepresentativeInformation.completingOnBehalfOf;
                application.Application.vsd_authorizationsignature     = model.AuthorizationInformation.signature;
            }

            application.Application.vsd_applicantssignature = model.AuthorizationInformation.signature; // TODO: where does this come from?
            //application.Application.vsd_cvap_optionalauthorization = 0; // TODO: where does this come from?
            //application.Application.vsd_optionalauthorizationsignature = ""; // TODO: where does this come from?

            //application.DocumentCollection = new Documentcollection[1]; // TODO: bind collection


            return(application);
        }
Esempio n. 2
0
        public static OffenderRestitutionDynamicsModel ToOffenderRestitutionModel(this OffenderRestitutionFormModel model)
        {
            var application = GetApplicationDefaults();

            if (model == null)
            {
                return(null);
            }

            if (model.RestitutionInformation != null)
            {
                //application.Application.vsd_applicantsfirstname = model.RestitutionInformation.victimFirstName;
                //application.Application.vsd_applicantsmiddlename = model.RestitutionInformation.victimMiddleName;
                //application.Application.vsd_applicantslastname = model.RestitutionInformation.victimLastName;
                //if (model.RestitutionInformation.victimBirthDate.HasValue)
                //{
                //    application.Application.vsd_applicantsbirthdate = model.RestitutionInformation.victimBirthDate.Value;
                //}
                //application.Application.vsd_applicantsgendercode = model.RestitutionInformation.victimGender;
                //application.Application.vsd_applicantspreferredmethodofcontact = model.RestitutionInformation.preferredMethodOfContact;
                application.Application.vsd_applicantsprimaryphonenumber   = model.RestitutionInformation.phoneNumber;
                application.Application.vsd_applicantsalternatephonenumber = model.RestitutionInformation.alternatePhoneNumber;
                application.Application.vsd_applicantsemail = model.RestitutionInformation.email;

                if (model.RestitutionInformation.mailingAddress != null)
                {
                    application.Application.vsd_applicantsprimaryaddressline1 = model.RestitutionInformation.mailingAddress.line1;
                    application.Application.vsd_applicantsprimaryaddressline2 = model.RestitutionInformation.mailingAddress.line2;
                    application.Application.vsd_applicantsprimarycity         = model.RestitutionInformation.mailingAddress.city;
                    application.Application.vsd_applicantsprimaryprovince     = model.RestitutionInformation.mailingAddress.province;
                    application.Application.vsd_applicantsprimarypostalcode   = model.RestitutionInformation.mailingAddress.postalCode;
                    application.Application.vsd_applicantsprimarycountry      = model.RestitutionInformation.mailingAddress.country;
                }

                application.Application.vsd_cvap_offenderfirstname  = model.RestitutionInformation.offenderFirstName;
                application.Application.vsd_cvap_offendermiddlename = model.RestitutionInformation.offenderMiddleName;
                application.Application.vsd_cvap_offenderlastname   = model.RestitutionInformation.offenderLastName;
                //application.Application.vsd_cvap_relationshiptooffender = model.RestitutionInformation.offenderRelationship;

                application.Application.vsd_applicantssignature = model.RestitutionInformation.signature; // TODO: where does this come from?
            }

            // TODO: Fix file mapping
            // how does the uploading work? is our array a list of file ids? Look them up and extract appropriate data...
            try
            {
                if (model.DocumentCollectionInformation != null)
                {
                    Documentcollection tempDocumentCollection = new Documentcollection();
                    tempDocumentCollection.body       = model.DocumentCollectionInformation.body;
                    tempDocumentCollection.filename   = model.DocumentCollectionInformation.fileName;
                    application.DocumentCollection    = new Documentcollection[1];
                    application.DocumentCollection[0] = tempDocumentCollection;



                    //application.DocumentCollection[1].body = model.DocumentCollectionInformation.body;
                    //application.DocumentCollection[1].filename = model.DocumentCollectionInformation.fileName;

                    //application.DocumentCollection = model.DocumentCollectionInformation.Select(g => new Documentcollection
                    //{
                    //    body = g.body,
                    //    filename = g.fileName
                    //}).ToArray();
                }
            }
            catch (Exception e)
            {
                string errormessage = e.Message;
            }


            //if (model.RestitutionInformation.courtFiles != null)
            //{
            //    if (model.RestitutionInformation.courtFiles.Count() > 0)
            //    {
            //        application.CourtInfoCollection = model.RestitutionInformation.courtFiles.Select(f => new Courtinfocollection
            //        {
            //            vsd_courtfilenumber = f.courtFileNumber,
            //            vsd_courtlocation = f.courtLocation
            //        }).ToArray();
            //    }
            //}


            // TODO: For some reason when this is moved to OpenShift, it doesn't work.
            // Error Message: System.AggregateException: One or more errors occurred. (Value cannot be null.
            // Parameter name: source) --->System.ArgumentNullException: Value cannot be null.
            // Parameter name: source
            //application.ProviderCollection = model.RestitutionInformation.providerFiles.Select(t => new Providercollection
            //{
            //    vsd_name = "",
            //    vsd_phonenumber = "",
            //    vsd_addressline1 = "",
            //    vsd_addressline2 = "",
            //    vsd_city = "",
            //    vsd_province = "",
            //    vsd_postalcode = "",
            //    vsd_email = "",
            //    vsd_firstname = t.firstName,
            //    vsd_relationship1 = t.relationship,
            //    vsd_country = "",
            //    vsd_lastname = "",
            //    vsd_preferredmethodofcontact = null,
            //    vsd_alternatephonenumber = "",
            //    vsd_middlename = "",
            //}).ToArray();

            return(application);
        }