private string HandleMessageType(HAPITRANS transfer) { string error = ""; string Url = ""; try { Url = FindUrlToUse(transfer.WEBS_PROFILE_ID, transfer.HAPIOBJECTNAME); Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format(" use Url = {0}", Url)); if (String.IsNullOrEmpty(Url)) { return("unknown url for " + transfer.WEBS_PROFILE_ID + " - " + transfer.HAPIOBJECTNAME); } sender.Url = Url; switch (transfer.HAPIOBJECTNAME) { case "DR": // -- HAPIOBJECTNAME_Delivery_Receipt { DeliveryReceiptHeadSelect handler = new DeliveryReceiptHeadSelect(this.db); DeliveryReceiptHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.DeliveryReceipt(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "BA": // -- HAPIOBJECTNAME_Balance_Answer { BalanceAnswerLineSelect handler = new BalanceAnswerLineSelect(this.db); BalanceAnswerLineDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.BalanceAnswer(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "PR": // -- HAPIOBJECTNAME_Pick_Receipt { PickReceiptHeadSelect handler = new PickReceiptHeadSelect(this.db); PickReceiptHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.PickReceipt(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "IC": // -- HAPIOBJECTNAME_Item_Change { InventoryChangeLineSelect handler = new InventoryChangeLineSelect(this.db); InventoryChangeLineDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.InventoryChange(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "PM": // -- HAPIOBJECTNAME_Packing_Material { ReturnedPackingMaterialHeadSelect handler = new ReturnedPackingMaterialHeadSelect(this.db); ReturnedPackingMaterialHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.ReturnedPackingMaterial(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "RR": // -- HAPIOBJECTNAME_Return_Receipt { ReturnReceiptHeadSelect handler = new ReturnReceiptHeadSelect(this.db); ReturnReceiptHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.VendorReturnReceipt(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "IR": // -- HAPIOBJECTNAME_Inspection_Receipt { InspectionReceiptHeadSelect handler = new InspectionReceiptHeadSelect(this.db); InspectionReceiptHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.InspectionReceipt(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "SR": // -- HAPIOBJECTNAME_Shipment_Report { ASNHeadSelect handler = new ASNHeadSelect(this.db); ASNHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.ASN(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "COR": // -- HAPIOBJECTNAME_Confirmation_Of_Receipt { ConfirmationOfReceiptHeadSelect handler = new ConfirmationOfReceiptHeadSelect(this.db); ConfirmationOfReceiptHeadDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.ConfirmationOfReceipt(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } case "IOC": // -- HAPIOBJECTNAME_Inbound_Order_Completed { InboundOrderCompletedSelect handler = new InboundOrderCompletedSelect(this.db); InboundOrderCompletedDoc message = handler.Process(transfer.HAPITRANS_ID); if (message == null) { error = string.Format("{0} obj missing.", transfer.HAPIOBJECTNAME); } else { sender.InboundOrderCompleted(transfer.CHANNEL_ID, transfer.COMPANY_ID, transfer.HAPITRANS_ID, message); } break; } default: error = string.Format("transfer type {0} not found", transfer.HAPIOBJECTNAME); break; } // switch (transfer.HAPIOBJECTNAME) } catch (UriFormatException e) { error = "The format of the URI is invalid. URL: " + Url + ", HAPITRANS_ID: " + transfer.HAPITRANS_ID + Environment.NewLine + e.Message + Environment.NewLine + e.StackTrace; } catch (InvalidOperationException e) { error = "Failed to reach " + sender.Url + " for " + transfer.HAPIOBJECTNAME + Environment.NewLine + e.Message + Environment.NewLine + e.StackTrace; } catch (System.Web.Services.Protocols.SoapException e) { error = "Interface mismatch. URL: " + sender.Url + ", HAPIOBJECTNAME: " + transfer.HAPIOBJECTNAME + ", HAPITRANS_ID: " + transfer.HAPITRANS_ID + Environment.NewLine + e.Message + Environment.NewLine + e.StackTrace; } catch (Exception e) { error = "Unexpected error. URL: " + sender.Url + ", HAPIOBJECTNAME: " + transfer.HAPIOBJECTNAME + ", HAPITRANS_ID: " + transfer.HAPITRANS_ID + Environment.NewLine + e.Message + Environment.NewLine + e.StackTrace; } return(error); }
private List <HAPITRANS> FindMessagesToSend() { List <HAPITRANS> transList = new List <HAPITRANS>(); IDataReader r = dbWebServiceSend.GetHAPITRANSCur(); try { while (r.Read()) { HAPITRANS t = new HAPITRANS(); // Build HAPITRANS object if (r["HAPITRANS_ID"] == DBNull.Value) { t.HAPITRANS_ID = ""; } else { t.HAPITRANS_ID = r["HAPITRANS_ID"] as String; } if (r["HAPIOBJECTNAME"] == DBNull.Value) { t.HAPIOBJECTNAME = ""; } else { t.HAPIOBJECTNAME = r["HAPIOBJECTNAME"] as String; } if (r["HAPISTAT"] == DBNull.Value) { t.HAPISTAT = ""; } else { t.HAPISTAT = r["HAPISTAT"] as String; } if (r["HAPIERRCOD"] == DBNull.Value) { t.HAPIERRCOD = ""; } else { t.HAPIERRCOD = r["HAPIERRCOD"] as String; } if (r["HAPIERRMSG"] == DBNull.Value) { t.HAPIERRMSG = ""; } else { t.HAPIERRMSG = r["HAPIERRMSG"] as String; } if (r["CREATEDTM"] == DBNull.Value) { t.CREATEDTM = null; } else { t.CREATEDTM = (DateTime)r["CREATEDTM"]; } if (r["FIRSTSNDDTM"] == DBNull.Value) { t.FIRSTSNDDTM = System.DateTime.Now; } else { t.FIRSTSNDDTM = (DateTime)r["FIRSTSNDDTM"]; } if (r["LASTSNDDTM"] == DBNull.Value) { t.LASTSNDDTM = null; } else { t.LASTSNDDTM = (DateTime)r["LASTSNDDTM"]; } if (r["NOSNDS"] == DBNull.Value) { t.NOSNDS = 0; } else { t.NOSNDS = Int32.Parse(r["NOSNDS"].ToString()); } if (r["COMPANY_ID"] == DBNull.Value) { t.COMPANY_ID = ""; } else { t.COMPANY_ID = r["COMPANY_ID"] as String; } if (r["WEBS_PROFILE_ID"] == DBNull.Value) { t.WEBS_PROFILE_ID = ""; } else { t.WEBS_PROFILE_ID = r["WEBS_PROFILE_ID"] as String; } if (r["CHANNEL_ID"] == DBNull.Value) { t.CHANNEL_ID = ""; } else { t.CHANNEL_ID = r["CHANNEL_ID"] as String; } transList.Add(t); Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("{0} - {1}", t.HAPITRANS_ID, t.HAPIOBJECTNAME)); } } finally { if (r != null) { r.Close(); } } return(transList); }