public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState) { if (reply.IsFault || IsHttpInternalErrorFault(reply)) { ExceptionFault fault = null; var mf = MessageFault.CreateFault(reply, int.MaxValue); try { if (mf.HasDetail && mf.Reason.ToString() == "UnhandledException") { var detail = mf.GetDetail <ExceptionFault>(); fault = detail; } } #pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body catch #pragma warning restore RECS0022 // A catch clause that catches System.Exception and has an empty body { // do nothing } if (fault != null) { fault.ReThrow(); } else { var operation = _runtime.ClientOperations.FirstOrDefault(p => p.Action == (string)correlationState); var faultTypes = _contract.Operations.Where(p => operation == null || p.Name == operation.Name).SelectMany(p => p.Faults.Select(x => x.DetailType)).Distinct().ToArray(); var ex = FaultException.CreateFault(mf, reply.Headers.Action, faultTypes); ExceptionDispatchInfo.Capture(ex).Throw(); } } }
public void ProvideFault(Exception error, System.ServiceModel.Channels.MessageVersion version, ref System.ServiceModel.Channels.Message fault) { if (error is System.ServiceModel.FaultException) { return; } var identifier = _logDelegate?.Invoke(error); var detail = new ExceptionFault(identifier, error, _includeDetails); var messageFault = System.ServiceModel.Channels.MessageFault.CreateFault(new System.ServiceModel.FaultCode("Sender"), new System.ServiceModel.FaultReason("UnhandledException"), detail); fault = System.ServiceModel.Channels.Message.CreateMessage(version, messageFault, null); }
private void btnGetData_Click(object sender, EventArgs e) { string requestId = txtRequestId.Text; Stream data; long filePosisiton = 0; long fileSize = 0; try { NncLogisticServiceClient client = new NncLogisticServiceClient(); fileSize = client.FulFillOnDemandRequest(ref filePosisiton, ref requestId, out data); } catch (FaultException <ValidationFault> fault) { string erroMsg = "Validation fault caught \n"; ValidationFault validationFault = fault.Detail; if (validationFault.Details.Count > 0) { foreach (ValidationDetail detail in validationFault.Details) { erroMsg += detail.Message + "\n"; } MessageBox.Show(erroMsg); } return; } catch (FaultException <RequestFault> rf) { RequestFault fault = rf.Detail; MessageBox.Show("Request Fault caught.\n" + "Error code: " + fault.ErrorCode + "\n" + "Error message: " + fault.ErrorMessage); return; } catch (FaultException <ExceptionFault> ef) { ExceptionFault fault = ef.Detail; MessageBox.Show("Exception Fault caught.\n" + fault.Message + "\n" + fault.OriginalStackTrace); return; } catch (LogisticServiceException le) { MessageBox.Show("Logistic Service Exception caught.\n" + le.ToString()); return; } catch (Exception ex) { MessageBox.Show("Exception caught \n" + ex.ToString()); return; } DialogResult result = MessageBox.Show("Successfully retrieved data. " + "Total file size = " + fileSize + " (bytes).\n" + "Do you want to see some data?", "Data Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result != DialogResult.Yes) { return; } }
private void SubmitWholesaleOnDemandRequest() { string requestId = string.Empty; WholesaleOnDemandPrimaryClass primary = new WholesaleOnDemandPrimaryClass(); primary.FieldName = TypeOfWholesaleOnDemandPrimaryField.MaterialAssetId; if (this.PrimaryValues == null) { primary.ClassValues = null; } else { primary.ClassValues.AddRange(this.PrimaryValues); } WholesaleOnDemandRequest request = new WholesaleOnDemandRequest(primary); if ((this.SecondaryValues != null) && (this.SecondaryValues.Length != 0)) { request.SecondaryClass = new WholesaleOnDemandSecondaryClass(); request.SecondaryClass.FieldName = TypeOfWholesaleOnDemandSecondaryField.Node; request.SecondaryClass.ClassValues.AddRange(this.SecondaryValues); } try { NncLogisticServiceClient client = new NncLogisticServiceClient(); requestId = client.RequestOnDemandWholesaleRetail(request); } catch (FaultException <ValidationFault> fault) { string erroMsg = "Validation fault caught \n"; ValidationFault validationFault = fault.Detail; if (validationFault.Details.Count > 0) { foreach (ValidationDetail detail in validationFault.Details) { erroMsg += detail.Message + "\n"; } MessageBox.Show(erroMsg); } return; } catch (FaultException <RequestFault> rf) { RequestFault fault = rf.Detail; MessageBox.Show("Request Fault caught.\n" + "Error code: " + fault.ErrorCode + "\n" + "Error message: " + fault.ErrorMessage); } catch (FaultException <ExceptionFault> ef) { ExceptionFault fault = ef.Detail; MessageBox.Show("Exception Fault caught.\n" + fault.Message + "\n" + fault.OriginalStackTrace); } catch (LogisticServiceException le) { MessageBox.Show("Logistic Service Exception caught.\n" + le.ToString()); } catch (Exception ex) { MessageBox.Show("Exception caught \n" + ex.ToString()); return; } MessageBox.Show("Successful. RequestId = " + requestId); txtRequestId.Text = requestId; }
private void btnCreate_Click(object sender, EventArgs e) { SubscriptionRequest request = GetRequest(); string requestId = string.Empty; if (request == null) { return; } request.IsForced = true; try { NncLogisticServiceClient client = new NncLogisticServiceClient(); if (this.QueryType == "Ammunition") { requestId = client.RequestAmmunitionSubscription(request); } else if (this.QueryType == "Blood Inventory") { requestId = client.RequestBloodSubscription(request); } else if (this.QueryType == "Requisition Summary") { requestId = client.RequestRequisitionSummarySubscription(request); } else if (this.QueryType == "Unit Equipment") { requestId = client.RequestUnitEquipmentSubscription(request); } else if (this.QueryType == "War Reserves") { requestId = client.RequestWarReserveSubscription(request); } else if (this.QueryType == "Wholesale Inventory") { requestId = client.RequestWholesaleRetailSubscription(request); } } catch (FaultException <ValidationFault> fault) { string erroMsg = "Validation fault caught \n"; ValidationFault validationFault = fault.Detail; if (validationFault.Details.Count > 0) { foreach (ValidationDetail detail in validationFault.Details) { erroMsg += detail.Message + "\n"; } MessageBox.Show(erroMsg); } return; } catch (FaultException <RequestFault> rf) { RequestFault fault = rf.Detail; MessageBox.Show("Request Fault caught.\n" + "Error code: " + fault.ErrorCode + "\n" + "Error message: " + fault.ErrorMessage); return; } catch (FaultException <ExceptionFault> ef) { ExceptionFault fault = ef.Detail; MessageBox.Show("Exception Fault caught.\n" + fault.Message + "\n" + fault.OriginalStackTrace); return; } catch (LogisticServiceException le) { MessageBox.Show("Logistic Service Exception caught.\n" + le.ToString()); return; } catch (Exception ex) { MessageBox.Show("Exception caught \n" + ex.ToString()); return; } MessageBox.Show("Successful. RequestId = " + requestId); txtRequestId.Text = requestId; }
private void btnCheckData_Click(object sender, EventArgs e) { SubscriptionRequest request = GetRequest(); SubscriptionInfo info = null; if (request == null) { return; } try { NncLogisticServiceClient client = new NncLogisticServiceClient(); if (this.QueryType == "Ammunition") { info = client.IsAmmunitionSubscriptionUpdated(request); } else if (this.QueryType == "Blood Inventory") { info = client.IsBloodSubscriptionUpdated(request); } else if (this.QueryType == "Requisition Summary") { info = client.IsRequisitionSummarySubscriptionUpdated(request); } else if (this.QueryType == "Unit Equipment") { info = client.IsUnitEquipmentSubscriptionUpdated(request); } else if (this.QueryType == "War Reserves") { info = client.IsWarReserveSubscriptionUpdated(request); } else if (this.QueryType == "Wholesale Inventory") { info = client.IsWholesaleRetailSubscriptionUpdated(request); } } catch (FaultException <ValidationFault> fault) { string erroMsg = "Validation fault caught \n"; ValidationFault validationFault = fault.Detail; if (validationFault.Details.Count > 0) { foreach (ValidationDetail detail in validationFault.Details) { erroMsg += detail.Message + "\n"; } MessageBox.Show(erroMsg); } return; } catch (FaultException <RequestFault> rf) { RequestFault fault = rf.Detail; MessageBox.Show("Request Fault caught.\n" + "Error code: " + fault.ErrorCode + "\n" + "Error message: " + fault.ErrorMessage); return; } catch (FaultException <ExceptionFault> ef) { ExceptionFault fault = ef.Detail; MessageBox.Show("Exception Fault caught.\n" + fault.Message + "\n" + fault.OriginalStackTrace); return; } catch (LogisticServiceException le) { MessageBox.Show("Logistic Service Exception caught.\n" + le.ToString()); return; } catch (Exception ex) { MessageBox.Show("Exception caught \n" + ex.ToString()); return; } string message = "Successful. New data availability = {0}. File generation = {1}. File generation time = {2}."; MessageBox.Show(string.Format(message, info.IsUpdateAvailable, info.IsFileGenerated, info.LastTimeUpdated.ToShortDateString())); }