コード例 #1
0
        public void Execute()
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            try
            {
                Site site = new Site(_applicationConfiguration.SiteName, new NetworkCredential(_applicationConfiguration.ApiToken, "X"));
                var room = site.GetRooms().FirstOrDefault(r => r.ID == _applicationConfiguration.RoomId);

                if (room == null) return;
                room.Join();
                room.Say("Hello Tonight " + DateTime.Now);
            }
            catch (Exception)
            {
                throw new UnauthorizedAccessException("You probably need to update the APIToken in the app.config.");
                
            }
            

            
        }
コード例 #2
0
        public void Login()
        {
            if (string.IsNullOrWhiteSpace(SiteName))
              {
            Error = "Site cannot be empty";
            return;
              }

              WorkingText = "Signing in...";
              CanLogin = false;

              // This task stuff turns out to be very
              // untidy. I must find a cleaner way to
              // handle this.
              var loginTask =  new Task<Site>(() => {
            var site = new Site {Name = SiteName};
            var password = ((LoginView)GetView()).Password.Password;

            string apiToken = site.GetToken(new NetworkCredential(UserName, password));
            site.ApiToken = apiToken;
            site.Credentials = new NetworkCredential(apiToken, "X");

            return site;
              });

              loginTask.ContinueWith(t => rootViewModel.ActivateItem(new SiteViewModel(t.Result)),
            CancellationToken.None, TaskContinuationOptions.OnlyOnRanToCompletion, TaskScheduler.FromCurrentSynchronizationContext());

              loginTask.ContinueWith(t => {
            var e = t.Exception.InnerException as WebException;
            WorkingText = "Login";
            CanLogin = true;

            if (e == null)
              return;

            switch (((HttpWebResponse)e.Response).StatusCode)
            {
              case HttpStatusCode.Unauthorized:
            Error = "Username or password was incorrect";
            break;
              case HttpStatusCode.NotFound:
            Error = "Site does not exist";
            break;
              default:
            Error = "There was an unknown error while authenticating. Try again.";
            break;
            }

              }, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.FromCurrentSynchronizationContext());

              loginTask.Start();
        }