Ejemplo n.º 1
0
        public static BillAction LastBillActionFromProPublicaBill(DomainModel.ApiModels.ProPublica.BillResult.Bill bill)
        {
            var lastMajorActionText = bill.latest_major_action;
            var lastMajorActionDate = DateFromSunlightTime(bill.latest_major_action_date);
            var lastMajorActionType = BillActionTypeFromText(lastMajorActionText);

            return(new BillAction(lastMajorActionDate, lastMajorActionText, lastMajorActionType));
        }
Ejemplo n.º 2
0
        public static LegislativeBody ChamberFromBillProPublica(DomainModel.ApiModels.ProPublica.BillResult.Bill bill)
        {
            if (bill == null || string.IsNullOrWhiteSpace(bill.sponsor_title))
            {
                return(LegislativeBody.Unknown);
            }

            if (bill.sponsor_title.StartsWith("rep", StringComparison.OrdinalIgnoreCase))
            {
                return(LegislativeBody.House);
            }

            else if (bill.sponsor_title.StartsWith("sen", StringComparison.OrdinalIgnoreCase))
            {
                return(LegislativeBody.Senate);
            }

            else
            {
                return(LegislativeBody.Unknown);
            }
        }
Ejemplo n.º 3
0
        public static BillStatus BillStatusFromProPublicaBill(DomainModel.ApiModels.ProPublica.BillResult.Bill bill)
        {
            if (!string.IsNullOrWhiteSpace(bill.vetoed))
            {
                var vetoedDate = DateFromSunlightTime(bill.vetoed);

                if (vetoedDate != DateTime.MinValue)
                {
                    return(new BillStatus(BillStatusKind.Vetoed, vetoedDate));
                }
            }

            if (!string.IsNullOrWhiteSpace(bill.enacted))
            {
                var enactedDate        = DateFromSunlightTime(bill.enacted);
                var billPassedTextIsOk = bill.latest_major_action.StartsWith("Became Public Law", StringComparison.OrdinalIgnoreCase);

                if (enactedDate != DateTime.MinValue)
                {
                    return(billPassedTextIsOk
                        ? new BillStatus(BillStatusKind.Enacted, enactedDate, bill.latest_major_action)
                        : new BillStatus(BillStatusKind.Enacted, enactedDate));
                }
            }

            if (DateFromSunlightTime(bill.senate_passage) != DateTime.MinValue && DateFromSunlightTime(bill.house_passage) != DateTime.MinValue)
            {
                return(new BillStatus(BillStatusKind.AwaitingSignature));
            }

            if (bill.active)
            {
                return(new BillStatus(BillStatusKind.InCongress));
            }

            return(new BillStatus(BillStatusKind.Unknown));
        }