public void AddAccount(string account, string name) { if (_code_account.ContainsKey(account)) { _code_account[account].Name = name; } else { _code_account.Add(account, new Account() { AccountType = AccountTypes.Real, Code = account, Name = name, CommPerc = 0, IsShortEnable = false }); } var db_acc = _da.GetAccounts().FirstOrDefault(r => r.Code == account); if (db_acc == null) { _da.InsertAccount(_code_account[account]); } else if (db_acc.Name != name) { db_acc.Name = name; _da.UpdateAccount(db_acc); } }
/// <summary> /// Синхронизация счетов /// </summary> private async Task SyncAccounts(ISyncPipeServer sps) { var remAccounts = await sps.GetAccountList(); if (remAccounts == null) { return; } var accounts = _accountDA.GetAccounts(); foreach (var racc in remAccounts) { if (_account_rid_lid.ContainsKey(racc.AccountID)) { int lid = _account_rid_lid[racc.AccountID]; var account = accounts.FirstOrDefault(r => r.AccountID == lid); if (account != null) // локальный найден { bool isUpdate = false; if (account.AccountType != racc.AccountType) { account.AccountType = racc.AccountType; isUpdate = true; } if (account.Code != racc.Code) { account.Code = racc.Code; isUpdate = true; } if (account.Name != racc.Name) { account.Name = racc.Name; isUpdate = true; } if (account.CommPerc != racc.CommPerc) { account.CommPerc = racc.CommPerc; isUpdate = true; } if (account.IsShortEnable != racc.IsShortEnable) { account.IsShortEnable = racc.IsShortEnable; isUpdate = true; } if (isUpdate) { _accountDA.UpdateAccount(account); } } else // соответствие есть, но локальный не найден, значит соответствие уже не действительно { var acc = _accountDA.CreateAccount(racc.Code, racc.Name, racc.CommPerc, racc.IsShortEnable, racc.AccountType); _account_rid_lid[racc.AccountID] = acc.AccountID; // прописываем новый ключ } } else // соответствие не найдено { var acc = _accountDA.CreateAccount(racc.Code, racc.Name, racc.CommPerc, racc.IsShortEnable, racc.AccountType); _account_rid_lid.Add(racc.AccountID, acc.AccountID); } } }
/// <summary> /// Получить список торговых счетов /// </summary> /// <returns>Список торговых счетов</returns> public IEnumerable <CommonData.AccountListItem> GetAccountList() { var accs = _accountDA.GetAccounts(); return((from acc in accs select new CommonData.AccountListItem(acc.AccountID, acc.Code, acc.Name)).ToList()); }