using Ato.EN.IntegrationServices.CodeGenerationTRTAMIS;
using System.Collections.Generic;

namespace Ato.CD.Inbound.Shared
{
    public static class TRTAMIS2025ContextsExtension
    {
        public static List<Context> GetContexts(this TRTAMIS2025 trtamis) => new List<Context>().
            AddContext(trtamis.RPAssessableIncomeCapitalGainsDirectStartDate, trtamis.RPAssessableIncomeCapitalGainsDirectEndDate, trtamis.RPAssessableIncomeCapitalGainsDirectOccurrenceIndex, trtamis.RPAssessableIncomeCapitalGainsDirectId).
            AddContext(trtamis.RPAssessableIncomeCapitalGainsIndirectStartDate, trtamis.RPAssessableIncomeCapitalGainsIndirectEndDate, trtamis.RPAssessableIncomeCapitalGainsIndirectOccurrenceIndex, trtamis.RPAssessableIncomeCapitalGainsIndirectId).
            AddContext(trtamis.RPAssessableIncomeCapitalGainsStartDate, trtamis.RPAssessableIncomeCapitalGainsEndDate, trtamis.RPAssessableIncomeCapitalGainsOccurrenceIndex, trtamis.RPAssessableIncomeCapitalGainsId).
            AddContext(trtamis.RPAssessableIncomeOtherThanCapitalGainsDirectStartDate, trtamis.RPAssessableIncomeOtherThanCapitalGainsDirectEndDate, trtamis.RPAssessableIncomeOtherThanCapitalGainsDirectOccurrenceIndex, trtamis.RPAssessableIncomeOtherThanCapitalGainsDirectId).
            AddContext(trtamis.RPAssessableIncomeOtherThanCapitalGainsIndirectStartDate, trtamis.RPAssessableIncomeOtherThanCapitalGainsIndirectEndDate, trtamis.RPAssessableIncomeOtherThanCapitalGainsIndirectOccurrenceIndex, trtamis.RPAssessableIncomeOtherThanCapitalGainsIndirectId).
            AddContext(trtamis.RPAssessableIncomeOtherThanCapitalGainsStartDate, trtamis.RPAssessableIncomeOtherThanCapitalGainsEndDate, trtamis.RPAssessableIncomeOtherThanCapitalGainsOccurrenceIndex, trtamis.RPAssessableIncomeOtherThanCapitalGainsId).
            AddContext(trtamis.RPStartDate, trtamis.RPEndDate, trtamis.RPOccurrenceIndex, trtamis.RPId).
            AddContext(trtamis.RPNetExemptionIncomeStartDate, trtamis.RPNetExemptionIncomeEndDate, trtamis.RPNetExemptionIncomeOccurrenceIndex, trtamis.RPNetExemptionIncomeId).
            AddContext(trtamis.RPNonAssessableNonExemptAmountsStartDate, trtamis.RPNonAssessableNonExemptAmountsEndDate, trtamis.RPNonAssessableNonExemptAmountsOccurrenceIndex, trtamis.RPNonAssessableNonExemptAmountsId).
            AddContext(trtamis.RPOffsetStartDate, trtamis.RPOffsetEndDate, trtamis.RPOffsetOccurrenceIndex, trtamis.RPOffsetId);
    }
}