private static bool SaveGroupDelivery(Entity.券商 groupItem, DateTime date) { var saveResult = false; var data = DataHelper.QueryHisDelivery(date, date, groupItem); if (data != null) { if (data.Rows.Count > 0) { DataHelper.StandardDeliveryDataTable(data, date); using (var db = new DataComparisionDataset()) { var oldData = db.交割单ds.Where(_ => _.交割日期 == date && _.组合号 == groupItem.称); if (oldData.Count() > 0) { db.交割单ds.RemoveRange(oldData); db.SaveChanges(); } } saveResult = DataHelper.WriteToDB(data, "交割单"); } else { saveResult = true; } } return(saveResult); }
private void Button_Click(object sender, RoutedEventArgs e) { try { using (var db = new DataComparisionDataset()) { if (IsCreateNew) { var item = SetEntityFromPage(Entity); db.软件委托ds.Add(item); db.SaveChanges(); } else { var list = db.软件委托ds.Where(_ => _.组合号 == Entity.组合号 && _.成交日期 == Entity.成交日期).ToList(); if (list.Count > 0) { var item = list.FirstOrDefault(_ => _.IsSame(Entity)); if (item != null) { SetEntityFromPage(item); db.SaveChanges(); } else { CommonUtils.ShowMsg("未找到数据对应项"); } } else { CommonUtils.ShowMsg("未找到数据对应项"); } } } if (OnEditComplete != null) { OnEditComplete.Invoke(); } this.Close(); } catch (Exception ex) { CommonUtils.ShowMsg("保存失败!" + ex.Message); } }
private void Button_Save_Click(object sender, RoutedEventArgs e) { if (cbHisType.SelectedIndex != 0) { return; } var o = cmbGroup.SelectedItem as 券商; var dt = ExportData; var sd = dpStart.SelectedDate.Value; var ed = dpEnd.SelectedDate.Value; bool saveResult = false; this.loading.ShowLoading(); Dispatcher.RunAsync(() => { try { DataHelper.StandardDeliveryDataTable(dt); using (var db = new DataComparisionDataset()) { var oldData = db.交割单ds.Where(_ => _.交割日期 >= sd && _.交割日期 <= ed); if (oldData.Count() > 0) { db.交割单ds.RemoveRange(oldData); db.SaveChanges(); } } saveResult = DataHelper.WriteToDB(dt, "交割单"); } catch (Exception ex) { Dispatcher.ShowMsg("保存出错:" + ex.Message); } }, null, null, () => { this.dgDelivery.ItemsSource = null; this.loading.HideLoading(); if (saveResult) { CommonUtils.ShowMsg("保存完毕!"); } else { CommonUtils.ShowMsg("保存失败!"); } }); }
private bool SaveAsSoftwareData(DataTable dt, DataComparisionDataset db, Dictionary <string, string> pageConfig, bool isSaveFromPage, out string msg) { msg = string.Empty; try { var fileName = dt.TableName.GetFileName(); var date = fileName.GetDate(); var group = fileName.GetGroupName(); if (date == DateTime.MinValue) { msg = string.Format("软件委托文件名中必须包含交易日期,文件{0}未符合条件。", fileName); return(false); } var dict = (isSaveFromPage || string.IsNullOrEmpty(group)) ? pageConfig : CommonUtils.GetConfig(group + "软件委托").FromJson <Dictionary <string, string> >(); var lstSoft = GetSoftList(date, dt, dict); if (lstSoft.Count == 0) { msg = "符合条件的数据条数为0,将跳过此文件:" + fileName; return(false); } var groupList = lstSoft.Select(_ => _.组合号).Distinct().ToList(); var formatData = db.软件委托ds.Where(_ => _.成交日期 == date && groupList.Contains(_.组合号)); if (formatData.Count() > 0) { if (isSaveFromPage && MessageBox.Show("已存在对应软件委托数据,是否删除并保存?", "Save", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel) { return(false); } db.软件委托ds.RemoveRange(formatData); } db.软件委托ds.AddRange(lstSoft); db.SaveChanges(); if (isSaveFromPage) { CommonUtils.SetConfig(group + "软件委托", dict.ToJson()); } } catch (Exception ex) { CommonUtils.Log(string.Format("软件委托导入失败, 关联文件名{0}!", dt.TableName), ex); msg = "保存软件委托失败,详情请查看日志!"; return(false); } return(true); }
private bool SaveAsDeliveryData(DataTable dt, DataComparisionDataset db, Dictionary <string, string> pageConfig, bool isSaveFromPage, out string msg) { msg = string.Empty; try { var fileName = dt.TableName.GetFileName(); var group = fileName.GetGroupName(); var date = fileName.GetDate(); if (date == DateTime.MinValue || string.IsNullOrEmpty(group)) { msg = string.Format("交割单文件名中必须同时包含组合号及交易日期,文件{0}未符合条件。", fileName); return(false); } var dict = isSaveFromPage ? pageConfig : CommonUtils.GetConfig(group + "交割单").FromJson <Dictionary <string, string> >(); var list = GetDeliveryList(dt, group, dict); if (list.Count == 0) { msg = "符合条件的数据条数为0,交割单默认保存条件为发生金额大于0,将跳过此文件:" + fileName; return(false); } var groupList = list.Select(_ => _.组合号).ToList(); var formatData = db.交割单ds.Where(_ => _.交割日期 == date && groupList.Contains(_.组合号)); if (formatData.Count() > 0) { if (isSaveFromPage && MessageBox.Show("已存在对应交割单数据,是否删除旧数据并保存?", "交割单保存", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel) { return(false); } db.交割单ds.RemoveRange(formatData); } db.交割单ds.AddRange(list); db.SaveChanges(); if (isSaveFromPage) { CommonUtils.SetConfig(group + "交割单", dict.ToJson()); } } catch (Exception ex) { CommonUtils.Log(string.Format("交割单导入失败, 关联文件名{0}!", dt.TableName), ex); msg = "保存交割单失败,详情请查看日志!"; return(false); } return(true); }
private void Button_Delete_Click(object sender, RoutedEventArgs e) { var o = (sender as Button).DataContext as 券商; using (var db = new DataComparisionDataset()) { var item = db.券商ds.FirstOrDefault(_ => _.称 == o.称); if (item != null) { db.券商ds.Remove(item); db.SaveChanges(); Init(); MessageBox.Show("删除成功!"); } } }
private void CalculateAsync(DateTime dtStart, DateTime dtEnd, string groupName = null) { ControlUtils.ShowLoading(this.loading); Task t = new Task(() => { try { using (var db = new DataComparisionDataset()) { var lstTotalExists = db.合计表ds.Where(_ => _.日期 >= dtStart && _.日期 <= dtEnd); var lstDeli = db.交割单ds.Where(_ => _.交割日期 >= dtStart && _.交割日期 <= dtEnd).OrderBy(_ => _.组合号).ThenBy(_ => _.SortSequence).ToList(); var lstSoft = db.软件委托ds.Where(_ => _.成交日期 >= dtStart && _.成交日期 <= dtEnd).OrderBy(_ => _.组合号).ThenBy(_ => _.SortSequence).ToList(); if (!string.IsNullOrEmpty(groupName)) { lstTotalExists = lstTotalExists.Where(_ => _.账户 == groupName); lstDeli = lstDeli.Where(_ => _.组合号 == groupName).ToList(); lstSoft = lstSoft.Where(_ => _.组合号 == groupName).ToList(); } var list = Entity.EntityCompareUtil.CompareData(lstDeli, lstSoft); db.合计表ds.RemoveRange(lstTotalExists); db.合计表ds.AddRange(list); db.SaveChanges(); Dispatcher.HideLoading(this.loading); Dispatcher.RunAsync(null, () => { RefreshPage(); }); } } catch (Exception ex) { CommonUtils.Log(DateTime.Now.ToShortTimeString() + " 计算合并信息时出错 ", ex); Dispatcher.ShowMsg("运行异常,计算合并信息时出错,详情请查看日志!"); Dispatcher.HideLoading(this.loading); } }); t.Start(); //var thread = new Thread(new ThreadStart(() => //{ //})); //thread.Start(); }
//static bool? _isExists = null; ///// <summary> ///// 是否存在本机AAS数据库 ///// </summary> //public static bool IsExistsAAS //{ // get // { // if (_isExists == null) // { // try // { // using (var conn = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=AAS;Integrated Security=True;")) // { // conn.Open(); // if (conn.State == ConnectionState.Open) // { // conn.Close(); // _isExists = true; // } // else // { // _isExists = false; // } // } // } // catch // { // _isExists = false; // } // } // return _isExists == true; // } //} #endregion public static bool ImportGroupFromAAS(bool isCover) { bool isImportSuccess = false; var dt = new DataTable(); string cmd = "SELECT [名称] ,[启用] ,[交易服务器] ,[版本号] ,[营业部代码] ,[登录帐号] ,[交易帐号] ,[交易密码] ,[通讯密码] FROM [AAS].[dbo].[券商帐户]"; List <string> groupNames = new List <string>(); using (var adapter = new SqlDataAdapter(cmd, "Data Source=.\\SQLEXPRESS;Initial Catalog=AAS;Integrated Security=True;")) { adapter.Fill(dt); dt.Columns.Add("IP"); dt.Columns.Add("Port"); for (int i = dt.Rows.Count - 1; i > -1; i--) { var item = dt.Rows[i]; var ipInfo = item["交易服务器"].ToString().Split(':'); item["IP"] = ipInfo[1]; item["Port"] = ipInfo[2]; if (isCover) { groupNames.Add(item["名称"].ToString()); } else { dt.Rows.RemoveAt(i); } } } using (var db = new DataComparisionDataset()) { var old = db.券商ds.Where(_ => groupNames.Contains(_.称)).ToList(); db.券商ds.RemoveRange(old); db.SaveChanges(); } isImportSuccess = WriteToDB(dt, "券商"); return(isImportSuccess); }
private void Button_Save_Click(object sender, RoutedEventArgs e) { if (Validate()) { try { 券商 o = GetPageEntity(); StringBuilder ErrInfo = new StringBuilder(256); //int clientID = TdxApi.Logon(o.IP, o.Port, o.版本号, o.营业部代码, o.登录帐号, o.交易帐号, o.TradePsw, o.CommunicatePsw, ErrInfo); //if (clientID > -1) //{ // TdxApi.Logoff(clientID); //} //else //{ // MessageBox.Show("登录验证失败, 错误信息:" + ErrInfo.ToString()); //} using (var db = new DataComparisionDataset()) { var oldEntity = db.券商ds.FirstOrDefault(_ => _.称 == o.称); if (oldEntity != null) { db.券商ds.Remove(oldEntity); } db.券商ds.Add(o); db.SaveChanges(); MessageBox.Show("保存完毕", "组合号编辑"); this.Close(); } } catch (Exception ex) { CommonUtils.ShowMsg(ex.Message); } } }
private void Button_DeliveryNotMatched_SetSpecal_Click(object sender, RoutedEventArgs e) { var item = (sender as Button).DataContext as 交割单; if (item != null) { var result = MessageBox.Show("确认强制保留此交割单吗?", "交割单编辑", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { using (var db = new DataComparisionDataset()) { var lst = db.交割单ds.ToList(); var editItem = lst.FirstOrDefault(_ => EntityCompareUtil.IsSame(item, _)); if (editItem != null) { editItem.备注 = "强制保留"; db.SaveChanges(); } } RefreshWindow(false); } } }
private void Button_Soft_Delete_Click(object sender, RoutedEventArgs e) { var item = (sender as Button).DataContext as 软件委托; if (item != null) { var result = MessageBox.Show("确认删除此委托吗?", "委托删除", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { using (var db = new DataComparisionDataset()) { var lst = db.软件委托ds.ToList(); var deleteItem = lst.FirstOrDefault(_ => EntityCompareUtil.IsSame(item, _)); if (deleteItem != null) { db.软件委托ds.Remove(deleteItem); db.SaveChanges(); } } RefreshWindow(false); } } }
public static void StandardDeliveryDataTable(DataTable dt, DateTime?importDate = null) { DateTime st = DateTime.Today; DateTime et = DateTime.MinValue; //1.修正列名 StandardColumnName(dt); //2. 修正数据列 for (int i = dt.Columns.Count - 1; i > -1; i--) { if (!DataHelper.DeliveryCol.Contains(dt.Columns[i].ColumnName)) { dt.Columns.RemoveAt(i); } } for (int i = DataHelper.DeliveryCol.Length - 1; i > -1; i--) { if (!dt.Columns.Contains(DataHelper.DeliveryCol[i])) { dt.Columns.Add(DataHelper.DeliveryCol[i]); } } dt.Columns.Add("OrderID"); dt.Columns.Add("SortSequence"); //3. 修正数据类型,已对应当前数据库,将数字列进行转换 List <string> colDec = new List <string>() { "成交数量", "成交价格", "成交金额", "发生金额", "手续费", "印花税", "过户费", "其他费" }; List <string> groupList = new List <string>(); for (int i = 0; i < dt.Rows.Count; i++) { var groupName = dt.Rows[i]["组合号"].ToString(); if (!groupList.Contains(groupName)) { groupList.Add(groupName); } var date = CommonUtils.GetDate(dt.Rows[i]["交割日期"]); if (date == DateTime.MinValue && importDate != null) { date = importDate.Value; } if (st > date) { st = date; } if (et < date) { et = date; } dt.Rows[i]["OrderID"] = Guid.NewGuid().ToString(); dt.Rows[i]["SortSequence"] = i; dt.Rows[i]["证券代码"] = dt.Rows[i]["证券代码"].ToString().FixStockCode(); dt.Rows[i]["交割日期"] = date; foreach (var colName in colDec) { dt.Rows[i][colName] = CommonUtils.GetDecimal(dt.Rows[i][colName]); } } //4.保存数据库 using (var db = new DataComparisionDataset()) { var oldData = db.交割单ds.Where(_ => _.交割日期 >= st && _.交割日期 < et && groupList.Contains(_.组合号)); db.交割单ds.RemoveRange(oldData); db.SaveChanges(); } }
private void Button_FileImport_Click(object sender, RoutedEventArgs e) { OpenFileDialog dialog = new OpenFileDialog() { CheckFileExists = true, Multiselect = false, Filter = "文本文件|*.txt" }; if (true == dialog.ShowDialog()) { try { var arr = File.ReadAllLines(dialog.FileName); List <Entity.券商> listImport = new List <券商>(); foreach (var item in arr) { if (item.StartsWith("名称") || string.IsNullOrWhiteSpace(item)) { continue; } var info = item.Split(new[] { ',', '\t' }); var o = new Entity.券商() { 称 = info[0], 启用 = bool.Parse(info[1]), 交易服务器 = info[2], IP = info[3], Port = short.Parse(info[4]), 版本号 = info[5], 营业部代码 = short.Parse(info[6]), 登录帐号 = info[7], 交易帐号 = info[8], 交易密码 = info[9], }; if (info.Length >= 11) { o.通讯密码 = info[10]; } listImport.Add(o); } if (listImport.Count > 0) { using (var db = new DataComparisionDataset()) { var listName = listImport.Select(_ => _.称); var old = db.券商ds.Where(_ => listName.Contains(_.称)).ToList(); if (old.Count > 0) { db.券商ds.RemoveRange(old); } db.券商ds.AddRange(listImport); db.SaveChanges(); MessageBox.Show(string.Format("导入完成,导入{0}个券商信息,覆盖{1}个,新增{2}个!", listImport.Count, old.Count, listImport.Count - old.Count)); } Init(); } else { MessageBox.Show("导入失败!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }