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); }
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); }