예제 #1
0
파일: Program.cs 프로젝트: DoSchoe/SWA
        static void Main(string[] args)
        {
            Console.WriteLine(System.Environment.MachineName);
            try
            {
                // Connect to the service by using channel
                ChannelFactory <IRemoteUpdate> cFactory;
                cFactory       = new ChannelFactory <IRemoteUpdate>("WSHttpBinding_IRemoteUpdate");
                mRemoteUpdater = cFactory.CreateChannel();
                Response       = mRemoteUpdater.updateProjectListAsString();
                string[] parts = Response.Split(SEPdata);

                foreach (string part in parts)
                {
                    mProjects.Add(new Project(part));
                }
                OutputProjects(mProjects);
                mProjects.Clear();
                mProjects = mRemoteUpdater.updatedProjectList();
                OutputProjects(mProjects);
                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
예제 #2
0
 /// <summary>
 /// Thread for the remote call for getting a new list.
 /// </summary>
 /// <param name="stateinfo"></param>
 private void WCFThread(Object stateinfo)
 {
     while (true)
     {
         if (UpdateProjectList && mModelMain.MyData.Status == ClientStati.Connected)
         {
             try
             {
                 ChannelFactory <IRemoteUpdate> cFactory =
                     new ChannelFactory <IRemoteUpdate>("WSHttpBinding_IRemoteUpdate");
                 mRemoteUpdater = cFactory.CreateChannel();
                 string response = mRemoteUpdater.updateProjectListAsString();
                 if (!(String.IsNullOrEmpty(response)))
                 {
                     mModelMain.mProjects.Clear();
                     UpdateProjectList = false;
                     string[] parts = response.Split('#');
                     foreach (string part in parts)
                     {
                         mModelMain.mProjects.Add(new Project(part));
                     }
                     mModelMain.ClientProjectListHash = mModelMain.ServerProjectListHash;
                     UpdateCombobox();
                 }
             }
             catch (Exception e)
             {
                 ShowError(e);
                 ChangeStatus(ClientStati.NotConnected);
                 throw;
             }
             (mRemoteUpdater as ICommunicationObject).Close();
         }
         Thread.Sleep(TIMEOUT);
     }
 }