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; } }
/// <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); } }