Translate

DataObject class

Many lines have been left blank as the actual code belong to some specific implementation. This code is only a template example.

    public class DatabaseActions
    {
        private static DataSet dSet;
     
        private static int businessRule;
        private static DataView dView;

        public static void FetchOrderTransaction(string sqlQuery)
        {
            dSet = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sqlQuery, sqlConnection);
            da.SelectCommand.Transaction = sqlTransaction;
            da.Fill(dSet, "OrderDetails");
            EnumerableRowCollection ordersQuery = from row in dSet.Tables["OrderDetails"].AsEnumerable()
                                                         
                                                            orderby row.Field("OrderNumber")
                                                            select row;
            DataView orderDetailsView = ordersQuery.AsDataView();
            if (orderDetailsView.Count <= 0)
            {
                sqlConnection.Close();
                throw new NoOrdersException("No order exists!");
            }
            else
            {
                dView = orderDetailsView;
            }
        }

  private class NoOrdersException : Exception
        {
            private string msg;

            public override string Message
            {
           get
           {
            return msg;
           }
            }      
            internal NoOrdersException(string msgException)
                : base(msgException)
            {
                msg = msgException;
            }
        }
        internal static DataView GetOrders(string website, int bRule, string fOrder, string tOrder)
        {
            strWebsite = website;
            if (bRule == 1)
            {
                businessRule = 1;
                sqlQuery = "...";
            }
            else if (bRule == 2)
            {
                businessRule = 2;
                sqlQuery = "...";            }
            else if (bRule == 3)
            {
                businessRule = 3;
                sqlQuery = "...";            }
            else if (bRule == 4)
            {
                businessRule = 4;
                sqlQuery = "...";            }
            sqlConnection = new SqlConnection();
            sqlConnection.ConnectionString = ...;
            sqlConnection.Open();
            sqlTransaction = sqlConnection.BeginTransaction("_Orders");
            if (businessRule == 1)
                ExecuteBusinessRule1(strWebsite);
            else if (businessRule == 2)
                ExecuteBusinessRule2(strWebsite);
            else if (businessRule == 3)
                ExecuteBusinessRule3(strWebsite);
            else if (businessRule == 4)
                ExecuteBusinessRule4(strWebsite);
           
            sqlConnection.Close();
            return dView;
        }
}

No comments: