예제 #1
0
        public CookiesViewModel GetAccountCookies(long accountId)
        {
            var account = new GetAccountByIdQueryHandler(new DataBaseContext()).Handle(new GetAccountByIdQuery
            {
                UserId = accountId
            });

            var userAgent = new GetUserAgentQueryHandler(new DataBaseContext()).Handle(new GetUserAgentQuery
            {
                UserAgentId = account.UserAgentId
            });

            if (account.Cookie == null)
            {
                return(new CookiesViewModel
                {
                    AccountId = accountId,
                    Value = "Cookie is not created",
                    UserAgent = userAgent.UserAgentString
                });
            }
            return(new CookiesViewModel
            {
                AccountId = accountId,
                Value = account.Cookie.CookieString,
                CreateDateTime = account.Cookie.CreateDateTime,
                UserAgent = userAgent.UserAgentString
            });
        }
예제 #2
0
        public AccountDraftViewModel GetAccountById(long?userId)
        {
            if (userId == null)
            {
                return(new AccountDraftViewModel());
            }

            var account = new GetAccountByIdQueryHandler(new DataBaseContext()).Handle(new GetAccountByIdQuery
            {
                UserId = userId.Value
            });

            return(new AccountDraftViewModel
            {
                Id = account.Id,
                Login = account.Login,
                Password = account.Password,
                PageUrl = account.PageUrl,
                Name = account.Name,
                FacebookId = account.FacebookId,
                Proxy = account.Proxy,
                ProxyLogin = account.ProxyLogin,
                ProxyPassword = account.ProxyPassword
            });
        }
예제 #3
0
        public void RecoverAccount(long accountId, IBackgroundJobService backgroundJobService)
        {
            new RecoverUserCommandHandler(new DataBaseContext()).Handle(new RecoverUserCommand
            {
                AccountId = accountId
            });

            var account = new GetAccountByIdQueryHandler(new DataBaseContext()).Handle(new GetAccountByIdQuery
            {
                UserId = accountId
            });

            new CookieService().RefreshCookies(new AccountViewModel
            {
                Id            = accountId,
                Login         = account.Login,
                Password      = account.Password,
                Proxy         = account.Proxy,
                ProxyLogin    = account.ProxyLogin,
                ProxyPassword = account.ProxyPassword,
                UserAgentId   = account.UserAgentId
            },
                                               forSpy: false,
                                               backgroundJob: backgroundJobService);

            if (account.GroupSettingsId == null)
            {
                return;
            }

            var settings         = _accountSettingsManager.GetSettings((long)account.GroupSettingsId);
            var accountViewModel = new AccountViewModel
            {
                Id = account.Id,
                AuthorizationDataIsFailed = account.AuthorizationDataIsFailed,
                Cookie            = account.Cookie.CookieString,
                IsDeleted         = account.IsDeleted,
                ProxyDataIsFailed = account.ProxyDataIsFailed,
                GroupSettingsId   = account.GroupSettingsId,
                Name                     = account.Name,
                Proxy                    = account.Proxy,
                FacebookId               = account.FacebookId,
                Login                    = account.Login,
                PageUrl                  = account.PageUrl,
                Password                 = account.Password,
                ProxyLogin               = account.ProxyLogin,
                ProxyPassword            = account.ProxyPassword,
                ConformationDataIsFailed = account.ConformationIsFailed,
                UserAgentId              = account.UserAgentId
            };

            var model = new AddOrUpdateAccountModel()
            {
                Account     = accountViewModel,
                NewSettings = settings,
                OldSettings = null
            };

            backgroundJobService.AddOrUpdateAccountJobs(model);
        }
예제 #4
0
        public AccountViewModel GetAccountById(long accountId)
        {
            var accountModel = new GetAccountByIdQueryHandler(new DataBaseContext()).Handle(new GetAccountByIdQuery
            {
                UserId = accountId
            });

            if (accountModel == null)
            {
                return(null);
            }

            var accountViewModel = new AccountViewModel
            {
                Id                        = accountModel.Id,
                Login                     = accountModel.Login,
                Proxy                     = accountModel.Proxy,
                FacebookId                = accountModel.FacebookId,
                ProxyLogin                = accountModel.ProxyLogin,
                Name                      = accountModel.Name,
                ProxyPassword             = accountModel.ProxyPassword,
                ConformationDataIsFailed  = accountModel.ConformationIsFailed,
                AuthorizationDataIsFailed = accountModel.AuthorizationDataIsFailed,
                ProxyDataIsFailed         = accountModel.ProxyDataIsFailed,
                Cookie                    = accountModel.Cookie != null ? accountModel.Cookie.CookieString : "",
                PageUrl                   = accountModel.PageUrl,
                Password                  = accountModel.Password,
                UserAgentId               = accountModel.UserAgentId,
                GroupSettingsId           = accountModel.GroupSettingsId,
                IsDeleted                 = accountModel.IsDeleted
            };

            return(accountViewModel);
        }
