示例#1
0
        private async void btnShowBills_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();

            string Session = "";

            if (this.lbTexasSessions.DataSource == null)
            {
                var results = await cli.GetStateLegesAsync("Texas");

                var aaa = results.Data;

                string Name0 = results.Data.jurisdiction.legislativeSessions.edges[0].node.name.ToString();

                string Identifier0 = results.Data.jurisdiction.legislativeSessions.edges[0].node.identifier.ToString();
                Session = Name0;

                SetSessionsListBox(this.lbTexasSessions, results);
            }
            else
            {
                Session = ((System.Data.DataRowView) this.lbTexasSessions.SelectedValue)["id"].ToString();
            }


            System.DateTime SinceDate = this.dateTimePickerBills.Value;
            string          Subjects  = this.txtSubject.Text;

            await cli.GetBillsFilteredAsync("Texas", SinceDate, System.DateTime.MaxValue, Subjects, null, ExtraGuiActionBill);
        }
示例#2
0
        private async void btnTestBillsBySubject_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            rtbResults.Clear();
            string Cursor = "";

            var resultsB = await cli.GetBillsBySubjectAllAsync("Texas", "851", "Courts--Civil Procedure (I0135)", Cursor, ExtraGuiAction);
        }
示例#3
0
        private async void btnTestPeopleByOrgID_Click(object sender, EventArgs e)
        {
            rtbResults.Clear();
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();

            string Cursor   = "";
            var    resultsP = await cli.GetPeopleByOrgIDAllAsync("ocd-organization/cabf1716-c572-406a-bfdd-1917c11ac629", Cursor, ExtraGuiAction);
        }
示例#4
0
        private async void btnTestPeople_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();


            string Cursor = "";

            var resultsP = await cli.GetPeopleAllAsync(Cursor, ExtraGuiAction);
        }
示例#5
0
        private async void btnTestBills_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            // bool keepgoing = true;
            rtbResults.Clear();

            string Cursor = "";

            var ResultsC = await cli.GetBillsAllAsync("Texas", "851", Cursor, ExtraGuiAction);
        }
示例#6
0
        private async void btnTestPersonByName_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            // var resultsP = await cli.QueryPersonByNameAsync("Kirk Watson");
            var resultsP = await cli.GetPersonByNameAsync("Workman");

            string s = resultsP.Data.ToString();

            rtbResults.Clear();
            rtbResults.AppendText(s);
        }
示例#7
0
        private async void btnTestJurisdictions_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            var resultsJ = await cli.GetJurisdictionsAsync();

            string s = resultsJ.Data.ToString();

            // MessageBox.Show(s, "Jurisdictions");
            rtbResults.Clear();
            rtbResults.AppendText(s);
        }
        /// <summary>
        /// get all bills filtered by both subject and start dates.
        /// The start dates of the sessions helps keep us from making quite so many
        /// bill queries.
        /// </summary>
        /// <param name="state"></param>
        /// <param name="startdate"></param>
        /// <param name="subjects">each space delimited token is searched for and all bill subjects that contain any token are returned</param>
        /// <param name="cursor"></param>
        /// <param name="f">action for each bill. null means no action.</param>
        public async Task <Newtonsoft.Json.Linq.JArray> GetBillsFilteredAsync(string state, DateTime startdate, DateTime enddate, string subjects, string cursor, ExtraActionPerBill f)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();

            Newtonsoft.Json.Linq.JArray AllBills = new Newtonsoft.Json.Linq.JArray();

            var results = await cli.GetStateLegesAsync(state);

            var aaa = results.Data;

            List <string>   SessionNames;
            List <string>   SessionIds;
            List <DateTime> SessionStarts;
            bool            Ok = ExtractSessionNames(results, out SessionNames, out SessionIds, out SessionStarts);

            if (SessionNames != null && SessionIds != null)
            {
                int nn = SessionNames.Count;
                for (int ii = 0; ii < nn; ii++)
                {
                    string SessionI   = SessionNames[ii];
                    string SessionIdI = SessionIds[ii];
                    if (startdate <= SessionStarts[ii])
                    {
                        Newtonsoft.Json.Linq.JArray Bills = await cli.GetBillsAllAsync(state, SessionIdI, "", null);

                        if (Bills != null)
                        {
                            int n = Bills.Count;
                            for (int i = 0; i < n; i++)
                            {
                                Newtonsoft.Json.Linq.JToken OneBill = Bills[i]["node"];

                                Newtonsoft.Json.Linq.JArray SubjectsFound = OneBill["subject"] as Newtonsoft.Json.Linq.JArray;
                                string          updatedAt = OneBill["updatedAt"].ToString();
                                System.DateTime updatedAtDate;
                                bool            OkUpdatedAtDate = System.DateTime.TryParse(updatedAt, out updatedAtDate);
                                if (OkUpdatedAtDate && updatedAtDate >= startdate &&
                                    updatedAtDate <= enddate &&
                                    OpenStateClientLib.OpenStateClient.IsBillSubjectFound(subjects, SubjectsFound))
                                {
                                    f?.Invoke(OneBill);
                                    AllBills.Add(OneBill);
                                }
                            }
                        }
                    }
                }
            }
            return(AllBills);
        }
