コード例 #1
0
        public List <Payment> GetSalaries(string login)
        {
            var acc = _rightsManager.CheckForAccessOverSlave(login, AccountAccessRoles.Read);
            var ret = UserContext.Data.Payments.Where(x => x.Receiver == acc.Login);

            return(ret.ToList());
        }
コード例 #2
0
        public float Transfer(TransferClientData data)
        {
            var receiverAcc = UserContext.Accounts.GetOrFail(data.Receiver, true); //Разрешен Alias
            var senderAcc   = UserContext.Accounts.GetOrFail(data.Sender);

            Try.Condition(receiverAcc.Login != senderAcc.Login, "Нельзя переводить самому себе");

            _rightsManager.CheckForAccessOverSlave(senderAcc, AccountAccessRoles.Withdraw);
            data.Description = data.Description ?? "";

            var trList = new List <Transaction>();

            //Разные виды налогообложения
            if (receiverAcc.Role == AccountRole.Person && senderAcc.Role == AccountRole.Person)
            {
                trList = P2PTransfer(senderAcc, receiverAcc, data);
            }
            else if (receiverAcc.Role.IsCompany() && senderAcc.Role == AccountRole.Person)
            {
                trList = P2BTransfer(senderAcc, receiverAcc, data);
            }
            else
            {
                trList = B2BTransfer(senderAcc, receiverAcc, data);
            }

            //Анонимные транзакции
            if (data.Receiver.ToLower() == receiverAcc.Alias.ToLower() && receiverAcc.Role == AccountRole.Person)
            {
                trList.ForEach(x => {
                    if (x.ReceiverAccount.Login == receiverAcc.Login)
                    {
                        x.Type |= TransactionType.Anonymous;
                    }
                });
            }

            using (var dbTransact = UserContext.Data.Database.BeginTransaction())
            {
                UserContext.Data.BeginFastSave();
                trList.ForEach(TransactiontoDb);
                dbTransact.Commit();
            }
            return(senderAcc.Cash);
        }
コード例 #3
0
        public Account GetProfile(string login)
        {
            var acc = _rightsManager.CheckForAccessOverSlave(login, AccountAccessRoles.Read);

            if (acc.Role.IsCompany())
            {
                var parent = Get(acc.ParentID);
                if (parent != null)
                {
                    acc.Index = parent.Index;
                }
            }
            return(acc);
            //DON'T SAVE DATA!!!
        }
コード例 #4
0
        public List <Loyalty> GetCompanyLoyalties(string login)
        {
            var acc = _rightsManager.CheckForAccessOverSlave(login, AccountAccessRoles.Read);

            return(UserContext.Data.Loyalties.Where(x => x.LoyalService.Login == acc.Login).ToList());
        }