private void btnSave_Click(object sender, EventArgs e) { CCurrency oCurrency = Getformdata(); CCurrencyBO oCurrencyBO = new CCurrencyBO(); CResult oresult = new CResult(); if (validatedata()) { if (oCurrency.Curr_OID != "") { if (DialogResult.OK == MessageBox.Show("Are you wanted to upadte " + txtCode.Text + " ?", "Confirmation!", MessageBoxButtons.OKCancel)) { oresult = oCurrencyBO.Update(oCurrency); } } else { oresult = oCurrencyBO.Create(oCurrency); } if (oresult.IsSuccess) { LoadUOMType(); Clearformdata(); } else { // MessageBox.Show(oresult.ErrMsg); MessageBox.Show("Not Saved" + oresult.ErrMsg + ""); } } }
private void btnDelete_Click(object sender, EventArgs e) { CCurrency oCurrency = Getformdata(); CCurrencyBO oCurrencyBO = new CCurrencyBO(); CResult oResult = new CResult(); if (validatedata()) { if (DialogResult.OK == MessageBox.Show("Are you want to delete " + txtCode.Text + " ?", "Confirmation!", MessageBoxButtons.OKCancel)) { oResult = oCurrencyBO.Delete(oCurrency); } if (oResult.IsSuccess) { if (oResult.Data.ToString() == "0") { MessageBox.Show("Deletion Not Possible", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); Clearformdata(); LoadUOMType(); } else { MessageBox.Show("Deleted successfully"); Clearformdata(); LoadUOMType(); } } else { MessageBox.Show(oResult.ErrMsg.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public ctrlCustomerLimit(UniXP.Common.CProfile objProfile, UniXP.Common.MENUITEM objMenuItem) { InitializeComponent(); m_objProfile = objProfile; m_objMenuItem = objMenuItem; m_bIsChanged = false; m_bDisableEvents = false; m_objSelectedCustomer = null; m_objCreditLimitList = null; cboxCurrency.Properties.Items.Clear(); List <CCurrency> objCurrencyList = CCurrency.GetCurrencyList(m_objProfile, null); if (objCurrencyList != null) { foreach (CCurrency objCurrency in objCurrencyList) { cboxCurrency.Properties.Items.Add(objCurrency); } } objCurrencyList = null; if (cboxCurrency.Properties.Items.Count > 0) { cboxCurrency.SelectedItem = cboxCurrency.Properties.Items[0]; } CheckClientsRight(); }
private void SetCurrencyValue(System.String strCurrencyAbbr) { try { if (m_objAllCurrencyList == null) { m_objCurrency = null; } else { foreach (CCurrency objCurrency in m_objAllCurrencyList) { if (objCurrency.CurrencyAbbr == strCurrencyAbbr) { m_objCurrency = objCurrency; break; } } } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось установить значение валюты.\n\nТекст ошибки: " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return; }
private void SetDefaultValue() { for (int i = 0; i < dgItemList.Rows.Count; i++) { DataGridViewComboBoxCell cmbSrcLoc = ((DataGridViewComboBoxCell)dgItemList.Rows[i].Cells["colSourceLoc"]); foreach (object obj in cmbSrcLoc.Items) { CLocation oloc = (CLocation)obj; cmbSrcLoc.Value = oloc.Loc_OID.Trim(); break; } DataGridViewComboBoxCell cmbSrcInvTyp = ((DataGridViewComboBoxCell)dgItemList.Rows[i].Cells["colSrcInvType"]); foreach (object obj in cmbSrcInvTyp.Items) { cmbSrcInvTyp.Value = obj; break; } DataGridViewComboBoxCell cmbCurrency = ((DataGridViewComboBoxCell)dgItemList.Rows[i].Cells["colCurrency"]); foreach (object obj in cmbCurrency.Items) { CCurrency ocur = (CCurrency)obj; cmbCurrency.Value = ocur.Curr_OID; break; } } }
/// <summary> /// Загружает в дерево кредитные лимиты выбранного клиента для указанной валюты /// </summary> /// <param name="objCurrency">валюта</param> private void LoadCustomerLimitByCurrency(CCurrency objCurrency) { if (objCurrency == null) { return; } try { this.tableLayoutPanelBgrnd.SuspendLayout(); this.tableLayoutPaneltree.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.treeList)).BeginInit(); treeList.Nodes.Clear(); treeListArjive.Nodes.Clear(); if (m_objCreditLimitList != null) { foreach (CCreditLimit objCreditLimit in m_objCreditLimitList) { if ((objCreditLimit.Currency == null) || (objCreditLimit.Currency.ID.CompareTo(objCurrency.ID) != 0)) { continue; } treeList.AppendNode(new object[] { objCreditLimit.Company.Abbr, objCreditLimit.ApprovedCurrencyValue, objCreditLimit.ApprovedDays, objCreditLimit.CurrencyValue, objCreditLimit.Days }, null).Tag = objCreditLimit; foreach (CCompany objItem in listBoxCompany.Items) { if (objItem.ID.CompareTo(objCreditLimit.Company.ID) == 0) { listBoxCompany.Items.Remove(objItem); break; } } } } SetPropertiesModified(false); SetModeReadOnly(true); btnEdit.Enabled = true; btnCancel.Enabled = true; btnCancel.Focus(); this.tableLayoutPanelBgrnd.ResumeLayout(false); this.tableLayoutPaneltree.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.treeList)).EndInit(); } catch (System.Exception f) { SendMessageToLog("Ошибка редактирования кредитного лимита клиента. Текст ошибки: " + f.Message); } finally { m_bDisableEvents = false; EnableCompanyBtns(); } return; }
public CPriceType() : base() { m_bIsActive = false; m_iColumnID = 0; m_objAllCurrencyList = null; m_objCurrency = null; m_strAbr = ""; m_strDescription = ""; m_bIsShowInPrice = false; }
public CCreditLimit() { m_uuidID = System.Guid.Empty; m_objCustomer = null; m_objCompany = null; m_objCurrency = null; m_ApprovedCurrencyValue = 0; m_CurrencyValue = 0; m_ApprovedDays = 0; m_Days = 0; }
public CCreditLimit(System.Guid uuidID, CCustomer objCustomer, CCompany objCompany, CCurrency objCurrency, double mApprovedCurrencyValue, double mCurrencyValue, int iApprovedDays, int iDays) { m_uuidID = uuidID; m_objCustomer = objCustomer; m_objCompany = objCompany; m_objCurrency = objCurrency; m_ApprovedCurrencyValue = mApprovedCurrencyValue; m_CurrencyValue = mCurrencyValue; m_ApprovedDays = iApprovedDays; m_Days = iDays; }
public CResult ReadAll() { List <CCurrency> oList = new List <CCurrency>(); oResult = new CResult(); conn = oConnManager.GetConnection(out s_DBError); if (conn != null) { try { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "Select * from t_Curr order by Curr_OID"; cmd.CommandType = CommandType.Text; SqlDataReader oReader = cmd.ExecuteReader(); if (oReader.HasRows) { while (oReader.Read()) { CCurrency objCurr = new CCurrency(); objCurr.Curr_OID = oReader["Curr_OID"].ToString(); objCurr.Curr_Branch = oReader["Curr_Branch"].ToString(); objCurr.Curr_Code = oReader["Curr_Code"].ToString(); objCurr.Curr_Name = oReader["Curr_Name"].ToString(); oList.Add(objCurr); } } oReader.Close(); oResult.IsSuccess = true; oResult.Data = oList; } catch (SqlException e) { oResult.IsSuccess = false; oResult.ErrMsg = e.Message; } finally { oConnManager.Close(); } } else { oResult.IsSuccess = false; oResult.ErrMsg = s_DBError; } return(oResult); }
public CResult Delete(CCurrency oCurrency) { oResult = new CResult(); conn = oConnManager.GetConnection(out s_DBError); if (conn != null) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.Transaction = oConnManager.BeginTransaction(); try { StringBuilder sBuilder = new StringBuilder(); // sBuilder.Append(""); //sBuilder.Append("Delete from t_Curr where Curr_OID = @Curr_OID"); cmd.CommandText = "sp_Currency_Delete"; //cmd.CommandText = sBuilder.ToString(); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Curr_OID", oCurrency.Curr_OID); cmd.Parameters.Add("@IsSuccess", SqlDbType.Char, 1); cmd.Parameters["@IsSuccess"].Direction = ParameterDirection.ReturnValue; cmd.ExecuteNonQuery(); string st = cmd.Parameters["@IsSuccess"].Value.ToString(); oConnManager.Commit(); oResult.Data = st; oResult.IsSuccess = true; } catch (SqlException e) { string sRollbackError = oConnManager.Rollback(); oResult.IsSuccess = false; oResult.ErrMsg = sRollbackError.Equals("") ? oConnManager.GetErrorMessage(e) : sRollbackError; } finally { oConnManager.Close(); } } else { oResult.IsSuccess = false; oResult.ErrMsg = s_DBError; } return(oResult); }
public CPriceType(System.Guid uuidId, System.String strName, System.String strAbr, System.String strDescription, System.Boolean bIsActive, CCurrency objCurrency, System.Int32 iColumnID, System.Boolean bIsShowInPrice ) { ID = uuidId; Name = strName; m_strAbr = strAbr; m_strDescription = strDescription; m_bIsActive = bIsActive; m_objCurrency = objCurrency; m_iColumnID = iColumnID; m_bIsShowInPrice = bIsShowInPrice; }
private CCurrency Getformdata() { CCurrency oCurrency = new CCurrency(); if (txtCurrOID.Text != "") { oCurrency.Curr_OID = txtCurrOID.Text.Trim(); } oCurrency.Curr_Branch = currentBranch.CompBrn_Code; oCurrency.Curr_Code = txtCode.Text.Trim(); oCurrency.Curr_Name = txtName.Text.Trim(); return(oCurrency); }
private void LLUOMType_SelectedIndexChanged(object sender, EventArgs e) { if (lstCurrency.SelectedIndex != -1) { if (lstCurrency.Items.Count > 0) { CCurrency oCurrency = (CCurrency)lstCurrency.SelectedItem; txtCurrOID.Text = oCurrency.Curr_OID.ToString(); txtCode.Text = oCurrency.Curr_Code; txtName.Text = oCurrency.Curr_Name; FormControlMode(1); } } }
public CResult Create(CCurrency oCurrency) { oResult = new CResult(); conn = oConnManager.GetConnection(out s_DBError); if (conn != null) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.Transaction = oConnManager.BeginTransaction(); try { StringBuilder sBuilder = new StringBuilder(); sBuilder.Append("DECLARE @NextId NCHAR(24);"); sBuilder.Append("EXEC sp_GetNextId 'Curr_OID','Curr', @Curr_Branch, @NextId OUTPUT;"); sBuilder.Append(" Insert into t_Curr values(@NextId,@Curr_Branch,@Curr_Code,@Curr_Name)"); cmd.CommandText = sBuilder.ToString(); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@Curr_Branch", oCurrency.Curr_Branch); cmd.Parameters.AddWithValue("@Curr_Code", oCurrency.Curr_Code); cmd.Parameters.AddWithValue("@Curr_Name", oCurrency.Curr_Name); cmd.ExecuteNonQuery(); oConnManager.Commit(); oResult.IsSuccess = true; } catch (SqlException e) { string sRollbackError = oConnManager.Rollback(); oResult.IsSuccess = false; oResult.ErrMsg = sRollbackError.Equals("") ? oConnManager.GetErrorMessage(e) : sRollbackError; } finally { oConnManager.Close(); } } else { oResult.IsSuccess = false; oResult.ErrMsg = s_DBError; } return(oResult); }
public CResult Update(CCurrency oCurrency) { oResult = new CResult(); conn = oConnManager.GetConnection(out s_DBError); if (conn != null) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.Transaction = oConnManager.BeginTransaction(); try { StringBuilder sBuilder = new StringBuilder(); sBuilder.Append("Update t_Curr set Curr_Branch=@Curr_Branch,Curr_Code=@Curr_Code,Curr_Name=@Curr_Name where Curr_OID=@Curr_OID"); cmd.CommandText = sBuilder.ToString(); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@Curr_OID", oCurrency.Curr_OID); cmd.Parameters.AddWithValue("@Curr_Branch", oCurrency.Curr_Branch); cmd.Parameters.AddWithValue("@Curr_Code", oCurrency.Curr_Code); cmd.Parameters.AddWithValue("@Curr_Name", oCurrency.Curr_Name); cmd.ExecuteNonQuery(); oConnManager.Commit(); oResult.IsSuccess = true; } catch (SqlException e) { string sRollbackError = oConnManager.Rollback(); oResult.IsSuccess = false; oResult.ErrMsg = sRollbackError.Equals("") ? oConnManager.GetErrorMessage(e) : sRollbackError; } finally { oConnManager.Close(); } } else { oResult.IsSuccess = false; oResult.ErrMsg = s_DBError; } return(oResult); }
public CCreditLimitArjive(System.DateTime dtDateUpdate, System.String strActionTypeName, System.String strUserName, System.Guid uuidID, CCustomer objCustomer, CCompany objCompany, CCurrency objCurrency, double mApprovedCurrencyValue, double mCurrencyValue, int iApprovedDays, int iDays) { m_objDateUpdate = dtDateUpdate; m_strActionTypeName = strActionTypeName; m_strUserName = strUserName; ID = uuidID; Customer = objCustomer; Company = objCompany; Currency = objCurrency; ApprovedCurrencyValue = mApprovedCurrencyValue; CurrencyValue = mCurrencyValue; ApprovedDays = iApprovedDays; Days = iDays; }
/// <summary> /// Загружает в m_objAllProductLineList список товарных линий /// </summary> /// <param name="objProfile">профайл</param> /// <param name="cmdSQL">SQL-команда</param> public void InitCurrencyList(UniXP.Common.CProfile objProfile, System.Data.SqlClient.SqlCommand cmdSQL) { try { this.m_objAllCurrencyList = CCurrency.GetCurrencyList(objProfile, cmdSQL); if ((this.m_objAllCurrencyList != null) && (this.m_objAllCurrencyList.Count > 0)) { this.Currency = this.m_objAllCurrencyList[0]; } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось загрузить список валют.\n\nТекст ошибки: " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return; }
public CResult Import(CCurrency oCurrency) { oResult = new CResult(); conn = oConnManager.GetConnection(out s_DBError); if (conn != null) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.Transaction = oConnManager.BeginTransaction(); try { cmd.CommandText = "sp_Currency_Import"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Curr_OID", oCurrency.Curr_OID); cmd.Parameters.AddWithValue("@Curr_Branch", oCurrency.Curr_Branch); cmd.Parameters.AddWithValue("@Curr_Code", oCurrency.Curr_Code); cmd.Parameters.AddWithValue("@Curr_Name", oCurrency.Curr_Name); cmd.ExecuteNonQuery(); oConnManager.Commit(); oResult.IsSuccess = true; } catch (SqlException e) { string sRollbackError = oConnManager.Rollback(); oResult.IsSuccess = false; oResult.ErrMsg = sRollbackError.Equals("") ? oConnManager.GetErrorMessage(e) : sRollbackError; } finally { oConnManager.Close(); } } else { oResult.IsSuccess = false; oResult.ErrMsg = s_DBError; } return(oResult); }
public static void Main(string[] args) { // Read the API key from a file. This prevents my personal API key // from being uploaded to Github. // Normally, I would just do this: // var ApiKey = "<My API Key Here>"; var ApiKey = System.IO.File.ReadAllText(@"/Users/harrison/Projects/HarrisonFinance/HarrisonFinance/QuandlApiKey.txt").Trim(); /* * // Build a new Quandl object. * var Quandl = new CQuandl(ApiKey); * * // Setup a new request. * var TimeSeriesRequest = new CTimeSeriesRequest("WIKI", "FB"); * * // Add parameters to the request. * TimeSeriesRequest.Collapse = eTimeSeriesCollapse.Monthly; * TimeSeriesRequest.Limit = 10; * * // Go fetch the results from Quandl. * var Results = Quandl.GetTimeSeries(TimeSeriesRequest); * * Console.WriteLine(Results); */ var M1 = new CMoney(100.0, eCurrency.USD); var C1 = CCurrency.GetCurrency(eCurrency.USD); Console.WriteLine("These two lines should be the same."); Console.WriteLine(M1.Currency.ConversionToUSDRate); Console.WriteLine(C1.ConversionToUSDRate); var Temp = "String"; Temp.Publish(new CCurrencyUpdate()); Console.WriteLine("The lines below should be the same BUT different from above."); Console.WriteLine(M1.Currency.ConversionToUSDRate); Console.WriteLine(C1.ConversionToUSDRate); }
private void LoadUOMType() { CCurrency oCurrency = Getformdata(); CCurrencyBO oCurrencyBO = new CCurrencyBO(); CResult oresult = new CResult(); oresult = oCurrencyBO.ReadAll(); if (oresult.IsSuccess) { List <CCurrency> oList = new List <CCurrency>(); oList = oresult.Data as List <CCurrency>; //if (oList.Count > 0) //{ lstCurrency.DisplayMember = "Curr_Code"; lstCurrency.ValueMember = "Curr_OID"; lstCurrency.DataSource = oList; //} } else { MessageBox.Show(oresult.ErrMsg); } }
/// <summary> /// Возвращает приложение к расчету /// </summary> /// <param name="objProfile">профайл</param> /// <param name="cmdSQL">SQL-команда</param> /// <returns>список расчетов</returns> public static List<CCalcOrderItem> GetCalcOrderItemList(UniXP.Common.CProfile objProfile, System.Data.SqlClient.SqlCommand cmdSQL, System.Guid CalcOrderID) { List<CCalcOrderItem> objList = new List<CCalcOrderItem>(); System.Data.SqlClient.SqlConnection DBConnection = null; System.Data.SqlClient.SqlCommand cmd = null; try { if (cmdSQL == null) { DBConnection = objProfile.GetDBSource(); if (DBConnection == null) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить соединение с базой данных.", "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return objList; } cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = DBConnection; cmd.CommandType = System.Data.CommandType.StoredProcedure; } else { cmd = cmdSQL; cmd.Parameters.Clear(); } cmd.CommandText = System.String.Format("[{0}].[dbo].[usp_GetCalcOrderListItemsFromERP_Report]", objProfile.GetOptionsDllDBName()); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CALCORDER_GUID", System.Data.SqlDbType.UniqueIdentifier)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000)); cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output; cmd.Parameters["@CALCORDER_GUID"].Value = CalcOrderID; System.Data.SqlClient.SqlDataReader rs = cmd.ExecuteReader(); if (rs.HasRows) { CProduct objProduct = null; CCurrency objCurrency = null; CCountry objCountry = null; CProductTradeMark objProductTradeMark = null; CProductType objProductType = null; CProductSubType objProductSubType = null; CMeasure objMeasure = null; CCalcOrderItem objCalcOrderItem = null; while (rs.Read()) { objCurrency = null; objCountry = null; objProductTradeMark = null; objProductType = null; objProductSubType = null; // товарная марка objProductTradeMark = new CProductTradeMark(); objProductTradeMark.Name = (System.String)rs["OWNER_NAME"]; objProductTradeMark.ID_Ib = System.Convert.ToInt32(rs["OWNER_ID"]); objProductTradeMark.ProductVtm = new CProductVtm(); objProductTradeMark.ProductVtm.ID_Ib = System.Convert.ToInt32(rs["VTM_ID"]); objProductTradeMark.ProductVtm.Name = (System.String)rs["VTM_NAME"]; objProductTradeMark.ProcessDayCount = System.Convert.ToInt32(rs["OWNER_PROCESSDAYSCOUNT"]); // товарная группа objProductType = new CProductType(); objProductType.ID_Ib = System.Convert.ToInt32(rs["PARTTYPE_ID"]); objProductType.Name = (System.String)rs["PARTTYPE_NAME"]; // товарная подгруппа objProductSubType = new CProductSubType(); objProductSubType.ID_Ib = System.Convert.ToInt32(rs["PARTSUBTYPE_ID"]); objProductSubType.Name = (System.String)rs["PARTSUBTYPE_NAME"]; objProductSubType.ProductLine = new CProductLine(); objProductSubType.ProductLine.ID_Ib = System.Convert.ToInt32(rs["PARTSECSUBTYPE_ID"]); objProductSubType.ProductLine.Name = (System.String)rs["PARTSECSUBTYPE_NAME"]; // страна производства objCountry = new CCountry(); if (rs["COUNTRY_PROD_ID"] != System.DBNull.Value) { objCountry.Name = (System.String)rs["COUNTRY_NAME"]; } // валюта objCurrency = new CCurrency( System.Guid.Empty, "", ( (rs["CURRENCY_CODE"] == System.DBNull.Value) ? "" : (System.String)rs["CURRENCY_CODE"]), "" ); // единица измерения objMeasure = new CMeasure(); objMeasure.Name = (System.String)rs["MEASURE_NAME"]; // товар objProduct = new CProduct(System.Guid.Empty, System.Convert.ToInt32(rs["PARTS_ID"]), (System.String)rs["PARTS_NAME"], (System.String)rs["PARTS_ORIGNAME"], (System.String)rs["PARTS_NAME"], (System.String)rs["PARTS_ARTICLE"], objProductTradeMark, objProductType, objProductSubType, objCountry, objCurrency, ((rs["PARTS_VENDORPRICE"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PARTS_VENDORPRICE"])), ((rs["PARTS_BOXQTY"] == System.DBNull.Value) ? 0 : System.Convert.ToInt32(rs["PARTS_BOXQTY"])), ((rs["PARTS_PACKQTY"] == System.DBNull.Value) ? 0 : System.Convert.ToInt32(rs["PARTS_PACKQTY"])), ((rs["PARTS_PACKQTYFORCALC"] == System.DBNull.Value) ? 0 : System.Convert.ToInt32(rs["PARTS_PACKQTYFORCALC"])), ((rs["PARTS_WEIGHT"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PARTS_WEIGHT"])), ((rs["PARTS_PAPERCONTAINERWEIGHT"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PARTS_PAPERCONTAINERWEIGHT"])), ((rs["PARTS_PLASTICCONTAINERWEIGHT"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PARTS_PLASTICCONTAINERWEIGHT"])), ((rs["PARTS_ALCOHOLICCONTENTPERCENT"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PARTS_ALCOHOLICCONTENTPERCENT"])), true, // ((rs["Parts_IsActive"] == System.DBNull.Value) ? false : System.Convert.ToBoolean(rs["Parts_IsActive"])), ((rs["PARTS_NOTVALID"] == System.DBNull.Value) ? false : System.Convert.ToBoolean(rs["PARTS_NOTVALID"])), ((rs["PARTS_ACTUALNOTVALID"] == System.DBNull.Value) ? false : System.Convert.ToBoolean(rs["PARTS_ACTUALNOTVALID"])), "", //((rs["Parts_Certificate"] == System.DBNull.Value) ? "" : (System.String)rs["Parts_Certificate"]), ((rs["PARTS_CODETNVD"] == System.DBNull.Value) ? "" : (System.String)rs["PARTS_CODETNVD"]), ((rs["PARTS_REFERENCE"] == System.DBNull.Value) ? "" : (System.String)rs["PARTS_REFERENCE"]), objMeasure, null, 0 ); if (rs["PARTS_BARCODE"] != System.DBNull.Value) { objProduct.BarcodeList = new List<string>(); objProduct.BarcodeList.Add((System.String)rs["PARTS_BARCODE"]); } objCalcOrderItem = new CCalcOrderItem(); objCalcOrderItem.objProduct = objProduct; objCalcOrderItem.PartsIsNew = System.Convert.ToBoolean(rs["PARTS_IS_NEW"]); objCalcOrderItem.PLAN_FOR_3MONTH = ((rs["PLAN_FOR_3MONTH"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PLAN_FOR_3MONTH"])); objCalcOrderItem.PLAN_FOR_3MONTH_IN_WEEK_AVG = ((rs["PLAN_FOR_3MONTH_IN_WEEK_AVG"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PLAN_FOR_3MONTH_IN_WEEK_AVG"])); objCalcOrderItem.PREDICTION_FOR_3MONTH = ((rs["PREDICTION_FOR_3MONTH"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PREDICTION_FOR_3MONTH"])); objCalcOrderItem.PREDICTION_FOR_3MONTH_IN_WEEK_AVG = ((rs["PREDICTION_FOR_3MONTH_IN_WEEK_AVG"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["PREDICTION_FOR_3MONTH_IN_WEEK_AVG"])); objCalcOrderItem.SALE_FOR_3MONTH = ((rs["SALE_FOR_3MONTH"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["SALE_FOR_3MONTH"])); objCalcOrderItem.SALE_FOR_3MONTH_IN_WEEK_AVG = ((rs["SALE_FOR_3MONTH_IN_WEEK_AVG"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["SALE_FOR_3MONTH_IN_WEEK_AVG"])); objCalcOrderItem.QUANTITY_IN_ORDER = ((rs["QUANTITY_IN_ORDER"] == System.DBNull.Value) ? 0 : System.Convert.ToInt32(rs["QUANTITY_IN_ORDER"])); objCalcOrderItem.QUANTITY_IN_STOCK = ((rs["QUANTITY_IN_STOCK"] == System.DBNull.Value) ? 0 : System.Convert.ToInt32(rs["QUANTITY_IN_STOCK"])); objCalcOrderItem.QUANTITY_IN_WAY = ((rs["QUANTITY_IN_WAY"] == System.DBNull.Value) ? 0 : System.Convert.ToInt32(rs["QUANTITY_IN_WAY"])); objCalcOrderItem.QUANTITY_MIN_STOCK_IN_WEEK = ((rs["QUANTITY_MIN_STOCK_IN_WEEK"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["QUANTITY_MIN_STOCK_IN_WEEK"])); objCalcOrderItem.KOEFF_SEASON_AVG = ((rs["KOEFF_SEASON_AVG"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["KOEFF_SEASON_AVG"])); objCalcOrderItem.KOEFF_DIV = ((rs["KOEFF_DIV"] == System.DBNull.Value) ? 0 : System.Convert.ToDecimal(rs["KOEFF_DIV"])); objCalcOrderItem.ABC = ((rs["ABC"] == System.DBNull.Value) ? "" : System.Convert.ToString(rs["ABC"])); objList.Add(objCalcOrderItem); } } rs.Dispose(); if (cmdSQL == null) { cmd.Dispose(); DBConnection.Close(); } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить приложение к расчету.\n\nТекст ошибки : " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return objList; }
static async Task Main(string[] args) { /***********************/ /********Example********/ /***********************/ /*Public API*/ string apiName; var apiKey = new ExmoApi("K", "S"); string tradeCouples = "LTC_RUB"; int? limit = 10; ///<summary>trades /// <remarks>Список сделок по валютной паре</remarks> /// <param name="tradeCouples">одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)</param> /// <param name="limit">кол-во отображаемых позиций (по умолчанию 100, максимум 1000)</param> ///<returns>ResultList type=CTrade ></returns> /// </summary> IHelperPublicAPI <CTrades> testTradesApi = new CHelperPublicAPI <CTrades>(); await testTradesApi.GetResultAsync("trades", null, tradeCouples, limit); //testTradesApiResult.Wait(); Console.WriteLine($"Список сделок по валютной паре {tradeCouples}:"); foreach (var tmp in testTradesApi.ResultList) { Console.WriteLine($"{tmp.TradeId} {tmp.Type} {tmp.Price} {tmp.Quantity} {tmp.Amount} {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(tmp.Date)}"); } ///<summary>order_book /// <remarks>Книга ордеров по валютной паре</remarks> /// <param name="tradeCouples">одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)</param> /// <param name="limit">кол-во отображаемых позиций (по умолчанию 100, максимум 1000)</param> ///<returns>ResultMethod type=COrderBook></returns> /// </summary> IHelperPublicAPI <COrderBook> testOrderBookApi = new CHelperPublicAPI <COrderBook>(); await testOrderBookApi.GetResultAsync("order_book", null, tradeCouples, limit); //testOrderBookApiTask.Wait(); Console.WriteLine("\nКнига ордеров по валютной паре:"); Console.WriteLine($"{testOrderBookApi.ResultMetod.AskQuantity} {testOrderBookApi.ResultMetod.AskAmount} {testOrderBookApi.ResultMetod.AskTop}, {testOrderBookApi.ResultMetod.BidQuantity}, " + $"{testOrderBookApi.ResultMetod.BidAmount}, {testOrderBookApi.ResultMetod.BidTop}"); Console.WriteLine("\nСписок ордеров на покупку:"); foreach (var i in testOrderBookApi.ResultMetod.Ask) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } Console.WriteLine("\nСписок ордеров на продажу:"); foreach (var i in testOrderBookApi.ResultMetod.Bid) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } ///<summary>ticker /// <remarks>Cтатистика цен и объемов торгов по валютным парам</remarks> ///<returns>ResultMethod type=CTicker</returns> /// </summary> IHelperPublicAPI <CTicker> testTickerApi = new CHelperPublicAPI <CTicker>(); await testTickerApi.GetResultAsync("ticker", null, tradeCouples); //testTickerApiTask.Wait(); Console.WriteLine($"\nCтатистика цен и объемов торгов по валютной паре {tradeCouples}:"); Console.WriteLine($"{testTickerApi.ResultMetod.High}, {testTickerApi.ResultMetod.Low}, {testTickerApi.ResultMetod.Avg}, " + $"{testTickerApi.ResultMetod.Vol}, {testTickerApi.ResultMetod.VolCurr}, {testTickerApi.ResultMetod.LastTrade}, " + $"{testTickerApi.ResultMetod.BuyPrice}, {testTickerApi.ResultMetod.SellPrice}, " + $"{(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(testTickerApi.ResultMetod.Updated)}"); ///<summary>pair_settings /// <remarks>Настройки валютных пар</remarks> /// <param name="tradeCouples">одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)</param> ///<returns>ResultMethod type=CPairSettings></returns> /// </summary> IHelperPublicAPI <CPairSettings> testPairSettingApi = new CHelperPublicAPI <CPairSettings>(); await testPairSettingApi.GetResultAsync("pair_settings", null, tradeCouples); //testPairSettingApiTask.Wait(); Console.WriteLine($"\nНастройки валютной пары {tradeCouples}:"); Console.WriteLine($"{testPairSettingApi.ResultMetod.MinQuantity}, {testPairSettingApi.ResultMetod.MaxQuantity} " + $"{testPairSettingApi.ResultMetod.MinPrice}, {testPairSettingApi.ResultMetod.MaxPrice}, " + $"{testPairSettingApi.ResultMetod.MinAmount}, {testPairSettingApi.ResultMetod.MaxAmount}"); ///<summary>currency /// <remarks>Cписок валют биржи</remarks> ///<returns>CurrencyList type=IList<string>></returns> /// </summary> await CCurrency.GetCurrencyAsync(null); //currencyTask.Wait(); Console.WriteLine("\nCписок валют биржи:"); foreach (var i in CCurrency.CurrencyList) { Console.WriteLine(i); } //<summary>currencyPair /// <remarks>Cписок валютных пар (не входит в ExmoApi)</remarks> ///<returns>CurrencyPairList type=IList<string>></returns> /// </summary> await CCurrency.GetCurrencyPairListAsync(null); //currencyPairTaskTask.Wait(); Console.WriteLine("\nCписок валютных пар биржи:"); foreach (var i in CCurrency.CurrencyPairList) { Console.WriteLine(i); } /*Authenticated API*/ apiKey = new ExmoApi("K", "S-"); tradeCouples = "BTC_USD"; limit = 10; decimal quantity = 0.001M; //BTC decimal price = 20000M; //Для продажи BTC string type = "sell"; ///<summary>user_info /// <remarks>Получение информации об аккаунте пользователя</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> ///<returns>ResultMethod type=CUserInfo ></returns> /// </summary> IHelperAuthAPI <CUserInfo> testUserInfoApi = new CHelperAuthAPI <CUserInfo>(); await testUserInfoApi.GetResultAsync("user_info", apiKey); Console.WriteLine("\nИнформация об аккаунте пользователя"); Console.WriteLine($"{testUserInfoApi.ResultMetod.Uid} {testUserInfoApi.ResultMetod.ServerDate}"); //Проход по свойствам класса Balances Console.WriteLine("\nБаланс:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Balances.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Balances, null)}"); } //Проход по свойствам класса Reserved Console.WriteLine($"\nВ ордерах:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Reserved.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Reserved, null)}"); } ///<summary>order_create /// <remarks>Создание ордера</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// tradeCouples - валютная пара /// quantity - кол-во по ордеру /// price - цена по ордеру /// type - тип ордера, может принимать следующие значения: /// buy - ордер на покупку /// sell - ордер на продажу /// market_buy - ордера на покупку по рынку /// market_sell - ордер на продажу по рынку /// market_buy_total - ордер на покупку по рынку на определенную сумму /// market_sell_total - ордер на продажу по рынку на определенную сумму</param> /// <param name="tradeCouples">Валютная пара</param> ///<returns>ResultMethod type=COrderCreate ></returns> /// </summary> IHelperAuthAPI <COrderCreate> testOrderCreateApi = new CHelperAuthAPI <COrderCreate>(); await testOrderCreateApi.GetResultAsync("order_create", apiKey, new Dictionary <string, string>() { { "pair", tradeCouples.ToString(CultureInfo.InvariantCulture) }, { "quantity", quantity.ToString(CultureInfo.InvariantCulture) }, { "price", price.ToString(CultureInfo.InvariantCulture) }, { "type", type } }, tradeCouples); Console.WriteLine("\nСоздание ордера:"); if (testOrderCreateApi.ResultMetod.Result) { Console.WriteLine($"\nОрдер создан:" + $"\nПара: {tradeCouples}" + $"\norder_id: {testOrderCreateApi.ResultMetod.OrderId}" + $"\nОперация: {type}" + $"\nЦена: {price}" + $"\nКоличество: {quantity}" + $"\nСумма: {price*quantity}"); } else { Console.WriteLine($"\nОрдер не создан!!!" + $"\nОшибка: {testOrderCreateApi.ResultMetod.Error}"); } var orderId = testOrderCreateApi.ResultMetod.OrderId; //<summary>order_cancel /// <remarks>Отмена ордера</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// order_id - идентификатор ордера </param> ///<returns>ResultMethod type=COrderCancel ></returns> /// </summary> IHelperAuthAPI <COrderCancel> testOrderCancelApi = new CHelperAuthAPI <COrderCancel>(); await testOrderCancelApi.GetResultAsync("order_cancel", apiKey, new Dictionary <string, string>() { { "order_id", orderId.ToString(CultureInfo.InvariantCulture) } }); Console.WriteLine($"\nОтмена ордера {orderId}:"); if (testOrderCancelApi.ResultMetod.Result) { Console.WriteLine($"\nОрдер c номером {orderId} - отменен."); } else { Console.WriteLine($"\nОрдер не отменен!!!" + $"\nОшибка: {testOrderCancelApi.ResultMetod.Error}"); } //<summary>user_open_orders /// <remarks>Отмена ордера</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> ///<returns>ResultMethod type=CUserOpenOrders ></returns> /// </summary> IHelperAuthAPI <CUserOpenOrders> testUserOpenOrdersApi = new CHelperAuthAPI <CUserOpenOrders>(); await testUserOpenOrdersApi.GetResultAsync("user_open_orders", apiKey); foreach (var res in testUserOpenOrdersApi.ResultList) { Console.WriteLine($"\nСписок открытых ордеров пользователя:" + $"\nВалютная пара: {res.TradeCouples}" + $"\nOrder_id: {res.OrderId}" + $"\nСоздан: {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(res.CreatedTime)}" + $"\nТип: {res.Type}" + $"\nЦена: {res.Price}" + $"\nКоличество: {res.Quantity}" + $"\nСумма: {res.Amount}"); } //<summary>user_trades /// <remarks>Получение сделок пользователя</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// tradeCouples - одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR) /// limit - кол-во возвращаемых сделок (по умолчанию 100, максимум 10 000) /// offset - смещение от последней сделки (по умолчанию 0)</param> ///<returns>ResultMethod type=CUserTrades ></returns> /// </summary> IHelperAuthAPI <CUserTrades> testUserTradesApi = new CHelperAuthAPI <CUserTrades>(); await testUserTradesApi.GetResultAsync("user_trades", apiKey, new Dictionary <string, string>() { { "pair", "ETC_USD, BTC_USD" }, { "limit", "100" }, { "offset", "0" } }); Console.WriteLine("\nСделки пользователя:"); foreach (var uT in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {uT.TradeCouples}" + $"\ntrade_id: {uT.TradeId}" + $"\ndate : {uT.Date}" + $"\ntype : {uT.Type}" + $"\norder_id: {uT.OrderId}" + $"\nquantity : {uT.Quantity}" + $"\nprice : {uT.Price}" + $"\namount : {uT.Amount}"); } //<summary>user_cancelled_orders /// <remarks>Получение отмененных ордеров пользователя</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// limit - кол-во возвращаемых сделок (по умолчанию 100, максимум 10 000) /// offset - смещение от последней сделки (по умолчанию 0)</param> ///<returns>ResultMethod type=CUserTrades ></returns> /// </summary> IHelperAuthAPI <CUserCancelledOrders> testUserCansOrdersApi = new CHelperAuthAPI <CUserCancelledOrders>(); await testUserCansOrdersApi.GetResultAsync("user_cancelled_orders", apiKey, new Dictionary <string, string>() { { "limit", "10" }, { "offset", "0" } }); Console.WriteLine("\nОтмененные сделки пользователя:"); foreach (var canceledOrder in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {canceledOrder.TradeCouples}" + $"\ndate : {canceledOrder.Date}" + $"\ntype : {canceledOrder.Type}" + $"\norder_id: {canceledOrder.OrderId}" + $"\nquantity : {canceledOrder.Quantity}" + $"\nprice : {canceledOrder.Price}" + $"\namount : {canceledOrder.Amount}"); } Console.ReadLine(); }
static async Task Main(string[] args) { /***********************/ /********Example********/ /***********************/ /*Public API*/ var apiKey = new ExmoApi("K", "S"); string tradeCouples = "LTC_RUB"; int? limit = 10; ///<summary>trades /// <remarks>Список сделок по валютной паре</remarks> /// </summary> IHelperPublicAPI <CTrades> testTradesApi = new CHelperPublicAPI <CTrades>(); await testTradesApi.GetResultAsync("trades", null, tradeCouples, limit); //testTradesApiResult.Wait(); Console.WriteLine($"Список сделок по валютной паре {tradeCouples}:"); foreach (var tmp in testTradesApi.ResultList) { Console.WriteLine($"{tmp.TradeId} {tmp.Type} {tmp.Price} {tmp.Quantity} {tmp.Amount} {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(tmp.Date)}"); } ///<summary>order_book /// <remarks>Книга ордеров по валютной паре</remarks>> /// </summary> IHelperPublicAPI <COrderBook> testOrderBookApi = new CHelperPublicAPI <COrderBook>(); await testOrderBookApi.GetResultAsync("order_book", null, tradeCouples, limit); //testOrderBookApiTask.Wait(); Console.WriteLine("\nКнига ордеров по валютной паре:"); Console.WriteLine($"{testOrderBookApi.ResultMetod.AskQuantity} {testOrderBookApi.ResultMetod.AskAmount} {testOrderBookApi.ResultMetod.AskTop}, {testOrderBookApi.ResultMetod.BidQuantity}, " + $"{testOrderBookApi.ResultMetod.BidAmount}, {testOrderBookApi.ResultMetod.BidTop}"); Console.WriteLine("\nСписок ордеров на покупку:"); foreach (var i in testOrderBookApi.ResultMetod.Ask) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } Console.WriteLine("\nСписок ордеров на продажу:"); foreach (var i in testOrderBookApi.ResultMetod.Bid) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } ///<summary>ticker /// <remarks>Cтатистика цен и объемов торгов по валютным парам</remarks> /// </summary> IHelperPublicAPI <CTicker> testTickerApi = new CHelperPublicAPI <CTicker>(); await testTickerApi.GetResultAsync("ticker", null, tradeCouples); //testTickerApiTask.Wait(); Console.WriteLine($"\nCтатистика цен и объемов торгов по валютной паре {tradeCouples}:"); Console.WriteLine($"{testTickerApi.ResultMetod.High}, {testTickerApi.ResultMetod.Low}, {testTickerApi.ResultMetod.Avg}, " + $"{testTickerApi.ResultMetod.Vol}, {testTickerApi.ResultMetod.VolCurr}, {testTickerApi.ResultMetod.LastTrade}, " + $"{testTickerApi.ResultMetod.BuyPrice}, {testTickerApi.ResultMetod.SellPrice}, " + $"{(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(testTickerApi.ResultMetod.Updated)}"); ///<summary>pair_settings /// <remarks>Настройки валютных пар</remarks> /// </summary> IHelperPublicAPI <CPairSettings> testPairSettingApi = new CHelperPublicAPI <CPairSettings>(); await testPairSettingApi.GetResultAsync("pair_settings", null, tradeCouples); //testPairSettingApiTask.Wait(); Console.WriteLine($"\nНастройки валютной пары {tradeCouples}:"); Console.WriteLine($"{testPairSettingApi.ResultMetod.MinQuantity}, {testPairSettingApi.ResultMetod.MaxQuantity} " + $"{testPairSettingApi.ResultMetod.MinPrice}, {testPairSettingApi.ResultMetod.MaxPrice}, " + $"{testPairSettingApi.ResultMetod.MinAmount}, {testPairSettingApi.ResultMetod.MaxAmount}"); ///<summary>currency /// <remarks>Cписок валют биржи</remarks> /// </summary> await CCurrency.GetCurrencyAsync(null); //currencyTask.Wait(); Console.WriteLine("\nCписок валют биржи:"); foreach (var i in CCurrency.CurrencyList) { Console.WriteLine(i); } //<summary>currencyPair /// <remarks>Cписок валютных пар (не входит в ExmoApi)</remarks> /// </summary> await CCurrency.GetCurrencyPairListAsync(null); //currencyPairTaskTask.Wait(); Console.WriteLine("\nCписок валютных пар биржи:"); foreach (var i in CCurrency.CurrencyPairList) { Console.WriteLine(i); } /*Authenticated API*/ tradeCouples = "BTC_USD"; limit = 10; decimal quantity = 0.001M; //BTC decimal price = 20000M; //Для продажи BTC string type = "sell"; ///<summary>user_info /// <remarks>Получение информации об аккаунте пользователя</remarks> /// </summary> IHelperAuthAPI <CUserInfo> testUserInfoApi = new CHelperAuthAPI <CUserInfo>(); await testUserInfoApi.GetResultAsync("user_info", apiKey); Console.WriteLine("\nИнформация об аккаунте пользователя"); Console.WriteLine($"{testUserInfoApi.ResultMetod.Uid} {testUserInfoApi.ResultMetod.ServerDate}"); //Проход по свойствам класса Balances Console.WriteLine("\nБаланс:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Balances.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Balances, null)}"); } //Проход по свойствам класса Reserved Console.WriteLine($"\nВ ордерах:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Reserved.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Reserved, null)}"); } ///<summary>order_create /// <remarks>Создание ордера</remarks> /// </summary> IHelperAuthAPI <COrderCreate> testOrderCreateApi = new CHelperAuthAPI <COrderCreate>(); await testOrderCreateApi.GetResultAsync("order_create", apiKey, new Dictionary <string, string>() { { "pair", tradeCouples.ToString(CultureInfo.InvariantCulture) }, { "quantity", quantity.ToString(CultureInfo.InvariantCulture) }, { "price", price.ToString(CultureInfo.InvariantCulture) }, { "type", type } }, tradeCouples); Console.WriteLine("\nСоздание ордера:"); if (testOrderCreateApi.ResultMetod.Result) { Console.WriteLine($"\nОрдер создан:" + $"\nПара: {tradeCouples}" + $"\norder_id: {testOrderCreateApi.ResultMetod.OrderId}" + $"\nОперация: {type}" + $"\nЦена: {price}" + $"\nКоличество: {quantity}" + $"\nСумма: {price*quantity}"); } else { Console.WriteLine($"\nОрдер не создан!!!" + $"\nОшибка: {testOrderCreateApi.ResultMetod.Error}"); } var orderId = testOrderCreateApi.ResultMetod.OrderId; //<summary>user_open_orders /// <remarks>Получение списока открытых ордеров пользователя</remarks> /// </summary> IHelperAuthAPI <CUserOpenOrders> testUserOpenOrdersApi = new CHelperAuthAPI <CUserOpenOrders>(); await testUserOpenOrdersApi.GetResultAsync("user_open_orders", apiKey); foreach (var res in testUserOpenOrdersApi.ResultList) { Console.WriteLine($"\nСписок открытых ордеров пользователя:" + $"\nВалютная пара: {res.TradeCouples}" + $"\nOrder_id: {res.OrderId}" + $"\nСоздан: {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(res.CreatedTime)}" + $"\nТип: {res.Type}" + $"\nЦена: {res.Price}" + $"\nКоличество: {res.Quantity}" + $"\nСумма: {res.Amount}"); } /* ///<summary>order_cancel * /// <remarks>Отмена ордера</remarks> * /// </summary> * IHelperAuthAPI<COrderCancel> testOrderCancelApi = new CHelperAuthAPI<COrderCancel>(); * await testOrderCancelApi.GetResultAsync("order_cancel", apiKey, * new Dictionary<string, string>() * { * {"order_id", orderId.ToString(CultureInfo.InvariantCulture)} * }); * Console.WriteLine($"\nОтмена ордера {orderId}:"); * if (testOrderCancelApi.ResultMetod.Result) * Console.WriteLine($"\nОрдер c номером {orderId} - отменен."); * else * { * Console.WriteLine($"\nОрдер не отменен!!!" + * $"\nОшибка: {testOrderCancelApi.ResultMetod.Error}"); * } */ //<summary>user_trades /// <remarks>Получение сделок пользователя</remarks> /// </summary> IHelperAuthAPI <CUserTrades> testUserTradesApi = new CHelperAuthAPI <CUserTrades>(); await testUserTradesApi.GetResultAsync("user_trades", apiKey, new Dictionary <string, string>() { { "pair", "ETC_USD, BTC_USD" }, { "limit", "1000" }, { "offset", "100" } }); Console.WriteLine("\nСделки пользователя:"); foreach (var uT in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {uT.TradeCouples}" + $"\ntrade_id: {uT.TradeId}" + $"\ndate : {uT.Date}" + $"\ntype : {uT.Type}" + $"\norder_id: {uT.OrderId}" + $"\nquantity : {uT.Quantity}" + $"\nprice : {uT.Price}" + $"\namount : {uT.Amount}"); } ///<summary>user_cancelled_orders /// <remarks>Получение отмененных ордеров пользователя</remarks> ///</summary> IHelperAuthAPI <CUserCancelledOrders> testUserCansOrdersApi = new CHelperAuthAPI <CUserCancelledOrders>(); await testUserCansOrdersApi.GetResultAsync("user_cancelled_orders", apiKey, new Dictionary <string, string>() { { "limit", "100" }, { "offset", "0" } }); Console.WriteLine("\nОтмененные сделки пользователя:"); foreach (var canceledOrder in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {canceledOrder.TradeCouples}" + $"\ndate : {canceledOrder.Date}" + $"\ntype : {canceledOrder.Type}" + $"\norder_id: {canceledOrder.OrderId}" + $"\nquantity : {canceledOrder.Quantity}" + $"\nprice : {canceledOrder.Price}" + $"\namount : {canceledOrder.Amount}"); } ///<summary>order_trades /// <remarks>Получение истории сделок ордера</remarks> /// </summary> IHelperAuthAPI <COrderTrades> testCOrderTradesApi = new CHelperAuthAPI <COrderTrades>(); await testCOrderTradesApi.GetResultAsync("order_trades", apiKey, new Dictionary <string, string>() { { "ordr_id", orderId.ToString(CultureInfo.InvariantCulture) } }); Console.WriteLine($"История сделок ордера"); Console.ReadLine(); }
/// <summary> /// Возвращает список типов цен /// </summary> /// <param name="objProfile">профайл</param> /// <param name="cmdSQL">SQL-команда</param> /// <returns>список типов цен</returns> public static List <CPriceType> GetPriceTypeList(UniXP.Common.CProfile objProfile, System.Data.SqlClient.SqlCommand cmdSQL) { List <CPriceType> objList = new List <CPriceType>(); System.Data.SqlClient.SqlConnection DBConnection = null; System.Data.SqlClient.SqlCommand cmd = null; try { if (cmdSQL == null) { DBConnection = objProfile.GetDBSource(); if (DBConnection == null) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить соединение с базой данных.", "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return(objList); } cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = DBConnection; cmd.CommandType = System.Data.CommandType.StoredProcedure; } else { cmd = cmdSQL; cmd.Parameters.Clear(); } cmd.CommandText = System.String.Format("[{0}].[dbo].[usp_GetPartsubtypePriceType]", objProfile.GetOptionsDllDBName()); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000)); cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output; System.Data.SqlClient.SqlDataReader rs = cmd.ExecuteReader(); if (rs.HasRows) { while (rs.Read()) { objList.Add(new CPriceType( (System.Guid)rs["PartsubtypePriceType_Guid"], (System.String)rs["PartsubtypePriceType_Name"], (System.String)rs["PartsubtypePriceType_Abbr"], ((rs["PartsubtypePriceType_Description"] == System.DBNull.Value) ? "" : (System.String)rs["PartsubtypePriceType_Description"]), System.Convert.ToBoolean(rs["PartsubtypePriceType_IsActive"]), new CCurrency( (System.Guid)rs["Currency_Guid"], (System.String)rs["Currency_Name"], (System.String)rs["Currency_Abbr"], (System.String)rs["Currency_Code"] ), System.Convert.ToInt32(rs["PartsubtypePriceType_ColumnIdDefault"]), System.Convert.ToBoolean(rs["PartsubtypePriceType_ShowInPriceList"]) )); } } rs.Dispose(); List <CCurrency> objCurrencyList = CCurrency.GetCurrencyList(objProfile, cmd); if ((objList != null) && (objCurrencyList != null)) { foreach (CPriceType objSPriceType in objList) { objSPriceType.m_objAllCurrencyList = objCurrencyList; } } if (cmdSQL == null) { cmd.Dispose(); DBConnection.Close(); } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить список типов цен.\n\nТекст ошибки: " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return(objList); }
public async Task GetResultAsync(string method, ExmoApi api, Dictionary <string, string> dic = null, string tradeCouples = "BTC_USD") { if (dic == null) { dic = new Dictionary <string, string>(); } string jsonQuery = default; JObject objQuery = default; switch (method) { case "user_info": await AssistingMethod(method, api, dic); return; case "order_create": await AssistingMethod(method, api, dic); return; case "order_cancel": await AssistingMethod(method, api, dic); return; case "user_open_orders": jsonQuery = await api.ApiQueryAsync(method, dic); objQuery = JObject.Parse(jsonQuery.ToString()); IList <T> resultUserOpenOrders = new List <T>(); await CCurrency.GetCurrencyPairListAsync(null); foreach (var c in CCurrency.CurrencyPairList) { if (objQuery.ToString().Contains(c)) { IList <T> tempList = JsonConvert.DeserializeObject <T[]>(objQuery[c].ToString()); foreach (var tmp in tempList) { resultUserOpenOrders.Add(tmp); } } } ResultList = resultUserOpenOrders; return; case "user_trades": List <T> resultUserTrades = new List <T>(); tradeCouples = dic["pair"]; tradeCouples = tradeCouples.Replace(" ", string.Empty).Trim().Replace(" ", string.Empty); string[] pairs = tradeCouples.Split(','); foreach (var p in pairs) { dic["pair"] = p; jsonQuery = await api.ApiQueryAsync(method, dic); objQuery = JObject.Parse(jsonQuery.ToString()); IList <T> tempList = JsonConvert.DeserializeObject <T[]>(objQuery[p].ToString()); resultUserTrades.AddRange(tempList); dic.Remove("nonce"); } ResultList = resultUserTrades; return; case "user_cancelled_orders": jsonQuery = await api.ApiQueryAsync(method, dic); var jarray = JArray.Parse(jsonQuery); ResultList = JsonConvert.DeserializeObject <T[]>(jarray.ToString()); return; default: //return; break; } #if DEBUG jsonQuery = await api.ApiQueryAsync(method, dic); //JArray ttt=JArray.Parse(jsonQuery); objQuery = JObject.Parse(jsonQuery.ToString()); //var jsonQuery = await api.ApiQueryAsync(method, dic); //var objQuery = JObject.Parse(jsonQuery.ToString()); ResultMetod = JsonConvert.DeserializeObject <T>(objQuery.ToString()); //ResultMetod = objResult; #endif }
/// <summary> /// Возвращает список кредитных лимитов для заданного клиента /// </summary> /// <param name="objProfile">профайл</param> /// <param name="cmdSQL">SQL-команда</param> /// <param name="objCustomer">клиент</param> /// <returns>список кредитных лимитов</returns> public static List <CCreditLimitArjive> GetCreditLimitArjiveList(UniXP.Common.CProfile objProfile, System.Data.SqlClient.SqlCommand cmdSQL, CCustomer objCustomer, System.DateTime BeginDate, System.DateTime EndDate) { List <CCreditLimitArjive> objList = new List <CCreditLimitArjive>(); System.Data.SqlClient.SqlConnection DBConnection = null; System.Data.SqlClient.SqlCommand cmd = null; try { if (cmdSQL == null) { DBConnection = objProfile.GetDBSource(); if (DBConnection == null) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить соединение с базой данных.", "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return(objList); } cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = DBConnection; cmd.CommandType = System.Data.CommandType.StoredProcedure; } else { cmd = cmdSQL; cmd.Parameters.Clear(); } cmd.CommandText = System.String.Format("[{0}].[dbo].[sp_GetCustomerLimitArjiveForCustomer]", objProfile.GetOptionsDllDBName()); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Customer_Guid", System.Data.SqlDbType.UniqueIdentifier)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@BeginDate", System.Data.SqlDbType.DateTime)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EndDate", System.Data.SqlDbType.DateTime)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000)); cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output; cmd.Parameters["@Customer_Guid"].Value = objCustomer.ID; cmd.Parameters["@BeginDate"].Value = BeginDate; cmd.Parameters["@EndDate"].Value = EndDate; System.Data.SqlClient.SqlDataReader rs = cmd.ExecuteReader(); if (rs.HasRows) { CCompany objCompany = null; CCurrency objCurrency = null; while (rs.Read()) { objCurrency = new CCurrency((System.Guid)rs["Currency_Guid"], (System.String)rs["Currency_Name"], (System.String)rs["Currency_Abbr"], (System.String)rs["Currency_Code"]); objCompany = new CCompany((System.Guid)rs["Company_Guid"], (System.String)rs["Company_Name"], (System.String)rs["Company_Acronym"]); objList.Add(new CCreditLimitArjive(System.Convert.ToDateTime(rs["Record_Updated"]), (System.String)rs["Action_TypeName"], (System.String)rs["Record_UserUdpated"], (System.Guid)rs["CustomerLimit_Guid"], objCustomer, objCompany, objCurrency, System.Convert.ToDouble(rs["CustomerLimit_ApprovedCurrencyValue"]), System.Convert.ToDouble(rs["CustomerLimit_CurrencyValue"]), System.Convert.ToInt32(rs["CustomerLimit_ApprovedDays"]), System.Convert.ToInt32(rs["CustomerLimit_Days"]))); } } rs.Close(); rs.Dispose(); if (cmdSQL == null) { cmd.Dispose(); DBConnection.Close(); } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить список кредитных лимитов для заданного клиента из архива.\n\nТекст ошибки: " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return(objList); }
/// <summary> /// Сохраняет в БД информацию о кредитных лимитах /// </summary> /// <param name="objProfile">профайл</param> /// <param name="cmdSQL">SQL-команда</param> /// <param name="objCreditLimitList">список кредитных лимитов</param> /// <param name="strErr">сообщение об ошибке</param> /// <returns>true - удачное завершение; false - ошибка</returns> public static System.Boolean SaveCreditLimitList(UniXP.Common.CProfile objProfile, System.Data.SqlClient.SqlCommand cmdSQL, List <CCreditLimit> objCreditLimitList, CCustomer objCustomer, CCurrency objCurrency, ref System.String strErr) { System.Boolean bRet = false; System.Data.SqlClient.SqlConnection DBConnection = null; System.Data.SqlClient.SqlCommand cmd = null; System.Data.SqlClient.SqlTransaction DBTransaction = null; try { if (objCreditLimitList == null) { return(bRet); } if (cmdSQL == null) { DBConnection = objProfile.GetDBSource(); if (DBConnection == null) { strErr = "Не удалось получить соединение с базой данных."; return(bRet); } DBTransaction = DBConnection.BeginTransaction(); cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = DBConnection; cmd.Transaction = DBTransaction; cmd.CommandType = System.Data.CommandType.StoredProcedure; } else { cmd = cmdSQL; cmd.Parameters.Clear(); } System.Data.DataTable addedCategories = new System.Data.DataTable(); addedCategories.Columns.Add(new System.Data.DataColumn("Customer_Guid", typeof(System.Data.SqlTypes.SqlGuid))); addedCategories.Columns.Add(new System.Data.DataColumn("Company_Guid", typeof(System.Data.SqlTypes.SqlGuid))); addedCategories.Columns.Add(new System.Data.DataColumn("Currency_Guid", typeof(System.Data.SqlTypes.SqlGuid))); addedCategories.Columns.Add(new System.Data.DataColumn("CustomerLimit_ApprovedCurrencyValue", typeof(System.Data.SqlTypes.SqlMoney))); addedCategories.Columns.Add(new System.Data.DataColumn("CustomerLimit_CurrencyValue", typeof(System.Data.SqlTypes.SqlMoney))); addedCategories.Columns.Add(new System.Data.DataColumn("CustomerLimit_ApprovedDays", typeof(float))); addedCategories.Columns.Add(new System.Data.DataColumn("CustomerLimit_Days", typeof(float))); System.Data.DataRow newRow = null; foreach (CCreditLimit objItem in objCreditLimitList) { newRow = addedCategories.NewRow(); newRow["Customer_Guid"] = objCustomer.ID; newRow["Company_Guid"] = objItem.Company.ID; newRow["Currency_Guid"] = objCurrency.ID; newRow["CustomerLimit_ApprovedCurrencyValue"] = System.Convert.ToDecimal(objItem.ApprovedCurrencyValue); newRow["CustomerLimit_CurrencyValue"] = System.Convert.ToDecimal(objItem.CurrencyValue); newRow["CustomerLimit_ApprovedDays"] = objItem.ApprovedDays; newRow["CustomerLimit_Days"] = objItem.Days; addedCategories.Rows.Add(newRow); } if (objCreditLimitList.Count > 0) { addedCategories.AcceptChanges(); } cmd.Parameters.Clear(); cmd.CommandText = System.String.Format("[{0}].[dbo].[usp_AssignCustomerLimit]", objProfile.GetOptionsDllDBName()); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Customer_Guid", System.Data.SqlDbType.UniqueIdentifier)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Currency_Guid", System.Data.SqlDbType.UniqueIdentifier)); cmd.Parameters.AddWithValue("@tCreditLimitList", addedCategories); cmd.Parameters["@tCreditLimitList"].SqlDbType = System.Data.SqlDbType.Structured; cmd.Parameters["@tCreditLimitList"].TypeName = "dbo.udt_CreditLimitList"; cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000)); cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output; cmd.Parameters["@Customer_Guid"].Value = objCustomer.ID; cmd.Parameters["@Currency_Guid"].Value = objCurrency.ID; cmd.ExecuteNonQuery(); System.Int32 iRes = (System.Int32)cmd.Parameters["@RETURN_VALUE"].Value; if (iRes != 0) { strErr = (System.String)cmd.Parameters["@ERROR_MES"].Value; } if (cmdSQL == null) { if (iRes == 0) { // подтверждаем транзакцию if (DBTransaction != null) { DBTransaction.Commit(); // 2010.04.22 // временно пишем в ERP cmd.Parameters.Clear(); cmd.CommandText = System.String.Format("[{0}].[dbo].[usp_AssignCustomerLimit_ERP]", objProfile.GetOptionsDllDBName()); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Customer_Guid", System.Data.SqlDbType.UniqueIdentifier)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Currency_Guid", System.Data.SqlDbType.UniqueIdentifier)); cmd.Parameters.AddWithValue("@tCreditLimitList", addedCategories); cmd.Parameters["@tCreditLimitList"].SqlDbType = System.Data.SqlDbType.Structured; cmd.Parameters["@tCreditLimitList"].TypeName = "dbo.udt_CreditLimitList"; cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000)); cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output; cmd.Parameters["@Customer_Guid"].Value = objCustomer.ID; cmd.Parameters["@Currency_Guid"].Value = objCurrency.ID; cmd.ExecuteNonQuery(); iRes = (System.Int32)cmd.Parameters["@RETURN_VALUE"].Value; } } else { // откатываем транзакцию if (DBTransaction != null) { DBTransaction.Rollback(); } } DBConnection.Close(); } bRet = (iRes == 0); } catch (System.Exception f) { if ((cmdSQL == null) && (DBTransaction != null)) { DBTransaction.Rollback(); } strErr = f.Message; } finally { if (DBConnection != null) { DBConnection.Close(); } } return(bRet); }