示例#9
0
        private async void btnShowTexasSessions_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();

            var results = await cli.GetStateLegesAsync("Texas");

            var aaa = results.Data;

            string Name0 = results.Data.jurisdiction.legislativeSessions.edges[0].node.name.ToString();

            string Identifier0 = results.Data.jurisdiction.legislativeSessions.edges[0].node.identifier.ToString();

            SetSessionsListBox(this.lbTexasSessions, results);
        }
示例#10
0
        private async void btnTestJurisLeges_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            var resultsJL = await cli.GetStateLegesAsync("Texas");

            string s = resultsJL.Data.ToString();


            OpenStateClientLib.LegeSet lset = await cli.GetStatePeopleAsync("Texas");

            string ss = lset.SummarizeLeges();

            rtbResults.Clear();
            rtbResults.AppendText(ss);
        }
示例#11
0
        private async void btnShowTexasHouseLegislators_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            var resultsJ = await cli.GetJurisdictionsAsync();

            Newtonsoft.Json.Linq.JArray array = resultsJ.Data.jurisdictions.edges;

            string TexasOrgName = cli.FindJurisdictionId(array, "Texas");
            var    resultsT     = await cli.GetStateLegesAsync("Texas");

            string TexasHouseLegeID = "ocd-organization/d6189dbb-417e-429e-ae4b-2ee6747eddc0";

            var ResultsP = await cli.GetPeopleByOrgIDAllAsync(TexasHouseLegeID, "", ExtraGuiAction);

            SetPeopleListBox(lbHouseLegislators, ResultsP);
        }