예제 #5
0
        public void RemoveAccount(long accountId)
        {
            var account = new GetAccountByIdQueryHandler(new DataBaseContext()).Handle(new GetAccountByIdQuery
            {
                UserId        = accountId,
                SearchDeleted = true
            });

            new DeleteUserCommandHandler(new DataBaseContext()).Handle(new DeleteUserCommand
            {
                AccountId = accountId
            });


            var jobModel = new RemoveAccountJobsModel()
            {
                AccountId = account.Id,
                Login     = account.Login
            };

            _jobService.RemoveAccountJobs(jobModel);
            _backgroundJobService.RemoveAllBackgroundJobs(jobModel);
        }
예제 #6
0
        public long AddOrUpdateAccount(AccountDraftViewModel model, IBackgroundJobService backgroundJobService)
        {
            var userAgentId = new GetRandomUserAgentQueryHandler(new DataBaseContext()).Handle(new GetRandomUserAgentQuery());

            if (userAgentId == null)
            {
                return(0);
            }

            var accountId = new AddOrUpdateAccountCommandHandler(new DataBaseContext()).Handle(new AddOrUpdateAccountCommand
            {
                Id            = model.Id,
                Name          = model.Name,
                PageUrl       = model.PageUrl,
                FacebookId    = model.FacebookId,
                Password      = model.Password,
                Login         = model.Login,
                Proxy         = model.Proxy,
                ProxyLogin    = model.ProxyLogin,
                ProxyPassword = model.ProxyPassword,
                UserAgentId   = userAgentId.Id
            });

            new CookieService().RefreshCookies(new AccountViewModel
            {
                Id            = accountId,
                Login         = model.Login,
                Password      = model.Password,
                Proxy         = model.Proxy,
                ProxyLogin    = model.ProxyLogin,
                ProxyPassword = model.ProxyPassword,
                UserAgentId   = model.UserAgentId
            },
                                               false,
                                               backgroundJobService);


            var account = new GetAccountByIdQueryHandler(new DataBaseContext()).Handle(new GetAccountByIdQuery
            {
                UserId = accountId
            });

            if (model.Id == null || model.PageUrl == null || model.FacebookId == 0)
            {
                long   accountFacebookId = 0;
                string homePageUrl       = null;

                if (account.Cookie != null)
                {
                    accountFacebookId = _proxyManager.GetAccountFacebookId(account.Cookie.CookieString);
                    homePageUrl       = _accountManager.CreateHomePageUrl(accountFacebookId);
                }

                new AddOrUpdateAccountCommandHandler(new DataBaseContext()).Handle(new AddOrUpdateAccountCommand
                {
                    Id            = account.Id,
                    Name          = model.Name,
                    PageUrl       = homePageUrl,
                    FacebookId    = accountFacebookId,
                    Password      = model.Password,
                    Login         = model.Login,
                    Proxy         = model.Proxy,
                    ProxyLogin    = model.ProxyLogin,
                    ProxyPassword = model.ProxyPassword
                });

                return(accountId);
            }

            var modelForJob = new AddOrUpdateAccountModel
            {
                Account = new AccountViewModel
                {
                    Id                        = accountId,
                    PageUrl                   = account.PageUrl,
                    Login                     = account.Login,
                    Password                  = account.Password,
                    FacebookId                = account.FacebookId,
                    Proxy                     = account.Proxy,
                    ProxyLogin                = account.ProxyLogin,
                    ProxyPassword             = account.ProxyPassword,
                    Cookie                    = account.Cookie.CookieString,
                    Name                      = model.Name,
                    GroupSettingsId           = account.GroupSettingsId,
                    AuthorizationDataIsFailed = account.AuthorizationDataIsFailed,
                    ProxyDataIsFailed         = account.ProxyDataIsFailed,
                    ConformationDataIsFailed  = account.ConformationIsFailed,
                    IsDeleted                 = account.IsDeleted,
                    UserAgentId               = account.UserAgentId
                }
            };

            _jobService.AddOrUpdateAccountJobs(modelForJob);

            return(accountId);
        }