Пример #1
0
 /// <summary>
 /// Phương thức client kết nối vào Server.
 /// </summary>
 /// <param name="mac">Đối tượng máy người sử dụng đang dùng.</param>
 public void Connect(Machine mac)
 {
     try
     {
         lock (listCallbackChannels)
         {
             EventChannelCount?.Invoke(1, true);
             IServiceCallback callbackChannel = OperationContext.Current.GetCallbackChannel <IServiceCallback>();
             if (!listCallbackChannels.Contains(callbackChannel))
             {
                 listCallbackChannels.Add(callbackChannel);
                 eventLoggingMessage?.Invoke(string.Format("Added Callback Channel: {0}", callbackChannel.GetHashCode()));
             }
         }
     }
     catch (Exception ex)
     {
         throw new FaultException <IFaultException>(new IFaultException(ex.Message));
     }
 }
Пример #2
0
 /// <summary>
 /// Phương thức client ngắt kết nối vào Server.
 /// </summary>
 /// <param name="mac">Đối tượng máy người sử dụng đang dùng.</param>
 public void Disconnect(Machine mac)
 {
     try
     {
         lock (listCallbackChannels)
         {
             if (listCallbackChannels.Count > 0)
             {
                 IServiceCallback callbackChannel = OperationContext.Current.GetCallbackChannel <IServiceCallback>();
                 if (listCallbackChannels.Contains(callbackChannel))
                 {
                     if (listCallbackChannels.Remove(callbackChannel))
                     {
                         eventLoggingMessage?.Invoke(string.Format("Removed Callback Channel: {0}", callbackChannel.GetHashCode()));
                         EventChannelCount?.Invoke(1, false);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         eventLoggingMessage?.Invoke(string.Format("Disconnect-Removed Callback Channel: {0}", ex.Message));
     }
     finally
     {
         GC.SuppressFinalize(this);
     }
 }