/// <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); }
/// <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); }
/// <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; } }
/// <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; } }
/// <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(); }
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); }
/// <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; } }
/// <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(); }
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); }
/// <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(); }
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); }
/// <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); }
/// <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); }
/// <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; } }
/// <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); }
/// <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); }
/// <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(); } }
/// <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); }
/// <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); }
/// <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]); } }
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; } }
/// <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(); }
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; } }
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; } }
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; } }
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; } }