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)); }
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); } }
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)); }