예제 #1
0
        public async Task <Result <bool> > ValidateParameters(JobRequest.JobRequest job)
        {
            try
            {
                var response = await _webClient.PostAsync("/v2/jobs/validate", job).ConfigureAwait(false);

                var result = new Result <bool>();

                if (response.IsSuccessStatusCode)
                {
                    var obj = await response.Content.ReadAsAsync <ExpandoObject>().ConfigureAwait(false);

                    result.Data = (bool)obj.FirstOrDefault(x => x.Key == "valid").Value;
                }

                result.Error = response.Content.ReadAsAsync <ErrorResponse>().Result;
                return(result);
            }
            catch (Exception e)
            {
                throw new HttpRequestException($"{nameof(ValidateParameters)} failed", e);
            }
        }
예제 #2
0
        public async Task <Result <JobResponse.SimplePricing> > RequestJobPricing(JobRequest.JobRequest job)
        {
            try
            {
                var response = await _webClient.PostAsync("/v2/jobs/pricing", job).ConfigureAwait(false);

                var result = new Result <JobResponse.SimplePricing>();

                if (response.IsSuccessStatusCode)
                {
                    result.Data = await response.Content.ReadAsAsync <JobResponse.SimplePricing>().ConfigureAwait(false);

                    return(result);
                }

                result.Error = response.Content.ReadAsAsync <ErrorResponse>().Result;
                return(result);
            }
            catch (Exception e)
            {
                throw new HttpRequestException($"{nameof(RequestJobPricing)} failed", e);
            }
        }
예제 #3
0
        public async Task <Result <int> > RequestEta(JobRequest.JobRequest job)
        {
            try
            {
                var response = await _webClient.PostAsync("/v2/jobs/eta", job).ConfigureAwait(false);

                var result = new Result <int>();

                if (response.IsSuccessStatusCode)
                {
                    var obj = await response.Content.ReadAsAsync <ExpandoObject>().ConfigureAwait(false);

                    result.Data = Convert.ToInt32(obj.FirstOrDefault(x => x.Key == "eta").Value);
                    return(result);
                }

                result.Error = response.Content.ReadAsAsync <ErrorResponse>().Result;
                return(result);
            }
            catch (Exception e)
            {
                throw new HttpRequestException($"{nameof(RequestEta)} failed", e);
            }
        }
예제 #4
0
        private JobRequest.JobRequest CreateJob()
        {
            var job = new JobRequest.JobRequest
            {
                Job = new JobRequest.Job
                {
                    AssignmentCode = "ACC861MM",
                    PickUps        = new List <JobRequest.PickUp>
                    {
                        new JobRequest.PickUp
                        {
                            Address = "12 rue rivoli, 75001 Paris",
                            Comment = "Ask Bobby",
                            Contact = new JobRequest.Contact
                            {
                                FirstName = "Bobby",
                                LastName  = "Brown",
                                Phone     = "+33610101010",
                                Email     = "*****@*****.**",
                                Company   = "Pizza Hut"
                            }
                        }
                    },
                    DropOffs = new List <JobRequest.DropOff>
                    {
                        new JobRequest.DropOff
                        {
                            PackageType        = PackageSizeType.small,
                            PackageDescription = "The blue one.",
                            ClientReference    = $"Order_ID#{_random.Next(10000)}",
                            Address            = "42 rue rivoli, 75001 Paris",
                            Comment            = "2nd floor on the left",
                            Contact            = new JobRequest.Contact
                            {
                                FirstName = "Dany",
                                LastName  = "Dan",
                                Phone     = "+33611112222",
                                Email     = "*****@*****.**",
                                Company   = "Sample Company Inc."
                            }
                        },
                        new JobRequest.DropOff
                        {
                            PackageType        = PackageSizeType.large,
                            PackageDescription = "The red one.",
                            ClientReference    = $"Order_ID#{_random.Next(10000)}",
                            Address            = "6 Place des Vosges, 75004 Paris",
                            Comment            = "2nd floor on the left",
                            Contact            = new JobRequest.Contact
                            {
                                FirstName = "John",
                                LastName  = "Doe",
                                Phone     = "+33611111111",
                                Email     = "*****@*****.**",
                                Company   = "Sample Company Inc."
                            }
                        }
                    }
                }
            };

            return(job);
        }