Ejemplo n.º 1
0
        private LocatedSignatureCount[] generateConstituencySignatures(Signatures_By_Constituency[] signaturesByConstituency, DateTime petitionRetrievalTimestamp)
        {
            List <LocatedSignatureCount> signatures     = new List <LocatedSignatureCount>();
            Dictionary <string, string>  constituencies = IdRetrieval.GetSubjectsDictionary("constituencyGroupOnsCode", logger);

            foreach (Signatures_By_Constituency constituency in signaturesByConstituency)
            {
                LocatedSignatureCount locatedSignatureCount = new LocatedSignatureCount();
                locatedSignatureCount.SignatureCount            = DeserializerHelper.GiveMeSingleIntegerValue(constituency.signature_count);
                locatedSignatureCount.SignatureCountRetrievedAt = DeserializerHelper.GiveMeSingleDateValue(petitionRetrievalTimestamp);
                if (constituencies.ContainsKey(constituency.ons_code))
                {
                    locatedSignatureCount.LocatedSignatureCountHasPlace = new Place()
                    {
                        Id = new Uri(constituencies[constituency.ons_code])
                    };
                    signatures.Add(locatedSignatureCount);
                }
                else
                {
                    logger.Warning($"Found signature on petition without matching constituency code - {constituency.ons_code}");
                }
            }
            return(signatures.ToArray());
        }
Ejemplo n.º 2
0
        private LocatedSignatureCount[] generateInternationalAreasSignatures(Signatures_By_Country[] signaturesByCountry, DateTime petitionRetrievalTimestamp)
        {
            List <LocatedSignatureCount> signatures  = new List <LocatedSignatureCount>();
            Dictionary <string, string>  countries   = IdRetrieval.GetSubjectsDictionary("countryGovRegisterId", logger);
            Dictionary <string, string>  territories = IdRetrieval.GetSubjectsDictionary("territoryGovRegisterId", logger);

            foreach (Signatures_By_Country country in signaturesByCountry)
            {
                LocatedSignatureCount locatedSignatureCount = new LocatedSignatureCount();
                locatedSignatureCount.SignatureCount            = DeserializerHelper.GiveMeSingleIntegerValue(country.signature_count);
                locatedSignatureCount.SignatureCountRetrievedAt = DeserializerHelper.GiveMeSingleDateValue(petitionRetrievalTimestamp);
                Place place = null;
                if (territories.ContainsKey(country.code))
                {
                    place = new Place()
                    {
                        Id = new Uri(territories[country.code])
                    }
                }
                ;
                else
                if (countries.ContainsKey(country.code))
                {
                    place = new Place()
                    {
                        Id = new Uri(countries[country.code])
                    }
                }
                ;
                if (place != null)
                {
                    locatedSignatureCount.LocatedSignatureCountHasPlace = place;
                    signatures.Add(locatedSignatureCount);
                }
                else
                {
                    logger.Warning($"Found signature on petition without matching international area code - {country.code}");
                }
            }
            return(signatures.ToArray());
        }
Ejemplo n.º 3
0
        public override BaseResource[] SynchronizeIds(BaseResource[] source, Uri subjectUri, BaseResource[] target)
        {
            UkgapEPetition ePetition = source.OfType <UkgapEPetition>().SingleOrDefault();

            ePetition.Id = subjectUri;

            GovernmentResponse governmentResponse = target.OfType <GovernmentResponse>().SingleOrDefault();

            if (governmentResponse != null)
            {
                ePetition.EPetitionHasGovernmentResponse.SingleOrDefault().Id = governmentResponse.Id;
            }
            Parliament.Model.Debate debate = target.OfType <Parliament.Model.Debate>().SingleOrDefault();
            if (debate != null)
            {
                ePetition.EPetitionHasDebate.SingleOrDefault().Id = debate.Id;
            }
            IEnumerable <Approval> approvals          = target.OfType <Approval>();
            List <Approval>        ePetitionApprovals = source.OfType <Approval>().ToList();

            foreach (Approval approval in approvals)
            {
                Approval foundModeration = ePetitionApprovals
                                           .SingleOrDefault(m => m.ApprovedAt == approval.ApprovedAt);
                if (foundModeration != null)
                {
                    foundModeration.Id = approval.Id;
                }
                else
                {
                    ePetitionApprovals.Add(approval);
                }
            }
            foreach (Approval approval in ePetitionApprovals)
            {
                approval.ApprovalHasApprovedEPetition = new ApprovedEPetition[]
                {
                    new ApprovedEPetition()
                    {
                        Id = subjectUri
                    }
                }
            }
            ;

            IEnumerable <Parliament.Model.Rejection> rejects             = target.OfType <Parliament.Model.Rejection>();
            List <Parliament.Model.Rejection>        ePetitionRejections = source.OfType <Parliament.Model.Rejection>().ToList();

            foreach (Parliament.Model.Rejection rejection in rejects)
            {
                Parliament.Model.Rejection foundModeration = ePetitionRejections
                                                             .SingleOrDefault(m => m.RejectedAt == rejection.RejectedAt);
                if (foundModeration != null)
                {
                    foundModeration.Id = rejection.Id;
                }
                else
                {
                    ePetitionRejections.Add(rejection);
                }
            }
            foreach (Parliament.Model.Rejection rejection in ePetitionRejections)
            {
                rejection.RejectionHasRejectedEPetition = new RejectedEPetition[]
                {
                    new RejectedEPetition()
                    {
                        Id = subjectUri
                    }
                }
            }
            ;

            IEnumerable <ThresholdAttainment> thresholdAttainments = target.OfType <ThresholdAttainment>();

            foreach (ThresholdAttainment thresholdAttainment in thresholdAttainments)
            {
                ThresholdAttainment foundThresholdAttainment = ePetition.EPetitionHasThresholdAttainment.SingleOrDefault(t => t.ThresholdAttainmentAt == thresholdAttainment.ThresholdAttainmentAt);
                if (foundThresholdAttainment != null)
                {
                    foundThresholdAttainment.Id = thresholdAttainment.Id;
                }
            }
            IEnumerable <LocatedSignatureCount> signatures = target.OfType <LocatedSignatureCount>();

            foreach (LocatedSignatureCount signature in signatures)
            {
                LocatedSignatureCount foundLocatedSignatureCount = ePetition.EPetitionHasLocatedSignatureCount
                                                                   .SingleOrDefault(s => s.LocatedSignatureCountHasPlace.Id == signature.LocatedSignatureCountHasPlace.Id);
                if (foundLocatedSignatureCount != null)
                {
                    foundLocatedSignatureCount.Id = signature.Id;
                    if (foundLocatedSignatureCount.SignatureCount.SingleOrDefault() == signature.SignatureCount.SingleOrDefault())
                    {
                        foundLocatedSignatureCount.SignatureCountRetrievedAt = signature.SignatureCountRetrievedAt;
                    }
                }
            }
            foreach (LocatedSignatureCount signature in ePetition.EPetitionHasLocatedSignatureCount.Where(s => s.Id == null))
            {
                signature.Id = GenerateNewId();
            }

            return(ePetitionApprovals.AsEnumerable <BaseResource>().Concat(ePetitionRejections).Concat(ePetition.AsEnumerable()).ToArray());
        }