예제 #1
0
        /// <summary>
        /// Performs one "select * from MyTable where [InformedProperties]". MinValues and nulls are skipped from filter.
        /// </summary>
        /// <param name="filter">OrderDetailsInfo</param>
        /// <returns>List of found records.</returns>
        public virtual List <OrderDetailsInfo> GetSome(OrderDetailsInfo filter)
        {
            List <OrderDetailsInfo> AllInfoList = new List <OrderDetailsInfo>();
            string             filterWhere      = string.Empty;
            List <DbParameter> paramList        = null;

            GenerateWhere(filter, out filterWhere, out paramList);
            motor.ClearCommandParameters();
            motor.AddCommandParameters(paramList);
            motor.CommandText = GetSelectCommand() + " " + filterWhere;
            DbDataReader dbReader    = motor.ExecuteReader();
            ClassFiller  classFiller = new ClassFiller(typeof(OrderDetailsInfo), dbReader);

            using (dbReader)
            {
                while (dbReader.Read())
                {
                    OrderDetailsInfo OrderDetailsInfo = new OrderDetailsInfo();
                    ///Warning: performance issues with this automation. See method description for details.
                    classFiller.Fill(OrderDetailsInfo);
                    AllInfoList.Add(OrderDetailsInfo);
                }
            }
            return(AllInfoList);
        }
예제 #2
0
        /// <summary>
        /// Delete registers based on ID informed. Other values are skipped.
        /// </summary>
        /// <param name="parOrderDetailsInfo">Item to delete</param>
        /// <param name="errorMessage">Error message</param>
        public virtual void DeleteByID(OrderDetailsInfo parOrderDetailsInfo, out string errorMessage)
        {
            OrderDetailsInfo newParam = new OrderDetailsInfo();

            newParam.ProductID = parOrderDetailsInfo.ProductID;
            this.Delete(newParam, out errorMessage);
        }
예제 #3
0
        /// <summary>
        /// Delete registers based on class values informed. MinValues and nulls are skipped.
        /// </summary>
        /// <param name="parOrderDetailsInfo">Item to delete</param>
        /// <param name="transaction">Transaction context</param>
        /// <param name="errorMessage">Error message</param>
        public virtual void Delete(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction, out string errorMessage)
        {
            errorMessage = null;
            try
            {
                string        whereClausule = string.Empty;
                var           pks           = GetPrimaryKey();
                List <string> primaryKeys   = new List <string>();
                foreach (var item in pks)
                {
                    primaryKeys.Add(item.Key);
                }

                List <DbParameter> paramList = ParameterBuilder.GetParametersForDelete(primaryKeys, typeof(OrderDetailsInfo), parOrderDetailsInfo, motor.Command, out whereClausule);

                motor.CommandText = GetDeleteCommand() + " " + whereClausule;
                motor.ClearCommandParameters();
                motor.AddCommandParameters(paramList);
                motor.AddTransaction(transaction);
                motor.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
            }
        }
