public void AddCreditCardAccount(double comission, double limit)
        {
            IAccount account = new AccountFabric().CreateAccount(comission, limit);

            if (suspicious)
            {
                account = new SuspiciousAccount(account, susp_limit);
            }

            Accounts.Add(account);
        }
Example #2
0
            private async Task <SuspiciousAccount> CreateNewSuspiciousAccount(ReportSuspiciousActivity request, CancellationToken cancellationToken)
            {
                SuspiciousAccount suspiciousAccount = new SuspiciousAccount()
                {
                    TwitterUserId     = request.SuspiciousAccountTwitterUserId,
                    TwitterScreenName = request.SuspiciousAccountTwitterScreenName,
                    TwitterJoinDate   = request.SuspiciousAccountTwitterUserJoinDate
                };

                await _db.SuspiciousAccounts.AddAsync(suspiciousAccount);

                await _db.SaveChangesAsync(cancellationToken);

                return(suspiciousAccount);
            }
Example #3
0
            public async Task <Unit> Handle(AddSuspiciousAccount request, CancellationToken cancellationToken)
            {
                var twitterUserInfo = _rostamBotManagerService.GetSuspiciousAccountInfo(request.TwitterScreenName);


                if (await _db.SuspiciousAccounts.AnyAsync(x => x.TwitterUserId == twitterUserInfo.TwitterUserId))
                {
                    throw new AppException($"{request.TwitterScreenName} is already in block list");
                }

                var newSuspiciousAccount = new SuspiciousAccount()
                {
                    ShouldBlock       = true,
                    TwitterJoinDate   = twitterUserInfo.TwitterJoinDate,
                    TwitterScreenName = twitterUserInfo.TwitterScreenName,
                    TwitterUserId     = twitterUserInfo.TwitterUserId
                };

                await _db.SuspiciousAccounts.AddAsync(newSuspiciousAccount);

                await _db.SaveChangesAsync(cancellationToken);

                var suspiciousAccountDto = new SuspiciousAccountDto()
                {
                    Id                = newSuspiciousAccount.Id,
                    TwitterUserId     = newSuspiciousAccount.TwitterUserId,
                    TwitterScreenName = newSuspiciousAccount.TwitterScreenName,
                    TwitterJoinDate   = newSuspiciousAccount.TwitterJoinDate
                };

                await _mediator.Publish(
                    new ChangeBlockStatusSaved
                {
                    SuspiciousAccountDto = twitterUserInfo,
                    BlockStatus          = true
                },
                    cancellationToken);

                return(Unit.Value);
            }
Example #4
0
            private async Task <SuspiciousTweet> CreateNewSuspiciousTweet(ReportSuspiciousActivity request, Reporter reporter, SuspiciousAccount suspiciousAccount, CancellationToken cancellationToken)
            {
                SuspiciousTweet suspiciousTweet = new SuspiciousTweet()
                {
                    ReporterId          = reporter.Id,
                    SuspiciousAccountId = suspiciousAccount.Id,
                    TweetId             = request.SuspiciousTweetId,
                    TweetContent        = request.SuspiciousTweetContent
                };
                await _db.SuspiciousTweets.AddAsync(suspiciousTweet);

                await _db.SaveChangesAsync(cancellationToken);

                return(suspiciousTweet);
            }
Example #5
0
            private async Task CreateNewSuspiciousAccountReport(ReportSuspiciousActivity request, Reporter reporter, SuspiciousAccount suspiciousAccount, CancellationToken cancellationToken)
            {
                var suspiciousAccountReport = new SuspiciousAccountReport()
                {
                    ReportDate          = DateTime.Now,
                    ReporterId          = reporter.Id,
                    SuspiciousAccountId = suspiciousAccount.Id,
                    TweetId             = request.ReporterTweetId,
                    TweetContent        = request.ReporterTweetContent,
                    IsViaDirect         = request.IsViaDirect
                };

                await _db.SuspiciousAccountReports.AddAsync(suspiciousAccountReport);

                await _db.SaveChangesAsync(cancellationToken);
            }
Example #6
0
            private async Task GetOrAddSuspiciousTweet(ReportSuspiciousActivity request, Reporter reporter, SuspiciousAccount suspiciousAccount, CancellationToken cancellationToken)
            {
                var suspiciousTweetExists = await _db.SuspiciousTweets.AnyAsync(x => x.TweetId == request.SuspiciousTweetId && x.ReporterId == reporter.Id);

                if (!suspiciousTweetExists)
                {
                    await CreateNewSuspiciousTweet(request, reporter, suspiciousAccount, cancellationToken);
                }
            }