/// <summary> /// Delete a <see cref="JobType"/> object passed as an argument. /// </summary> /// <param name="aJobType">The <see cref="JobType"/> object to be deleted.</param> /// <exception cref="ArgumentNullException">If <c>aJobType</c> argument is <c>null</c>.</exception> public static void Delete(JobType aJobType) { if (aJobType == null) { throw new ArgumentNullException("aJobType"); } using (var vSqlCommand = new SqlCommand() { CommandType = CommandType.Text, Connection = new SqlConnection(Connection.Instance.SqlConnectionString) }) { var vStringBuilder = new StringBuilder(); vStringBuilder.AppendLine("delete JBT_JobType"); vStringBuilder.AppendLine("where JBT_Key = @JBTKey"); vSqlCommand.Parameters.AddWithValue("@JBTKey", aJobType.JbtKey); vSqlCommand.CommandText = vStringBuilder.ToString(); try { vSqlCommand.Connection.Open(); vSqlCommand.ExecuteNonQuery(); vSqlCommand.Connection.Close(); } catch (SqlException sx) { if (sx.Class == 16) { TransactionStatus vTransactionStatus = new TransactionStatus(); vTransactionStatus.TransactionResult = TransactionResult.SqlException; vTransactionStatus.SourceAssembly = SourceAssembly.Data; vTransactionStatus.Message = "One does not simply delete this item..."; vTransactionStatus.InnerMessage = "In order to delete this item please ensure all its dependancies are deleted first."; TransactionStatusException vX = new TransactionStatusException(vTransactionStatus); throw vX; } else { throw sx; } } } }
/// <summary> /// Assigns the fields and properties of aSource to this instance. /// </summary> /// <param name="aSource">A source TransactionStatus.</param> public void AssignFromSource(TransactionStatus aSource) { if (aSource == null) { return; } _transactionResult = aSource._transactionResult; _sourceAssembly = aSource._sourceAssembly; _targetUrl = aSource._targetUrl; _message = aSource._message; _innerMessage = aSource._innerMessage; aSource._messagePairList.ForEach(vSourceMessagePair => { var vTargetMessagePair = new MessagePair(vSourceMessagePair.Message, vSourceMessagePair.Subject); _messagePairList.Add(vTargetMessagePair); }); }
// Return a TransactionStatus private static string TransactionException(Exception aException) { var vTransactionStatus = new TransactionStatus(); try { StringBuilder vMessageStack = new StringBuilder(); int vMessageCount = 0; vMessageStack.AppendFormat("{0} - {1}", ++vMessageCount, aException.Message).AppendLine(); var vException = aException.InnerException; while (vException != null) { vMessageStack.AppendFormat("{0} - {1}", ++vMessageCount, vException.Message).AppendLine(); vException = vException.InnerException; } vTransactionStatus.TransactionResult = TransactionResult.GeneralException; vTransactionStatus.Message = vMessageStack.ToString(); vTransactionStatus.SourceAssembly = SourceAssembly.Services; if (vException != null) { vTransactionStatus.InnerMessage = vException.StackTrace; } return XmlUtils.Serialize<TransactionStatus>(vTransactionStatus, true); } catch (Exception ex) { string vMessage = string.Format("TransactionException Handler blew with message \"{0}\", original exception was \"{1}\"", ex.Message, aException.Message); vTransactionStatus.TransactionResult = TransactionResult.GeneralException; vTransactionStatus.Message = vMessage; vTransactionStatus.SourceAssembly = SourceAssembly.Services; vTransactionStatus.InnerMessage = String.Empty; return XmlUtils.Serialize<TransactionStatus>(vTransactionStatus, true); } }
// Build Access Exception Status document private static string TransactionAccessException(ZpAccessException aAccessException) { var vTransactionStatus = new TransactionStatus { TransactionResult = TransactionResult.AccessException, Message = aAccessException.Message, SourceAssembly = SourceAssembly.Business }; return XmlUtils.Serialize<TransactionStatus>(vTransactionStatus, true); }
// Build Success Status document private static string TransactionSuccess() { var vTransactionStatus = new TransactionStatus { TransactionResult = TransactionResult.OK, Message = "Success", SourceAssembly = SourceAssembly.Services }; return XmlUtils.Serialize<TransactionStatus>(vTransactionStatus, true); }
/// <summary> /// Initializes a new instance of the <see cref="TransactionStatusException"/> class. /// </summary> /// <param name="aTransactionStatus">A transaction status.</param> public TransactionStatusException(TransactionStatus aTransactionStatus) { _transactionStatus.AssignFromSource(aTransactionStatus); }