コード例 #1
0
        private void TestQuery(object sender, RoutedEventArgs e)
        {
            if (login == null || String.IsNullOrEmpty(login.SessionID))
            {
                AddMessage("Not logged in.");
                return;
            }
            try {
                BinSizes  binSize  = (BinSizes)(Convert.ToInt32((binSel.SelectedItem as ComboBoxItem).Tag.ToString()));
                Functions function = (Functions)(Convert.ToInt32((funcSel.SelectedItem as ComboBoxItem).Tag.ToString()));

                List <DataField> queryFields = new List <DataField>();
                foreach (CheckBox cb in fields.Items)
                {
                    if (cb.IsChecked == true)
                    {
                        string[]  chops = cb.Content.ToString().Split('.');
                        DataField f     = new DataField()
                        {
                            HID = Convert.ToInt32(chops[0]), FieldName = chops[1], Function = function
                        };
                        queryFields.Add(f);
                    }
                }

                // Add one more field that doesn't exist


                //DataField fTest = new DataField() { HID = queryFields[0].HID, FieldName = "Vdc12", Function = queryFields[0].Function };
                //queryFields.Add(fTest);

                DataResult result = api.GetBinData(login.SessionID, startDate.Text, endDate.Text, binSize, queryFields);
                if ((AEResultCodes)result.Code == AEResultCodes.OK)
                {
                    AddMessage(string.Format("*** GetBinData returned {0} rows", result.DataSet.Count()));
                    for (int i = 0; i < result.DataSet.Count(); i++)
                    {
                        DataBin db = result.DataSet[i];
                        AddMessage(string.Format("{0}: {1}   {2}", i, db.Timestamp, string.Join(", ", (from z in db.Data select string.Format("{0:0.000}", z)))));
                    }
                }
                else
                {
                    AddMessage(string.Format("*** GetBinData returned {0}", result.ResultCodeString()));
                }
            } catch (CommunicationException) {
                AddMessage("GetBinData failed. Returned data may exceed allowable size. Try reducing the timespan on the query.");
            } catch {
                AddMessage("GetBinData failed. Please check your connection.");
            }
        }