Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }
Ejemplo n.º 3
0
        /// <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());
        }