/// <summary>
 /// Creates a MwsCall and sends the request.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="type"></param>
 /// <param name="requestData"></param>
 /// <returns></returns>
 public T Call <T>(
     IMwsRequestType <T> type,
     IMwsObject requestData) where T : IMwsObject
 {
     try
     {
         var servicePath   = type.ServicePath;
         var operationName = type.OperationName;
         var mc            = NewCall(servicePath, operationName);
         requestData.WriteFragmentTo(mc);
         var responseReader = mc.Invoke();
         var rhmd           = mc.GetResponseMetadataHeader();
         var response       = MwsUtil.NewInstance <T>();
         type.SetResponseHeaderMetadata(response, rhmd);
         response.ReadFragmentFrom(responseReader);
         return(response);
     }
     catch (Exception e)
     {
         throw type.WrapException(e);
     }
 }
Example #2
0
        private void PutValue(object value)
        {
            if (value == null)
            {
                return;
            }

            if (value is IMwsObject)
            {
                _parameterPrefix.Append('.');
                (value as IMwsObject).WriteFragmentTo(this);
                return;
            }

            var name = _parameterPrefix.ToString();

            if (value is DateTime)
            {
                _parameters.Add(name, MwsUtil.GetFormattedTimestamp((DateTime)value));
                return;
            }

            var valueStr = value.ToString();

            if (valueStr == null || valueStr.Length == 0)
            {
                return;
            }

            if (value is bool)
            {
                valueStr = valueStr.ToLower();
            }

            _parameters.Add(name, valueStr);
        }