using System.Collections.Generic;
using Valg.EVA.Skanning.Entity.ReadModel;
using Valg.EVA.Skanning.ServicesModel.ElectionConfig.Model;

namespace Valg.EVA.Skanning.ServicesModel.ElectionConfig.DataProvider
{
    public interface IElectionConfigXmlDeserializationHelper
    {
        List<ElectionEvent> DeserializeElectionEvent(IEnumerable<XmlResult> xmlResults);
        List<Contest> DeserializeContests(IEnumerable<XmlResult> xmlResults);
        List<Election> DeserializeElections(IEnumerable<XmlResult> xmlResults);
        List<ReportingUnit> DeserializeReportingUnits(IEnumerable<XmlResult> xmlResults);
        List<PollingDistrict> DeserializePollingDistricts(IEnumerable<XmlResult> xmlResults);
        List<VotingCategory> DeserializeVotingCategories(IEnumerable<XmlResult> xmlResults);
        Election DeserializeElection(IEnumerable<XmlResult> xmlResults);
        CountMetricsForContest DeserializeCountMetricsForContests(IEnumerable<XmlResult> xmlResults, string contestId);
        int? DeserializeMaxWriteIn(XmlResult xmlResults);
    }
}
