public static ExpressTrackingViewModel ConvertFromFedEx(FedExTrackingViewModel fedExModel, GetExpressTrackResponse_V01 expressInfoResponse) { ExpressTrackingViewModel expressTrack = new ExpressTrackingViewModel(); List <steps> expressTrackSteps = new List <steps>(); TrackingStatus status = TrackingStatus.PreparingShipment; expressTrack.mailno = fedExModel.tracking.detail.tn; expressTrack.remark = expressInfoResponse.ExpressCompanyName; expressTrack.result = "false"; if (fedExModel.tracking.detail.activities.Count >= 1) { expressTrack.result = "true"; status = TrackingStatus.InTransit; } if (fedExModel.tracking.detail.status == "已取件") { //Shipped status = TrackingStatus.Shipped; expressTrack.time = fedExModel.tracking.detail.shipdate; } else if (fedExModel.tracking.detail.status == "已送达") { status = TrackingStatus.Delivered; expressTrack.time = fedExModel.tracking.detail.deliverydate; } else { status = TrackingStatus.InTransit; expressTrack.time = fedExModel.tracking.detail.deliverydate; } if (fedExModel.tracking.detail.activities != null && fedExModel.tracking.detail.activities.Count >= 1) { foreach (var trace in fedExModel.tracking.detail.activities) { var eachstep = new steps { time = trace.datetime, address = trace.scan, station = trace.location, station_phone = string.Empty, status = string.Empty, remark = trace.details, next = string.Empty, next_name = string.Empty }; expressTrackSteps.Add(eachstep); } } expressTrack.status = getNumberValue(status).ToString(); expressTrack.steps = expressTrackSteps; return(expressTrack); }
public static ExpressTrackingViewModel ConvertFromSfModel(SFTrackingViewModel sfModel, GetExpressTrackResponse_V01 expressInfoResponse) { ExpressTrackingViewModel expressTrack = new ExpressTrackingViewModel(); List <steps> expressTrackSteps = new List <steps>(); TrackingStatus status = TrackingStatus.PreparingShipment; List <Route> traceses; if (expressInfoResponse != null) { expressTrack.remark = expressInfoResponse.ExpressCompanyName; } expressTrack.result = "false"; if (sfModel.Response != null && sfModel.Response.Body != null && sfModel.Response.Body.RouteResponse != null && sfModel.Response.Body.RouteResponse.Route != null && sfModel.Response.Body.RouteResponse.Route.Count >= 1) { expressTrack.mailno = sfModel.Response.Body.RouteResponse.mailno; expressTrack.result = "true"; expressTrack.time = sfModel.Response.Body.RouteResponse.Route[0].accept_time; status = TrackingStatus.InTransit; } if (sfModel.Response != null && sfModel.Response.Body != null && sfModel.Response.Body.RouteResponse != null && sfModel.Response.Body.RouteResponse.Route != null) { traceses = sfModel.Response.Body.RouteResponse.Route; } else { traceses = null; } if (traceses != null) { foreach (var trace in traceses) { steps eachStep = new steps(); if (trace.opcode == "50") { status = TrackingStatus.Shipped; } else if (trace.opcode == "8000") { status = TrackingStatus.Delivered; } else { status = TrackingStatus.InTransit; } eachStep.time = trace.accept_time; eachStep.address = trace.accept_address; eachStep.status = trace.opcode; eachStep.remark = trace.remark; eachStep.station = ""; eachStep.station_phone = ""; eachStep.next = ""; eachStep.next_name = ""; expressTrackSteps.Add(eachStep); } } expressTrack.status = getNumberValue(status).ToString(); expressTrack.steps = expressTrackSteps; return(expressTrack); }
public static ExpressTrackingViewModel ConvertFromBestway(BestwayTrackingViewModel bestwayModel, GetExpressTrackResponse_V01 expressInfoResponse) { ExpressTrackingViewModel expressTrack = new ExpressTrackingViewModel(); List <steps> expressTrackSteps = new List <steps>(); TrackingStatus status = TrackingStatus.PreparingShipment; if (bestwayModel != null && bestwayModel.traceLogs != null && bestwayModel.traceLogs.Count > 0) { expressTrack.mailno = bestwayModel.traceLogs[0].mailNo; } if (expressInfoResponse != null && !string.IsNullOrEmpty(expressInfoResponse.ExpressCompanyName)) { expressTrack.remark = expressInfoResponse.ExpressCompanyName; } expressTrack.result = "false"; if (bestwayModel != null && bestwayModel.traceLogs != null && bestwayModel.traceLogs.Count > 0 && bestwayModel.traceLogs[0].traces != null && bestwayModel.traceLogs[0].traces.Count >= 1) { expressTrack.result = "true"; expressTrack.time = bestwayModel.traceLogs[0].traces[0].acceptTime; status = TrackingStatus.Delivered; } if (bestwayModel != null && bestwayModel.traceLogs != null && bestwayModel.traceLogs.Count > 0) { var traceses = bestwayModel.traceLogs[0].traces; if (traceses != null) { foreach (var trace in traceses) { steps eachStep = new steps(); if (trace.scanType == "收件") { status = TrackingStatus.Shipped; } else if (trace.scanType == "签收") { status = TrackingStatus.Delivered; } else { status = TrackingStatus.InTransit; } eachStep.time = trace.acceptTime; eachStep.address = trace.acceptAddress; eachStep.status = trace.scanType; eachStep.remark = trace.remark; eachStep.station = ""; eachStep.station_phone = ""; eachStep.next = ""; eachStep.next_name = ""; expressTrackSteps.Add(eachStep); } } } expressTrack.status = getNumberValue(status).ToString(); expressTrack.steps = expressTrackSteps; return(expressTrack); }