Esempio n. 1
0
        private void CheckLoadsForTopsToGoVisibilityData(LoadViewData load, LoadTransactionEntity lte, string token, ref string topsToGoErrors)
        {
            if (string.IsNullOrWhiteSpace(load.BillingLoadDisplay))
            {
                return;
            }

            const string mediaType = "application/json";

            _client.DefaultRequestHeaders.Clear();
            _client.DefaultRequestHeaders.Accept.Clear();
            _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(mediaType));
            _client.DefaultRequestHeaders.Add("Authorization", token);

            var url = string.Format(_config.GetValue <string>("MobileApiAddress") + "t2g/api/sms/loadinfo/{0}", load.BillingLoadDisplay);

            var responseMessage = _client.GetAsync(url, default(CancellationToken)).Result;
            var responseString  = responseMessage.Content.ReadAsStringAsync().Result.Replace("\"e\":", "Errors:").Replace("\"d\":", "Data:").Replace("\"s\":", "Success:");
            var response        = JsonConvert.DeserializeObject <ResponseMessage <List <TopsToGoDetail> > >(responseString);

            if (!responseMessage.IsSuccessStatusCode || response == null || response.Success == false || response.Errors.Count > 0)
            {
                topsToGoErrors = $"TopsToGo data retrieval failed using endpoint, {url}, for load: {load.ReferenceLoadDisplay}";

                if (response != null && response.Errors.Count > 0)
                {
                    var errors = response.Errors.Aggregate(new StringBuilder(), (s, r) => s.AppendLine(r.Message)).ToString();
                    topsToGoErrors += " - " + errors;
                }

                return;
            }

            if (response.Data.Count > 0)
            {
                var topsToGoDetailInfo = response.Data[0];

                if (topsToGoDetailInfo.AccessExpiredUtc > DateTime.UtcNow)
                {
                    if (string.IsNullOrWhiteSpace(lte.Claim.VisibilityPhoneNumber) ||
                        (lte.Claim.VisibilityChgDtTm.HasValue && lte.Claim.VisibilityChgDtTm.Value < topsToGoDetailInfo.SendUtc.ToLocalTime()))
                    {
                        load.ShowVisibilityWarning        = false;
                        load.MobileExternallyEntered      = true;
                        load.VisibilityChgDtTm            = topsToGoDetailInfo.SendUtc.ToLocalTime();
                        lte.Claim.MobileExternallyEntered = load.MobileExternallyEntered;
                        lte.Claim.VisibilityChgDtTm       = load.VisibilityChgDtTm;
                    }
                }
            }
        }
Esempio n. 2
0
        private void CheckLoadsForProject44VisibilityData(LoadViewData load, LoadTransactionEntity lte, string token, ref string project44Errors)
        {
            if (string.IsNullOrWhiteSpace(load.BillingLoadDisplay))
            {
                return;
            }

            const string mediaType = "application/json";
            string       url       = _config.GetValue <string>("VisibilityApiAddress") + "asset/find-asset";

            var formData = JsonConvert.SerializeObject(new Project44AssetInfo {
                LoadId = load.BillingLoadId
            });
            var content = new StringContent(formData, Encoding.UTF8, mediaType);

            _client.DefaultRequestHeaders.Clear();
            _client.DefaultRequestHeaders.Add("Authorization", token);

            var responseMessage = _client.PostAsync(url, content, default(CancellationToken)).Result;
            var responseString  = responseMessage.Content.ReadAsStringAsync().Result;

            if (!responseMessage.IsSuccessStatusCode)
            {
                project44Errors = $"Project44 data retrieval failed using endpoint, {url}, for load: {load.ReferenceLoadDisplay}. Reason: {responseMessage.ReasonPhrase}";

                return;
            }

            var project44AssetInfo = JsonConvert.DeserializeObject <Project44AssetInfo>(responseString);

            if (!string.IsNullOrWhiteSpace(project44AssetInfo.AssetId))
            {
                if (string.IsNullOrWhiteSpace(lte.Claim.VisibilityTruckNumber) ||
                    (lte.Claim.VisibilityTruckNumber != project44AssetInfo.AssetId && lte.Claim.VisibilityChgDtTm < project44AssetInfo.AssetLastChgDtTm))
                {
                    load.ShowVisibilityWarning      = false;
                    load.VisibilityTruckNumber      = project44AssetInfo.AssetId;
                    load.VisibilityChgDtTm          = project44AssetInfo.AssetLastChgDtTm;
                    lte.Claim.VisibilityTruckNumber = load.VisibilityTruckNumber;
                    lte.Claim.VisibilityChgDtTm     = load.VisibilityChgDtTm;
                }
            }
        }
 public bool ShouldShowVisibility(DateTime?visibilityPickupWindowDate, bool topsToGoCarrier, bool p44Carrier, DateTime currentDate, LoadViewData l)
 {
     return
         (l.OriginLateDtTm > currentDate &&
          l.OriginLateDtTm <= visibilityPickupWindowDate &&
          l.DestLateDtTm >= currentDate &&
          ((topsToGoCarrier && p44Carrier && l.VisibilityPhoneNumber == null && !l.MobileExternallyEntered && l.VisibilityTruckNumber == null) ||
           (topsToGoCarrier && !p44Carrier && l.VisibilityPhoneNumber == null && !l.MobileExternallyEntered) ||
           (!topsToGoCarrier && p44Carrier && l.VisibilityTruckNumber == null)));
 }