public async Task ExecuteAsync(IMarineTrafficRequest request, IMarineTrafficResult result)
        {
            if (this.isDisposed)
            {
                throw new ObjectDisposedException(this.ToString());
            }

            var requestMessage = new HttpRequestMessage();

            requestMessage.Headers.ExpectContinue = false;
            requestMessage.Headers.UserAgent.Add(new ProductInfoHeaderValue("MarineTrafficApiClient.NET", "1.0"));

            request.PrepareHttpMessage(this, requestMessage);

            if (requestMessage.RequestUri.OriginalString.Contains("{ApiKey}"))
            {
                requestMessage.RequestUri = new Uri(requestMessage.RequestUri.OriginalString.Replace("{ApiKey}", this.ApiKey), UriKind.Absolute);
            }

            if (requestMessage.RequestUri.OriginalString.Contains("%7BApiKey%7D"))
            {
                requestMessage.RequestUri = new Uri(requestMessage.RequestUri.OriginalString.Replace("%7BApiKey%7D", this.ApiKey), UriKind.Absolute);
            }

            try
            {
                var resultMessage = await this.http.Value.SendAsync(requestMessage);

                await result.ReadHttpMessage(resultMessage);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        internal static void VerifySucceed(IMarineTrafficResult target)
        {
            Assert.IsTrue(target.Succeed, "Expected Succeed to be true in result, got " + target.Succeed + ". Error codes: " + string.Join(", ", target.Errors.Select(x => x.Code + " (" + x.Detail + ") " + x.Message)) + ".");

            if (target.Errors != null && target.Errors.Count > 0)
            {
                Assert.Fail("Result Succeed but errors are present! Error codes: " + string.Join(", ", target.Errors.Select(x => x.Code + " (" + x.Detail + ")")) + ".");
            }
        }
Esempio n. 3
0
        public static bool HandleErrorResultCsv(HttpResponseMessage message, string contents, IMarineTrafficResult result)
        {
            if (contents.StartsWith("ERROR_"))
            {
                var reader = new StringReader(contents);
                var line   = reader.ReadLine();
                var match  = CsvErrorFormat.Match(line);
                result.Errors.Add(Utility.MarineTrafficError(match.Groups[1].Value, match.Groups[2].Value, line, match.Groups[4].Value));

                return(true);
            }
            else
            {
                return(false);
            }
        }
 internal static void VerifyFailed(IMarineTrafficResult target)
 {
     Assert.IsFalse(target.Succeed, "Expected Succeed to be false in result, got " + target.Succeed + ".");
     Assert.IsNotNull(target.Errors);
     Assert.IsTrue(target.Errors.Count > 0, "Expected error codes in result, got none.");
 }