Esempio n. 1
0
        /// <summary>
        /// Service Request as a future Observable
        /// </summary>
        /// <remarks>
        /// This is the async version suitable for Silveright
        /// </remarks>
        /// <param name="request"></param>
        /// <returns></returns>
        public IObservable <B> AsObservable(A request)
        {
            // create observable
            var q =
                from message in RequestMessageMapper.AsObservable(request)
                from response in _serviceRequest(message)
                let result = ResponseMessageMapper.Map(response)
                             select result;

            return(q);
        }
Esempio n. 2
0
 /// <summary>
 /// Synchronous request
 /// </summary>
 /// <remarks>
 /// This syncronous method will not work in Silveright.
 /// It is here for .NET clients
 /// </remarks>
 /// <param name="request">any request xml</param>
 /// <returns>any response xml</returns>
 public B Service(A request)
 {
     try
     {
         var message  = RequestMessageMapper.Map(request);
         var response = Channel.Request(message);
         var result   = ResponseMessageMapper.Map(response);
         _subject.OnNext(result);
         return(ResponseMessageMapper.Map(response));
     }
     catch (Exception e)
     {
         _subject.OnError(e);
         throw;
     }
 }