private ALEMemberInformationGrpType GetIRSCompliantFlags(ALEMemberInformationGrpType aleMemberInformationGrp)
        {
            // These two flags implemented a dataa type we didn't utilize.  In order to not touch the generated code,
            // this was workedaround by setting the header to not serialize when false, and proccesing with this method.
            // Problem was no way to differentiate between no and not checked.


            //Top down approach.If the Yearly flag is set to true the user must have touched it.
            //hide the monthly detail flags accordingly to pass pass testing.
            if (aleMemberInformationGrp.YearlyALEMemberDetail.AggregatedGroupInd == DigitBooleanType.True)
            {
                HideMonthlyAggFlags(aleMemberInformationGrp);
            }
            //When the yearly flag is false and all monthlies true, output in same state as above for consistency.
            //If the yearly is False / No leaving in there 0 - 11 true months.
            else if (aleMemberInformationGrp.AllMonthlyAggregateGrpFlagsAreTrue())
            {
                aleMemberInformationGrp.YearlyALEMemberDetail.AggregatedGroupInd = DigitBooleanType.True;
                HideMonthlyAggFlags(aleMemberInformationGrp);
            }


            if (aleMemberInformationGrp.YearlyALEMemberDetail.MinEssentialCvrOffrCd == DigitCodeType.True)
            {
                HideMonthlyMECFlags(aleMemberInformationGrp);
            }
            else if (aleMemberInformationGrp.AllMonthlyMECFlagsAreTrue())
            {
                aleMemberInformationGrp.YearlyALEMemberDetail.MinEssentialCvrOffrCd = DigitCodeType.False;
                HideMonthlyMECFlags(aleMemberInformationGrp);
            }

            return(aleMemberInformationGrp);
        }
 private void HideMonthlyMECFlags(ALEMemberInformationGrpType aleMemberInformationGrp)
 {
     aleMemberInformationGrp.JanALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.FebALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.MarALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.AprALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.MayALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.JunALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.JulALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.AugALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.SeptALEMonthlyInfoGrp.MinEssentialCvrOffrCd = DigitCodeType.False;
     aleMemberInformationGrp.OctALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.NovALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
     aleMemberInformationGrp.DecALEMonthlyInfoGrp.MinEssentialCvrOffrCd  = DigitCodeType.False;
 }
 private void HideMonthlyAggFlags(ALEMemberInformationGrpType aleMemberInformationGrp)
 {
     aleMemberInformationGrp.JanALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.FebALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.MarALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.AprALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.MayALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.JunALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.JulALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.AugALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.SeptALEMonthlyInfoGrp.AggregatedGroupInd = DigitBooleanType.False;
     aleMemberInformationGrp.OctALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.NovALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
     aleMemberInformationGrp.DecALEMonthlyInfoGrp.AggregatedGroupInd  = DigitBooleanType.False;
 }
        private ALEMemberInformationGrpType _PopulateALEMemberInformationGroup(DataRow pr1094HeaderRow)
        {
            var aleMemberInformationGrp = new ALEMemberInformationGrpType();

            aleMemberInformationGrp.YearlyALEMemberDetail = PopulateALEAnnualInfoGroupType(pr1094HeaderRow);

            aleMemberInformationGrp.JanALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Jan", pr1094HeaderRow);
            aleMemberInformationGrp.FebALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Feb", pr1094HeaderRow);
            aleMemberInformationGrp.MarALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Mar", pr1094HeaderRow);
            aleMemberInformationGrp.AprALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Apr", pr1094HeaderRow);
            aleMemberInformationGrp.MayALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("May", pr1094HeaderRow);
            aleMemberInformationGrp.JunALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Jun", pr1094HeaderRow);
            aleMemberInformationGrp.JulALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Jul", pr1094HeaderRow);
            aleMemberInformationGrp.AugALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Aug", pr1094HeaderRow);
            aleMemberInformationGrp.SeptALEMonthlyInfoGrp = PopulateALEMonthlyInfoGrp("Sep", pr1094HeaderRow);
            aleMemberInformationGrp.OctALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Oct", pr1094HeaderRow);
            aleMemberInformationGrp.NovALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Nov", pr1094HeaderRow);
            aleMemberInformationGrp.DecALEMonthlyInfoGrp  = PopulateALEMonthlyInfoGrp("Dec", pr1094HeaderRow);

            return(GetIRSCompliantFlags(aleMemberInformationGrp));
        }