示例#12
0
        private async void btnShowTexasSenateLegislators_Click(object sender, EventArgs e)
        {
            OpenStateClientLib.OpenStateClient cli;
            cli = new OpenStateClientLib.OpenStateClient();
            var resultsJ = await cli.GetJurisdictionsAsync();

            Newtonsoft.Json.Linq.JArray array = resultsJ.Data.jurisdictions.edges;

            string TexasOrgName = cli.FindJurisdictionId(array, "Texas");
            var    resultsT     = await cli.GetStateLegesAsync("Texas");

            string TexasSenateLegeID = "ocd-organization/cabf1716-c572-406a-bfdd-1917c11ac629";

            var ResultsP = await cli.GetPeopleByOrgIDAllAsync(TexasSenateLegeID, "", ExtraGuiAction);

            SetPeopleListBox(lbSenateLegislators, ResultsP);
        }
        public async Task FindIntent(IDialogContext context, LuisResult result)
        {
            try
            {
                string CurState;
                CurState = Continuity.GetSavedState(context);
                string SearchTerm = BillDialogUtil.GetSearchTerm(result);

                string CurVoter;
                CurVoter = Continuity.GetSavedLegislator(context);

                DateTime MinTime;
                DateTime MaxTime;
                bool     Ok = BillDialogUtil.GetEntityDateRange(result, out MinTime, out MaxTime);
                // if (Ok)
                {
                    // await context.PostAsync($"SearchTerm = {SearchTerm} MinTime = {MinTime}, MaxTime = {MaxTime}");
                    // // context.Wait(MessageReceived);

                    OpenStateClientLib.OpenStateClient cli = new OpenStateClientLib.OpenStateClient();

                    Newtonsoft.Json.Linq.JArray arr = await cli.GetBillsFilteredAsync(CurState, MinTime, MaxTime, SearchTerm, null, ExtraGuiActionBill);

                    int CurrentBill = 0;

                    bool WillBeMore;
                    int  MaxToShow = Continuity.NumBillsToShowInGroup;
                    if (MaxToShow >= arr.Count)
                    {
                        MaxToShow  = arr.Count;
                        WillBeMore = false;
                    }
                    else
                    {
                        WillBeMore = true;
                    }

                    bool MoreToDisplay = false;
                    for (int ii = 0; ii < MaxToShow; ii++)
                    {
                        CurrentBill   = ii;
                        MoreToDisplay = (ii >= (arr.Count - 1));
                        await BillDialogUtil.DisplayOneBill(context, arr[ii], CurState, CurVoter);
                    }
                    if (MoreToDisplay)
                    {
                        await context.PostAsync("Type 'More' to see more bills.\n");
                    }
                    // context.ConversationData.SetValue(KeyBillNumber, CurrentBill + 1);
                    Continuity.SetSavedBillNumber(context, CurrentBill + 1);
                    if (WillBeMore)
                    {
                        // context.ConversationData.SetValue(KeyBillResults, arr);
                        Continuity.SetSavedBills(context, arr);
                        if (SearchTerm != null && SearchTerm != "")
                        {
                            await context.PostAsync($"Type 'More' to see more '{SearchTerm}' bills.\n");
                        }
                        else
                        {
                            await context.PostAsync("Type 'More' to see more bills.\n");
                        }
                    }
                    else
                    {
                        Continuity.RemoveSavedBills(context);
                    }
                }
                context.Wait(MessageReceived);
            }
            catch (System.Exception)
            {
            }
        }
        public async Task LegislatorIntent(IDialogContext context, LuisResult result)
        {
            // await context.PostAsync("result.Query = " + result.Query);
            // context.Wait(MessageReceived);

            string State = Continuity.GetSavedState(context);

            if (State == null || State == "")
            {
                await context.PostAsync("No State selected" + ".");

                context.Wait(MessageReceived);
                return;
            }
            string SearchTerm = BillDialogUtil.GetSearchTerm(result);


            OpenStateClientLib.OpenStateClient cli = new OpenStateClientLib.OpenStateClient();

            OpenStateClientLib.LegeSet lset = await cli.GetStatePeopleAsync(State);

            if (lset == null)
            {
                await context.PostAsync("Cannot get legislator list" + ".");

                context.Wait(MessageReceived);
                return;
            }
            string Summary = lset.SummarizeLeges();

            if (SearchTerm == null || SearchTerm == "")
            {
                string OldLegislator = Continuity.GetSavedLegislator(context);
                if (OldLegislator != null && OldLegislator != "")
                {
                    Summary += "Selected Legislator is " + OldLegislator + "!\n";
                }
                // await context.PostAsync(Summary);
                await PostIt(context, Summary);

                context.Wait(MessageReceived);
                return;
            }

            if (SearchTerm != null || SearchTerm != "")
            {
                Continuity.SetSavedLegislator(context, SearchTerm);
                string Msg;
                if (SearchTerm.ToLower() == "all")
                {
                    string Msg2 = $"We will show the votes made by all legislators\nwhen you search for bills.";
                    Msg = Msg2;
                    await context.PostAsync(Msg);

                    context.Wait(MessageReceived);
                    return;
                }
                else if (SearchTerm.ToLower() == "none")
                {
                    string Msg2 = $"We will show no votes made by legislators\nwhen you search for bills.";
                    Msg = Msg2;
                    await context.PostAsync(Msg);

                    context.Wait(MessageReceived);
                    return;
                }
                else
                {
                    int NumFound = lset.FindLegislator(SearchTerm, out Msg);
                    if (NumFound == 1)
                    {
                        string Msg2 = $"We will show the votes made by this legislator\nwhen you search for bills.";
                        Msg += ("\n" + Msg2);
                        await context.PostAsync(Msg);

                        context.Wait(MessageReceived);
                        return;
                    }
                    if (NumFound >= 0)
                    {
                        string Msg2 = $"We will show the votes made by these legislators\nwhen you search for bills.";
                        Msg += ("\n" + Msg2);
                        await context.PostAsync(Msg);

                        context.Wait(MessageReceived);
                        return;
                    }
                    else
                    {
                        await context.PostAsync(Msg);

                        context.Wait(MessageReceived);
                        return;
                    }
                }
            }
        }