예제 #4
0
        /// <summary>
        /// Insert one register in database.
        /// </summary>
        /// <param name="parOrderDetailsInfo">Item to delete</param>
        /// <param name="transaction">Transaction context</param>
        /// <param name="errorMessage">Error message</param>
        public virtual void InsertOne(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction, out string errorMessage)
        {
            errorMessage = null;
            try
            {
                motor.CommandText = GetInsertCommand();
                ///Warning: performance issues with this automation. See method description for details.
                List <DbParameter> paramList = ParameterBuilder.GetParametersForInsert(typeof(OrderDetailsInfo), parOrderDetailsInfo, motor.Command);
                motor.ClearCommandParameters();
                motor.AddCommandParameters(paramList);
                motor.AddTransaction(transaction);


                if (GetIdentity == true)
                {
                    parOrderDetailsInfo.ProductID = motor.ExecuteScalar();
                }
                else
                {
                    motor.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
            }
        }
        public void ParseIPN(int orderId, string transId, string status, int storeId, int portalId, string userName, int customerId, string sessionCode)
        {
            var ph = new PayPalHandler();

            try
            {
                var ot     = new OrderDetailsCollection();
                var odinfo = new OrderDetailsInfo();
                var cms    = new CartManageSQLProvider();
                var cf     = new CommonInfo {
                    StoreID = storeId, PortalID = portalId, AddedBy = userName
                };
                // UpdateOrderDetails
                var objad = new AspxOrderDetails();
                var sqlH  = new SQLHandler();
                // use split to split array we already have using "=" as delimiter
                // WcfSession ws = new WcfSession();
                odinfo.OrderID            = orderId;//ws.GetSessionVariable("OrderID");
                odinfo.ResponseReasonText = status;
                odinfo.TransactionID      = transId;
                ot.ObjOrderDetails        = odinfo;
                ot.ObjCommonInfo          = cf;
                odinfo.OrderStatusID      = 8;
                objad.UpdateOrderDetails(ot);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    public static void ParseIPN(int orderID, string transID, string status, int storeID, int portalID, string userName, int customerID, string sessionCode)
    {
        GoogleCheckOutHandler ph = new GoogleCheckOutHandler();

        try
        {
            OrderDetailsCollection ot     = new OrderDetailsCollection();
            OrderDetailsInfo       odinfo = new OrderDetailsInfo();
            CartManageSQLProvider  cms    = new CartManageSQLProvider();
            CommonInfo             cf     = new CommonInfo();
            cf.StoreID  = storeID;
            cf.PortalID = portalID;
            cf.AddedBy  = userName;
            // UpdateOrderDetails
            AspxOrderDetails objad = new AspxOrderDetails();
            SQLHandler       sqlH  = new SQLHandler();
            // use split to split array we already have using "=" as delimiter
            // WcfSession ws = new WcfSession();
            odinfo.OrderID            = orderID;//ws.GetSessionVariable("OrderID");
            odinfo.ResponseReasonText = status;
            odinfo.TransactionID      = transID;
            ot.ObjOrderDetails        = odinfo;
            ot.ObjCommonInfo          = cf;
            odinfo.OrderStatusID      = 8;
            objad.UpdateOrderDetails(ot);
            // UpdateItemQuantity
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
예제 #7
0
 /// <summary>
 /// Delete registers based on class values informed. MinValues and nulls are skipped.
 /// Must have "MultipleActiveResultSets=True" on connection string.
 /// </summary>
 /// <param name="parOrderDetailsInfo">Item to delete</param>
 /// <param name="transaction">Transaction context</param>
 /// <param name="errorMessage">Error message</param>
 public virtual void Delete(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction, out string errorMessage)
 {
     errorMessage = string.Empty;
     OrderDetailsDAO.Delete(parOrderDetailsInfo, transaction, out errorMessage);
     //By default, the caller of this method will do the commit.
     //motor.Commit();
     //motor.CloseConnection();
 }
예제 #8
0
        public void DeleteData(ModelNotifiedForOrderDetails modelNotifiedForOrderDetails, out string error)
        {
            OrderDetailsBsn  bsn    = new OrderDetailsBsn(wpfConfig);
            OrderDetailsInfo dbItem = new OrderDetailsInfo();

            Cloner.CopyAllTo(typeof(ModelNotifiedForOrderDetails), modelNotifiedForOrderDetails, typeof(OrderDetailsInfo), dbItem);
            bsn.DeleteByID(dbItem, out error);
        }
예제 #9
0
 /// <summary>
 /// Primitive way to solve Primary Keys that are not "Identity" in Database.
 /// NOTE: Microsoft recomends use "identity" types in primary key and let SQL Server solve the PK
 /// </summary>
 /// <param name="parOrderDetailsInfo"></param>
 public void SolvePrimaryKeyBeforeInsert(OrderDetailsInfo parOrderDetailsInfo)
 {
     if (parOrderDetailsInfo.ProductID == int.MinValue || parOrderDetailsInfo.ProductID == 0)
     {
         GenericDAO genericBSN = new GenericDAO(motor);
         long       nextID     = genericBSN.GetMaxPlusOne("ProductID", "OrderDetails");
         parOrderDetailsInfo.ProductID = (int)nextID;
     }
 }
예제 #10
0
        /// <summary>
        /// Performs one "update" database command.
        /// Will commit the transaction and close the connection. Use for independent delete.
        /// </summary>
        /// <param name="OrderDetailsInfo">Object to update.</param>
        /// <param name="errorMessage">Error message if exception is throwed</param>
        public virtual void UpdateOne(OrderDetailsInfo parOrderDetailsInfo, out string errorMessage)
        {
            errorMessage = string.Empty;
            DbTransaction transaction = motor.BeginTransaction();

            this.UpdateOne(parOrderDetailsInfo, transaction, out errorMessage);
            motor.Commit();
            motor.CloseConnection();
        }
예제 #11
0
        public void AddData(ModelNotifiedForOrderDetails modelNotifiedForOrderDetails, out string error)
        {
            OrderDetailsBsn  bsn    = new OrderDetailsBsn(wpfConfig);
            OrderDetailsInfo dbItem = new OrderDetailsInfo();

            Cloner.CopyAllTo(typeof(ModelNotifiedForOrderDetails), modelNotifiedForOrderDetails, typeof(OrderDetailsInfo), dbItem);
            bsn.InsertOne(dbItem, out error);
            modelNotifiedForOrderDetails.NewItem = false;
            Cloner.CopyAllTo(typeof(OrderDetailsInfo), dbItem, typeof(ModelNotifiedForOrderDetails), modelNotifiedForOrderDetails);
        }
예제 #12
0
        /// <summary>
        /// Delete registers based on class ID informed in transactional context. Other values are skipped.
        /// Must have "MultipleActiveResultSets=True" on connection string.
        /// </summary>
        /// <param name="parOrderDetailsInfo">Item to delete</param>
        /// <param name="transaction">Transaction context</param>
        /// <param name="errorMessage">Error message</param>
        public virtual void DeleteByID(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction, out string errorMessage)
        {
            OrderDetailsInfo newParam = new OrderDetailsInfo();

            newParam.ProductID = parOrderDetailsInfo.ProductID;
            this.Delete(newParam, transaction, out errorMessage);
            //By default, the caller of this method will do the commit.
            //motor.Commit();
            //motor.CloseConnection();
        }
예제 #13
0
        public ModelNotifiedForOrderDetails GetOrderDetailsByID(int OrderID, int ProductID, out string error)
        {
            error = null;
            OrderDetailsBsn              bsn    = new OrderDetailsBsn(wpfConfig);
            OrderDetailsInfo             dbItem = bsn.GetValueByID(OrderID, ProductID);
            ModelNotifiedForOrderDetails item   = new ModelNotifiedForOrderDetails();

            Cloner.CopyAllTo(typeof(OrderDetailsInfo), dbItem, typeof(ModelNotifiedForOrderDetails), item);
            return(item);
        }
예제 #14
0
        /// <summary>
        /// Retrieves the data using only the primary key ID. Ex.: "Select * from MyTable where id=1"
        /// </summary>
        /// <returns>The class filled if found.</returns>
        public virtual OrderDetailsInfo GetValueByID(int OrderID, int ProductID)
        {
            motor.OpenConnection();
            OrderDetailsInfo value = OrderDetailsDAO.GetValueByID(OrderID, ProductID);

            if (this.closeConnectionWhenFinish)
            {
                motor.CloseConnection();
            }
            return(value);
        }
예제 #15
0
        /// <summary>
        /// Perform one "select" command to database. Filter the data using "filter" class.
        /// </summary>
        /// <param name="filter">Class to use as filter</param>
        /// <returns>List with filtered data</returns>
        public virtual List <OrderDetailsInfo> GetSome(OrderDetailsInfo filter)
        {
            motor.OpenConnection();
            List <OrderDetailsInfo> list = OrderDetailsDAO.GetSome(filter);

            if (this.closeConnectionWhenFinish)
            {
                motor.CloseConnection();
            }
            return(list);
        }
예제 #16
0
 /// <summary>
 /// Performs a "update [FildList] set [FieldList] where id = @id". Must have the ID informed.
 /// </summary>
 /// <param name="parOrderDetailsInfo">Item to update</param>
 /// <param name="transaction">Transaction context</param>
 /// <param name="errorMessage">Error message</param>
 public virtual void UpdateOne(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction, out string errorMessage)
 {
     errorMessage = null;
     try
     {
         motor.CommandText = GetUpdateCommand();
         ///Warning: performance issues with this automation. See method description for details.
         List <DbParameter> paramList = ParameterBuilder.GetParametersForUpdate(typeof(OrderDetailsInfo), parOrderDetailsInfo, motor.Command);
         motor.ClearCommandParameters();
         motor.AddCommandParameters(paramList);
         motor.AddTransaction(transaction);
         motor.ExecuteNonQuery();
     }
     catch (Exception ex)
     {
         errorMessage = ex.Message;
     }
 }
예제 #17
0
        /// <summary>
        /// Use parameters to apply simple filters
        /// </summary>
        /// <param name="filterExpression"></param>
        /// <returns></returns>
        public virtual List <OrderDetailsInfo> GetAll(List <DataFilterExpressionDB> filterExpression)
        {
            List <OrderDetailsInfo> AllInfoList = new List <OrderDetailsInfo>();

            motor.ClearCommandParameters();
            motor.CommandText = GetSelectCommand() + " where 1=1 ";
            List <DbParameter> paramList = new List <DbParameter>();

            string where = "";
            foreach (DataFilterExpressionDB filter in filterExpression)
            {
                DbParameter param = motor.Command.CreateParameter();
                param.ParameterName = "@param_" + filter.FieldName;
                param.Value         = filter.Filter;
                param.DbType        = HelperDBType.GetDBType(typeof(OrderDetailsInfo), filter.FieldName);
                if (filter.FilterType == DataFilterExpressionDB._FilterType.Equal)
                {
                    param.Value = filter.Filter;
                    where      += string.Format(" and OrderDetails.{0} = {1}", filter.FieldName, param.ParameterName);
                }
                else
                {
                    param.Value = "%" + filter.Filter + "%";
                    where      += string.Format(" and OrderDetails.{0} like {1}", filter.FieldName, param.ParameterName);
                }
                paramList.Add(param);
            }
            motor.CommandText += where;
            motor.AddCommandParameters(paramList);

            DbDataReader dbReader    = motor.ExecuteReader();
            ClassFiller  classFiller = new ClassFiller(typeof(OrderDetailsInfo), dbReader);

            using (dbReader)
            {
                while (dbReader.Read())
                {
                    OrderDetailsInfo classInfo = new OrderDetailsInfo();
                    classFiller.Fill(classInfo);
                    AllInfoList.Add(classInfo);
                }
            }
            return(AllInfoList);
        }
예제 #18
0
        /// <summary>
        /// Performs one "Select * from MyTable". Use wisely.
        /// </summary>
        /// <returns>List of found records.</returns>
        public virtual List <OrderDetailsInfo> GetAll()
        {
            List <OrderDetailsInfo> AllInfoList = new List <OrderDetailsInfo>();

            motor.CommandText = GetSelectCommand();
            DbDataReader dbReader    = motor.ExecuteReader();
            ClassFiller  classFiller = new ClassFiller(typeof(OrderDetailsInfo), dbReader);

            using (dbReader)
            {
                while (dbReader.Read())
                {
                    OrderDetailsInfo classInfo = new OrderDetailsInfo();
                    classFiller.Fill(classInfo);
                    AllInfoList.Add(classInfo);
                }
            }
            return(AllInfoList);
        }
예제 #19
0
        /// <summary>
        /// Delete registers based on class values informed. MinValues and nulls are skipped.
        /// </summary>
        /// <param name="parOrderDetailsInfo">Item to delete</param>
        /// <param name="errorMessage">Error message</param>
        public virtual void Delete(OrderDetailsInfo parOrderDetailsInfo, out string errorMessage)
        {
            errorMessage = string.Empty;

            //1) Start the transaction context.
            DbTransaction transaction = motor.BeginTransaction();

            //2) Call the overload of this method, which call the DAO but does not commit.
            this.Delete(parOrderDetailsInfo, transaction, out errorMessage);

            //3) Commit the transaction.
            motor.Commit();

            //4) Close the conection (if configured to do so).
            if (this.closeConnectionWhenFinish)
            {
                motor.CloseConnection();
            }
        }
예제 #20
0
        /// <summary>
        /// Same as get all but filter the result set
        /// </summary>
        /// <param name="numberOfRowsToSkip">Skip first X rows</param>
        /// <param name="numberOfRows">Like "TOP" in sql server</param>
        /// <returns></returns>
        public List <OrderDetailsInfo> GetAll(int numberOfRowsToSkip, int numberOfRows)
        {
            List <OrderDetailsInfo> AllInfoList = new List <OrderDetailsInfo>();

            motor.CommandText = base.GetFilteredRowNumAndSkipQuery("AttributeLists", "id", numberOfRowsToSkip, numberOfRows);
            DbDataReader dbReader    = motor.ExecuteReader();
            ClassFiller  classFiller = new ClassFiller(typeof(OrderDetailsInfo), dbReader);

            using (dbReader)
            {
                while (dbReader.Read())
                {
                    OrderDetailsInfo classInfo = new OrderDetailsInfo();
                    classFiller.Fill(classInfo);
                    AllInfoList.Add(classInfo);
                }
            }
            return(AllInfoList);
        }
예제 #21
0
        /// <summary>
        /// Get one register using only ID as key.
        /// </summary>
        /// <returns></returns>
        public virtual OrderDetailsInfo GetValueByID(int OrderID, int ProductID)
        {
            //ToDo: set multiple PK filter
            motor.ClearCommandParameters();
            motor.CommandText = GetSelectCommand() + GetWherePrimaryKey();
            List <DbParameter> paramList = new List <DbParameter>();


            DbParameter paramOrderID = motor.Command.CreateParameter();

            paramOrderID.ParameterName = "@param_OrderID";
            paramOrderID.Value         = OrderID;
            paramList.Add(paramOrderID);


            DbParameter paramProductID = motor.Command.CreateParameter();

            paramProductID.ParameterName = "@param_ProductID";
            paramProductID.Value         = ProductID;
            paramList.Add(paramProductID);


            motor.AddCommandParameters(paramList);
            OrderDetailsInfo InfoValue = new OrderDetailsInfo();

            DbDataReader dbReader    = motor.ExecuteReader();
            ClassFiller  classFiller = new ClassFiller(typeof(OrderDetailsInfo), dbReader);

            using (dbReader)
            {
                if (dbReader.Read())
                {
                    InfoValue = new OrderDetailsInfo();
                    classFiller.Fill(InfoValue);
                }
                else
                {
                    return(null);
                }
            }
            return(InfoValue);
        }
예제 #22
0
/// <summary>
/// Perform a search to find the class "ProductsInfo" using as key the field "Products".
/// </summary>
/// <param name="parOrderDetailsInfo">Main class that contains the aggregation.</param>
/// <returns>Foreing key attched class.</returns>
        public virtual ProductsInfo Get_ProductIDID_FKProducts(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction)
        {
            ProductsInfo filter = new ProductsInfo();

            filter.ProductName = parOrderDetailsInfo.FK1_ProductName;
            ProductsBsn         myClass = new ProductsBsn(false, this.motor);
            List <ProductsInfo> list    = myClass.GetSome(filter);

            if (list.Count == 0)
            {
//This error occurs when try to search for the ID in one table, but it does not find the value.
//Ex.: Select id,SomeField from myTable where SomeField='myValue') If no data return, this error will trigger.
                throw new Exception(string.Format("Can not define ID for parOrderDetailsInfo.", parOrderDetailsInfo.FK1_ProductName));

/* [Hint] The code below do one insert in the table "Products" informing only the "ProductID" field.
 * [Warning] The code may crash if other fields are necessary.
 * [Instructions] Comment the exception above. Uncomment the code below.
 */
//string errorMsg = string.Empty;
//myClass.InsertOne(filter, transaction, out errorMsg);
//if (errorMsg != string.Empty)
//{
//throw new Exception(errorMsg);
//}
//else
//{
//return filter;
//}
            }
            if (list.Count > 1)
            {
//This error occurs when try to search for the ID in one table, but it return more then one value.
//Ex.: Select id,SomeField from myTable where SomeField='myValue') If more then one line return, this error will trigger.
                throw new Exception(string.Format("Can not define ID for parOrderDetailsInfo. Theres more then one ID value for this field. ", parOrderDetailsInfo.FK1_ProductName));
            }
            else
            {
//Return the only one class found.
                return(list[0]);
            }
        }
예제 #23
0
        public void TryUpdate(UpdateOrderDetailsView viewToUpdate, out RestExceptionError error)
        {
            error = null;
            OrderDetailsInfo dbViewToInclude = new OrderDetailsInfo();

            try
            {
                Cloner.CopyAllTo(typeof(UpdateOrderDetailsView), viewToUpdate, typeof(OrderDetailsInfo), dbViewToInclude);
            }
            catch (Exception ex)
            {
                error = new RestExceptionError();
                error.InternalMessage  = "Internal Error parsing data for (OrderDetails.TryUpdate/Parsing)";
                error.ExceptionMessage = ex.Message;
                error.SourceError      = RestExceptionError._SourceError.ServerSide;
                error.StackTrace       = ex.StackTrace;
            }

            try
            {
                OrderDetailsBsn bsn     = new OrderDetailsBsn(restConfig);
                string          dbError = null;
                bsn.UpdateOne(dbViewToInclude, out dbError);
                if (dbError != null)
                {
                    error = new RestExceptionError();
                    error.InternalMessage  = "Internal Error Save data for [OrderDetails.TryUpdate]";
                    error.ExceptionMessage = dbError;
                    error.SourceError      = RestExceptionError._SourceError.ServerSide;
                    error.StackTrace       = "";
                }
            }
            catch (Exception ex)
            {
                error = new RestExceptionError();
                error.InternalMessage  = "Internal Error Update data for [OrderDetails.TryUpdate]";
                error.ExceptionMessage = ex.Message;
                error.SourceError      = RestExceptionError._SourceError.ServerSide;
                error.StackTrace       = ex.StackTrace;
            }
        }
 public static string Parse(string transId, string invoice, string POrderno, int responseCode, int responsereasonCode, string responsetext, int storeID, int portalID, string userName, int customerID, string sessionCode)
 {
     try
     {
         OrderDetailsCollection ot     = new OrderDetailsCollection();
         OrderDetailsInfo       odinfo = new OrderDetailsInfo();
         CartManageSQLProvider  cms    = new CartManageSQLProvider();
         CommonInfo             cf     = new CommonInfo();
         cf.StoreID  = storeID;
         cf.PortalID = portalID;
         cf.AddedBy  = userName;
         // UpdateOrderDetails
         AspxOrderDetails objad = new AspxOrderDetails();
         SQLHandler       sqlH  = new SQLHandler();
         odinfo.OrderID             = int.Parse(HttpContext.Current.Session["OrderID"].ToString());
         odinfo.TransactionID       = odinfo.ResponseCode.ToString(transId);
         odinfo.InvoiceNumber       = Convert.ToString(invoice);
         odinfo.PurchaseOrderNumber = Convert.ToString(POrderno);
         odinfo.ResponseCode        = Convert.ToInt32(responseCode);
         odinfo.ResponseReasonCode  = Convert.ToInt32(responsereasonCode);
         odinfo.ResponseReasonText  = Convert.ToString(responsetext);
         ot.ObjOrderDetails         = odinfo;
         ot.ObjCommonInfo           = cf;
         odinfo.OrderStatusID       = 8;
         objad.UpdateOrderDetails(ot);
         if (HttpContext.Current.Session["OrderCollection"] != null)
         {
             OrderDetailsCollection orderdata2 = new OrderDetailsCollection();
             orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
             objad.UpdateItemQuantity(orderdata2);
         }
         HttpContext.Current.Session.Remove("OrderID");
         // cms.ClearCartAfterPayment(customerID, sessionCode, storeID, portalID);
         return("This transaction has been approved");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #25
0
        /// <summary>
        /// Performs one "update" database command in a transactional context.
        /// * The method uses a transaction object already created and does not close the connection.
        /// * Must have "MultipleActiveResultSets=True" on connection string.
        /// </summary>
        /// <param name="OrderDetailsInfo">Object to update.</param>
        /// <param name="transaction">Inform "DBTransaction".</param>
        /// <param name="errorMessage">Error message if exception is throwed.</param>
        public virtual void UpdateOne(OrderDetailsInfo parOrderDetailsInfo, DbTransaction transaction, out string errorMessage)
        {
            errorMessage = string.Empty;

//If is trying to insert FKValue without the ID but has the unique description,
//the system will try to get the class with the ID and populate it.
            if ((parOrderDetailsInfo.OrderID == Int32.MinValue) && (parOrderDetailsInfo.FK0_ShipName != null))
            {
                OrdersInfo fkClass = Get_OrderIDID_FKOrders(parOrderDetailsInfo, transaction);
                parOrderDetailsInfo.OrderID = fkClass.OrderID;
            }
            if ((parOrderDetailsInfo.ProductID == Int32.MinValue) && (parOrderDetailsInfo.FK1_ProductName != null))
            {
                ProductsInfo fkClass = Get_ProductIDID_FKProducts(parOrderDetailsInfo, transaction);
                parOrderDetailsInfo.ProductID = fkClass.ProductID;
            }

            OrderDetailsDAO.UpdateOne(parOrderDetailsInfo, transaction, out errorMessage);
            //By default, the caller of this method will do the commit.
            //motor.Commit();
            //motor.CloseConnection();
        }
예제 #26
0
 public static string ParseForMobile(string transId, OrderInfo orderInfo, string POrderno, int responseCode, int responsereasonCode, string responsetext)
 {
     try
     {
         var ot     = new OrderDetailsCollection();
         var odinfo = new OrderDetailsInfo();
         var cms    = new CartManageSQLProvider();
         var cf     = new CommonInfo
         {
             StoreID = orderInfo.StoreId, PortalID = orderInfo.PortalId, AddedBy = orderInfo.AddedBy
         };
         // UpdateOrderDetails
         var objad = new AspxOrderDetails();
         odinfo.OrderID             = orderInfo.OrderId;
         odinfo.TransactionID       = odinfo.ResponseCode.ToString(transId);
         odinfo.InvoiceNumber       = orderInfo.InvoiceNumber;
         odinfo.PurchaseOrderNumber = Convert.ToString(POrderno);
         odinfo.ResponseCode        = Convert.ToInt32(responseCode);
         odinfo.ResponseReasonCode  = Convert.ToInt32(responsereasonCode);
         odinfo.ResponseReasonText  = Convert.ToString(responsetext);
         ot.ObjOrderDetails         = odinfo;
         ot.ObjCommonInfo           = cf;
         odinfo.OrderStatusID       = 8;
         objad.UpdateOrderDetails(ot);
         AspxCommonInfo aspxCommonObj = new AspxCommonInfo();
         aspxCommonObj.CustomerID  = orderInfo.CustomerId;
         aspxCommonObj.SessionCode = orderInfo.SessionCode;
         aspxCommonObj.StoreID     = orderInfo.StoreId;
         aspxCommonObj.PortalID    = orderInfo.PortalId;
         cms.ClearCartAfterPayment(aspxCommonObj);
         return("This transaction has been approved");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #27
0
 public static string Parse(string transId, string invoice, string POrderno, int responseCode, int responsereasonCode, string responsetext, AspxCommonInfo aspxCommonObj)
 {
     try
     {
         var ot     = new OrderDetailsCollection();
         var odinfo = new OrderDetailsInfo();
         var cms    = new CartManageSQLProvider();
         var cf     = new CommonInfo {
             StoreID = aspxCommonObj.StoreID, PortalID = aspxCommonObj.PortalID, AddedBy = aspxCommonObj.UserName
         };
         // UpdateOrderDetails
         var objad = new AspxOrderDetails();
         odinfo.OrderID             = int.Parse(HttpContext.Current.Session["OrderID"].ToString());
         odinfo.TransactionID       = odinfo.ResponseCode.ToString(transId);
         odinfo.InvoiceNumber       = Convert.ToString(invoice);
         odinfo.PurchaseOrderNumber = Convert.ToString(POrderno);
         odinfo.ResponseCode        = Convert.ToInt32(responseCode);
         odinfo.ResponseReasonCode  = Convert.ToInt32(responsereasonCode);
         odinfo.ResponseReasonText  = Convert.ToString(responsetext);
         ot.ObjOrderDetails         = odinfo;
         ot.ObjCommonInfo           = cf;
         odinfo.OrderStatusID       = 8;
         objad.UpdateOrderDetails(ot);
         if (HttpContext.Current.Session["OrderCollection"] != null)
         {
             var orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
             objad.UpdateItemQuantity(orderdata2);
         }
         HttpContext.Current.Session.Remove("OrderID");
         cms.ClearCartAfterPayment(aspxCommonObj);
         return("This transaction has been approved");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #28
0
    public static PayPalHandler ParseAfterIPN(string postData, int storeID, int portalID, string userName, int customerID, string sessionCode, string TemplateName, string addressPath)
    {
        String        sKey, sValue;
        PayPalHandler ph      = new PayPalHandler();
        string        transID = string.Empty;

        try
        {
            String[] StringArray = postData.Split('\n');

            /*
             * loop is set to start at 1 rather than 0 because first
             * string in array will be single word SUCCESS or FAIL
             * Only used to verify post data
             */
            OrderDetailsCollection ot     = new OrderDetailsCollection();
            OrderDetailsInfo       odinfo = new OrderDetailsInfo();
            CartManageSQLProvider  cms    = new CartManageSQLProvider();
            CommonInfo             cf     = new CommonInfo();
            cf.StoreID  = storeID;
            cf.PortalID = portalID;
            cf.AddedBy  = userName;
            AspxOrderDetails objad = new AspxOrderDetails();
            SQLHandler       sqlH  = new SQLHandler();
            odinfo.OrderID = int.Parse(HttpContext.Current.Session["OrderID"].ToString());
            int i;
            for (i = 1; i < StringArray.Length - 1; i++)
            {
                String[] StringArray1 = StringArray[i].Split('=');

                sKey   = StringArray1[0];
                sValue = HttpUtility.UrlDecode(StringArray1[1]);

                switch (sKey)
                {
                case "payment_status":
                    odinfo.ResponseReasonText = Convert.ToString(sValue);
                    break;

                case "mc_fee":
                    break;

                case "payer_email":
                    break;

                case "Tx Token":
                    break;

                case "txn_id":
                    odinfo.TransactionID = Convert.ToString(sValue);
                    transID = Convert.ToString(sValue);
                    break;
                }
            }

            ot.ObjOrderDetails = odinfo;
            ot.ObjCommonInfo   = cf;
            HttpContext.Current.Session.Remove("OrderID");
            HttpContext.Current.Session.Remove("OrderCollection");

            return(ph);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
예제 #29
0
        public ArrayList GetOrderDetails(int orderID)
        {
            OrderDetailsInfo info = null;
            ArrayList al = new ArrayList();
            SqlDataReader dr = (SqlDataReader)DataProvider.Instance().GetOrderDetails(orderID);

            //    DotNetNukeStore_Products.ProductID,
            //    DotNetNukeStore_Products.ModelName,
            //    DotNetNukeStore_Products.ModelNumber,
            //    DotNetNukeStore_OrderDetails.UnitCost,
            //    DotNetNukeStore_OrderDetails.Quantity,
            //    (DotNetNukeStore_OrderDetails.Quantity * DotNetNukeStore_OrderDetails.UnitCost) as ExtendedAmount

            while(dr.Read())
            {
                info = new OrderDetailsInfo();
                info.ModelName = (string)dr["ModelName"];
                info.ModelNumber = (string)dr["ModelNumber"];
                info.OrderID = orderID;
                info.ProductID = (int)dr["ProductID"];
                info.UnitCost = (decimal)dr["UnitCost"];
                info.Quantity = (int)dr["Quantity"];
                info.ExtendedAmount = (decimal)dr["ExtendedAmount"];
                info.ProdDeliveryMethod = (int)dr["ProdDeliveryMethod"];
                info.ProdCost = (decimal)dr["ProdCost"];
                info.ProdName = (string)dr["ProdName"];
                info.ProdReference = (string)dr["ProdReference"];
                al.Add(info);
            }
            dr.Close();

            return al;
            //return CBO.FillCollection(, typeof(OrderDetailsInfo));
        }
        public void ParseAfterIPNMobile(OrderInfo orderInfo, string couponUsage, List <OrderItem> itemsInfo, string postData, UserAddressInfo billingAddress, UserAddressInfo shippingAddress, string templateName, string addressPath)
        {
            string transId = string.Empty;

            try
            {
                String[] stringArray = postData.Split('\n');
                var      ot          = new OrderDetailsCollection();
                var      odinfo      = new OrderDetailsInfo();
                var      cms         = new CartManageSQLProvider();
                var      cf          = new CommonInfo
                {
                    StoreID = orderInfo.StoreId, PortalID = orderInfo.PortalId, AddedBy = orderInfo.AddedBy
                };
                // UpdateOrderDetails
                var objad = new AspxOrderDetails();
                var sqlH  = new SQLHandler();
                // use split to split array we already have using "=" as delimiter

                int i;
                for (i = 1; i < stringArray.Length - 1; i++)
                {
                    String[] stringArray1 = stringArray[i].Split('=');

                    String sKey   = stringArray1[0];
                    String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                    // set string vars to hold variable names using a switch
                    switch (sKey)
                    {
                    case "payment_status":
                        odinfo.ResponseReasonText = Convert.ToString(sValue);
                        break;

                    case "mc_fee":
                        // ph.PaymentFee = Convert.ToDouble(sValue);
                        break;

                    case "payer_email":
                        // ph.PayerEmail = Convert.ToString(sValue);
                        break;

                    case "Tx Token":
                        // ph.TxToken = Convert.ToString(sValue);
                        break;

                    case "txn_id":
                        odinfo.TransactionID = Convert.ToString(sValue);
                        transId = Convert.ToString(sValue);
                        break;
                    }
                }

                ot.ObjCommonInfo = cf;
                //odinfo.OrderStatusID = 8; var orderInfo = (OrderInfo) HttpContext.Current.Session["OrderCollection"];

                UpdateItemQuantityAndCoupon(orderInfo, itemsInfo, couponUsage, orderInfo.StoreId, orderInfo.PortalId,
                                            orderInfo.AddedBy);
                AspxCommonInfo aspxCommonObj = new AspxCommonInfo();
                aspxCommonObj.CustomerID  = orderInfo.CustomerId;
                aspxCommonObj.SessionCode = orderInfo.SessionCode;
                aspxCommonObj.StoreID     = orderInfo.StoreId;
                aspxCommonObj.PortalID    = orderInfo.PortalId;
                cms.ClearCartAfterPayment(aspxCommonObj);
                EmailTemplate.SendEmailForOrderMobile(orderInfo, billingAddress, shippingAddress, addressPath,
                                                      templateName, transId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void ParseAfterIPN(string postData, AspxCommonInfo aspxCommonObj, string templateName, string addressPath)
        {
            var    ph          = new PayPalHandler();
            string transId     = string.Empty;
            string orderStatus = string.Empty;

            try
            {
                //split response into string array using whitespace delimeter
                String[] stringArray = postData.Split('\n');

                // NOTE:

                /*
                 * loop is set to start at 1 rather than 0 because first
                 * string in array will be single word SUCCESS or FAIL
                 * Only used to verify post data
                 */
                var ot     = new OrderDetailsCollection();
                var odinfo = new OrderDetailsInfo();
                var cms    = new CartManageSQLProvider();
                var cf     = new CommonInfo {
                    StoreID = aspxCommonObj.StoreID, PortalID = aspxCommonObj.PortalID, AddedBy = aspxCommonObj.UserName
                };
                // UpdateOrderDetails
                var objad = new AspxOrderDetails();
                var sqlH  = new SQLHandler();
                // use split to split array we already have using "=" as delimiter

                int i;
                for (i = 1; i < stringArray.Length - 1; i++)
                {
                    String[] stringArray1 = stringArray[i].Split('=');

                    String sKey   = stringArray1[0];
                    String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                    // set string vars to hold variable names using a switch
                    switch (sKey)
                    {
                    case "payment_status":
                        odinfo.ResponseReasonText = Convert.ToString(sValue);
                        orderStatus = Convert.ToString(sValue);
                        break;

                    case "mc_fee":
                        // ph.PaymentFee = Convert.ToDouble(sValue);
                        break;

                    case "payer_email":
                        // ph.PayerEmail = Convert.ToString(sValue);
                        break;

                    case "Tx Token":
                        // ph.TxToken = Convert.ToString(sValue);
                        break;

                    case "txn_id":
                        odinfo.TransactionID = Convert.ToString(sValue);
                        transId = Convert.ToString(sValue);
                        break;
                    }
                }

                ot.ObjCommonInfo = cf;
                //odinfo.OrderStatusID = 8;
                //objad.UpdateOrderDetails(ot);
                if (odinfo.ResponseReasonText.ToLower().Trim() == "completed")
                {
                    if (HttpContext.Current.Session["OrderCollection"] != null)
                    {
                        var orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                        objad.UpdateItemQuantity(orderdata2);
                    }
                }
                cms.ClearCartAfterPayment(aspxCommonObj);

                //invoice  transID
                if (HttpContext.Current.Session["OrderCollection"] != null)
                {
                    var orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                    orderdata.ObjOrderDetails.OrderStatus = orderStatus;
                    EmailTemplate.SendEmailForOrder(aspxCommonObj.PortalID, orderdata, addressPath, templateName, transId);
                }
                HttpContext.Current.Session.Remove("OrderCollection");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }