public AsyncUICommand <Tuple <int, string> > CreateExecuteWPRCommand(string wprArgs)
 {
     return(new AsyncUICommand <Tuple <int, string> >(() =>
     {
         SelfHostedService service = new SelfHostedService(Model.TraceServiceUrl);
         return service.UseService <Tuple <int, string> >(webservice => webservice.ExecuteWPRCommand(wprArgs));
     }, Model, Scheduler)
     {
         Starting = String.Format("Execute on host {0}: wpr.exe {1}", Model.Host, wprArgs),
         Started = "WPR completed on host" + Model.Host,
         StartingError = "WPR command could not be executed on host " + Model.Host,
     });
 }
 AsyncUICommand <string[]> CreateGetTraceSessions()
 {
     return(new AsyncUICommand <string[]>(() =>
     {
         SelfHostedService service = new SelfHostedService(Model.TraceServiceUrl);
         return service.UseService <string[]>(webservice => webservice.GetTraceSessions());
     }, Model, Scheduler)
     {
         Starting = "Fetching active trace sessions from server",
         Started = "Fetched Trace Sessions",
         Completed = sessions => Model.ServerTraceSessions = sessions
     });
 }
        public void HostServiceAndConnect()
        {
            SelfHostedService server = new SelfHostedService(WCFServerUri);

            using (var host = server.HostService(WCFServerUri))
            {
                var sw = Stopwatch.StartNew();
                for (int i = 0; i < 1000; i++)
                {
                    server.UseService((service) => service.DummyMethod());
                }
                sw.Stop();
                Console.WriteLine("1000 calls did take {0:F2}s", sw.Elapsed.TotalSeconds);
            }
        }
 AsyncUICommand CreateService()
 {
     return(new AsyncUICommand(() =>
     {
         var service = new SelfHostedService(Model.TraceServiceUrl);
         try
         {
             Host = service.HostService(Model.LocalTraceServiceUrl);
         }
         catch (AddressAlreadyInUseException)
         {
             // Server already running inside another instance
         }
     }, Model, Scheduler)
     {
         StartingError = "Could not start TraceControlerService service. Error: ",
         Starting = "Starting TraceControlerService" + Model.LocalTraceServiceUrl,
         Started = "Started TraceContolerService at " + Model.LocalTraceServiceUrl
     });
 }
        public void Server_Does_Disconnect()
        {
            SelfHostedService server = new SelfHostedService(WCFServerUri);
            var host = server.HostService(WCFServerUri);

            for (int i = 0; i < 1000; i++)
            {
                if (i == 500)
                {
                    host.Close();
                    Assert.Throws <EndpointNotFoundException>(() =>
                    {
                        server.UseService((service) => service.DummyMethod());
                    }
                                                              );
                    break;
                }
                server.UseService((service) => service.DummyMethod());
            }
        }