Esempio n. 1
0
        public async Task ParseQueryForArray()
        {
            var queryIds = Enumerable.Range(0, 10).Select(i => Guid.NewGuid()).ToArray();
            var query    = new ExampleQuery()
            {
                Id = queryIds
            };

            bool ran = false;
            Func <Guid, Task <HttpResponseMessage> > assert =
                (id) =>
            {
                Assert.Fail();
                return(default(HttpResponseMessage).ToTask());
            };
            Func <Guid[], Task <HttpResponseMessage[]> > assertMulti =
                (ids) =>
            {
                Assert.AreEqual(queryIds.Length, ids.Length);
                ran = true;
                return(default(HttpResponseMessage[]).ToTask());
            };

            var request = new HttpRequestMessage(HttpMethod.Get, "http://example.com/foo/" + queryIds.Select(id => id.ToString())
                                                 .Join(","));

            request.SetConfiguration(new System.Web.Http.HttpConfiguration());
            await query.ParseAsync(request,
                                   (q) => assert(q.Id.ParamSingle()),
                                   (q) => assert(q.AssociatedId.ParamSingle()),
                                   (q) => assertMulti(q.Id.ParamOr()));

            Assert.IsTrue(ran);
        }
Esempio n. 2
0
        public async Task ParseQueryForAssociatedId()
        {
            var queryId = Guid.NewGuid();
            var query   = new ExampleQuery()
            {
                AssociatedId = queryId
            };

            bool ran = false;
            Func <Guid, Task <HttpResponseMessage> > assert =
                (id) =>
            {
                Assert.AreEqual(queryId, id);
                ran = true;
                return(default(HttpResponseMessage).ToTask());
            };

            var request = new HttpRequestMessage(HttpMethod.Get, "http://example.com/foo?associated_id=" + queryId.ToString());

            request.SetConfiguration(new System.Web.Http.HttpConfiguration());
            await query.ParseAsync(request,
                                   (q) => assert(q.Id.ParamSingle()),
                                   (q) => assert(q.AssociatedId.ParamSingle()));

            Assert.IsTrue(ran);
        }
Esempio n. 3
0
        public async Task <RequestResult <Example> > Handle(ExampleQuery request, CancellationToken cancellationToken)
        {
            var result = new RequestResult <Example>();

            result.Payload = await _exampleRepository.FetchExample(request.Value);

            return(result);
        }
Esempio n. 4
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            AnimateLoadStart();

            var progress = new MyProgressHandler(SynchronizationContext.Current);

            progress.ProgressReported += tuple => {
                LabelLoad.Text          = String.Format("{0} / {1} ({2:.00}%)", tuple.Item1, tuple.Item2, tuple.Item1 * 100.0 / tuple.Item2);
                ProgressBarLoad.Maximum = tuple.Item2;
                ProgressBarLoad.Value   = tuple.Item1;
            };

            ProgressBarLoad.Value = 0;

            if (_cancellationTokenSource == null)
            {
                _cancellationTokenSource = new CancellationTokenSource();
            }

            Session session;

            try {
                session = await FritzBox.ConnectAsync(TextBoxHost.Text, TextBoxPassword.Password, CancellationToken.None);
            } catch (OperationCanceledException) {
                return;
            } catch (Exception ex) {
                AnimateLoadStop();
                MessageBox.Show(this, ex.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            LabelLoad.Text = session.Id;

            var data = new ExampleQuery();

            try {
                await session.QueryAsync(data, _cancellationTokenSource.Token, progress);
            } catch (OperationCanceledException) {
                return;
            } catch (Exception ex) {
                MessageBox.Show(this, ex.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            } finally {
                AnimateLoadStop();
            }

            // Use data ...
            //MessageBox.Show(this, data.DslamVendor);

            var newWindow = new DetailWindow();

            newWindow.DetailCollection.Clear();
            FillDetailCollection(newWindow.DetailCollection, data);
            newWindow.Show();
        }
Esempio n. 5
0
     public IActionResult Get([FromQuery] ExampleQuery query)
     {
         if (query == null || (query.Token == null && query.SymbolId == null))
         {
             throw new Shared.Exceptions.InvalidResource()
                   {
                       ResourceName = "",
                       PropertyName = "Must specify at lease one query parameter",
                       ResourceType = typeof(Data.Models.Examples.Example)
                   }
         }
         ;
         if (query.SymbolId != null)
         {
             return(Json(Models.Output.Examples.Example.CreateModels(_manager.GetForSymbol(query.SymbolId.Value))));
         }
         else
         {
             return(Json(Models.Output.Examples.Example.CreateModels(_manager.Get(e => e.Description.Contains(query.Token)))));
         }
     }
 }
Esempio n. 6
0
        private void FillDetailCollection(ObservableCollection <DetailsDataRow> collection, ExampleQuery data)
        {
            // FW
            collection.Add(new DetailsDataRow("Firmware", data.Firmware));

            // DSL-Driver
            collection.Add(new DetailsDataRow("DSL-Treiber", data.DslDriver));

            // DSLAM
            collection.Add(new DetailsDataRow("DSLAM", data.DslamVendor, data.DslamVendorVersion));
            collection.Add(new DetailsDataRow("", data.DslamVersion, data.DslamSerialNumber));

            // MaxSync
            collection.Add(new DetailsDataRow("DSLAM-Datenrate Max.", String.Format("{0:#,0} kbit/s", data.Dsl.DsMaxDslamRate), String.Format("{0:#,0} kbit/s", data.Dsl.UsMaxDslamRate)));

            // MinSync
            collection.Add(new DetailsDataRow("DSLAM-Datenrate Min.", String.Format("{0:#,0} kbit/s", data.Dsl.DsMinDslamRate), String.Format("{0:#,0} kbit/s", data.Dsl.UsMinDslamRate)));

            // Capacity
            collection.Add(new DetailsDataRow("Leitungskapazität", String.Format("{0:#,0} kbit/s", data.Dsl.DsCapacity), String.Format("{0:#,0} kbit/s", data.Dsl.UsCapacity)));

            // Sync
            collection.Add(new DetailsDataRow("Synchronisation", String.Format("{0:#,0} kbit/s ({1:0.00}%)", data.Dsl.DsDataRate, data.Dsl.DsDataRate * 100.0 / data.Dsl.DsCapacity), String.Format("{0:#,0} kbit/s ({1:0.00}%)", data.Dsl.UsDataRate, data.Dsl.UsDataRate * 100.0 / data.Dsl.UsCapacity)));

            // Conversion
            collection.Add(new DetailsDataRow("", SyncToReal(data.Dsl.DsDataRate), SyncToReal(data.Dsl.UsDataRate)));

            // SNRM
            collection.Add(new DetailsDataRow("Störabstandsmarge (SNRM)", String.Format("{0} dB", data.Dsl.DsSnrm), String.Format("{0} dB", data.Dsl.DsSnrm)));

            // Attn
            collection.Add(new DetailsDataRow("Leitungsdämpfung", String.Format("{0} dB", data.Dsl.DsAttenuation), String.Format("{0} dB", data.Dsl.UsAttenuation)));
            collection.Add(new DetailsDataRow("Mittlere Dämpfung", String.Format("ca. {0:0.0} dB", (data.Dsl.DsAttenuation + data.Dsl.UsAttenuation) / 2.0), String.Empty));

            // PCB
            collection.Add(new DetailsDataRow("Leistungsreduzierung (PCB)", String.Format("{0} dB", data.Dsl.DsPcb), String.Format("{0} dB", data.Dsl.UsPcb)));
        }