示例#1
0
        public IntegrtaionResult MapDPDIntegrationResponse(DpdShipmentResponse dpdShipmentResponse)
        {
            IntegrtaionResult integrtaionResult = new IntegrtaionResult();

            if (dpdShipmentResponse.Error == null)
            {
                integrtaionResult.Status               = true;
                integrtaionResult.CourierName          = FrayteCourierCompany.DPD;
                integrtaionResult.TrackingNumber       = dpdShipmentResponse.DPDResponse.data.consignmentDetail[0].consignmentNumber;
                integrtaionResult.PickupRef            = null;
                integrtaionResult.PieceTrackingDetails = new List <CourierPieceDetail>();
                foreach (var data in dpdShipmentResponse.DPDResponse.data.consignmentDetail[0].parcelNumbers)
                {
                    CourierPieceDetail obj = new CourierPieceDetail();
                    obj.DirectShipmentDetailId = 0;
                    obj.PieceTrackingNumber    = data;
                    obj.ImageByte = dpdShipmentResponse.LabelHTMLString;
                    integrtaionResult.PieceTrackingDetails.Add(obj);
                }
            }
            else
            {
                integrtaionResult.Error     = dpdShipmentResponse.Error;
                integrtaionResult.ErrorCode = new List <FrayteApiError>();
                {
                    List <FrayteApiError> _api = new FrayteApiErrorCodeRepository().SaveFinilizeApiError(integrtaionResult.Error, FrayteLogisticServiceType.DPD, null);
                    integrtaionResult.ErrorCode = _api;
                }
                integrtaionResult.Status = false;
            }

            return(integrtaionResult);
        }
示例#2
0
        public DpdShipmentResponse CreateShipment(DPDRequestModel dpdRequestObj)
        {
            DpdShipmentResponse respone = new DpdShipmentResponse();
            var    logisticIntegration  = UtilityRepository.getLogisticIntegration(UtilityRepository.GetOperationZone().OperationZoneId, AppSettings.ApplicationMode, FrayteIntegration.DPD);
            string result = string.Empty;

            var abc = Newtonsoft.Json.JsonConvert.SerializeObject(dpdRequestObj);

            #region DPD API Login

            string usernamePasswordBase64String = Base64Encode(logisticIntegration.UserName + ":" + logisticIntegration.Password);
            //Api Login
            string loginRespone = LogindpdWebApi(logisticIntegration, usernamePasswordBase64String);
            var    DPDLogin     = Newtonsoft.Json.JsonConvert.DeserializeObject <DPDLoginResponeModel>(loginRespone);
            if (DPDLogin.error == null)
            {
                var shipmentRequestjson = JsonConvert.SerializeObject(dpdRequestObj);
                //Insert Shipment
                string shipmentResponsejson = CallDpdWebApi(logisticIntegration, shipmentRequestjson, DPDLogin.data.geoSession);

                respone.DPDResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <DPDResponseModel>(shipmentResponsejson);
                if (respone.DPDResponse.error == null)
                {
                    //Get Label
                    respone.LabelHTMLString = CallDpdLabelApi(logisticIntegration, respone.DPDResponse.data.shipmentId, DPDLogin.data.geoSession, "text/html");
                    respone.LabeleplString  = CallDpdLabelApi(logisticIntegration, respone.DPDResponse.data.shipmentId, DPDLogin.data.geoSession, "text/vnd.eltron-epl");
                    //Collection Pickup

                    return(respone);
                }
                else
                {
                    respone.Error         = new FratyteError();
                    respone.Error.Service = new List <string>();
                    string err = string.Empty;
                    foreach (var error in respone.DPDResponse.error)
                    {
                        err += error.Obj + " - " + error.errorMessage + ",";
                    }

                    respone.Error.Service.Add(err);

                    respone.Error.Status = false;
                    //Error Recorded
                    SaveDirectShipmentObject(shipmentRequestjson, respone.DPDResponse.error.ToString(), dpdRequestObj.DraftShipmentId);
                }
            }
            else
            {
                respone.Error         = new FratyteError();
                respone.Error.Service = new List <string>();
                string err = string.Empty;
                foreach (var error in respone.DPDResponse.error)
                {
                    err += error.Obj + " - " + error.errorMessage + ",";
                }
                respone.Error.Service.Add(err);

                respone.Error.Status = false;
                //Error Recorded
                SaveDirectShipmentObject(usernamePasswordBase64String, respone.DPDResponse.error.ToString(), dpdRequestObj.DraftShipmentId);
            }
            #endregion

            return(respone);
        }