示例#1
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);
        }
示例#2
0
        public void RenameAccountJobs(IRenameAccountJobs model)
        {
            var currentModel = model as RenameAccountJobsModel;

            if (currentModel == null)
            {
                return;
            }

            var accountViewModel = currentModel.AccountViewModel;
            var oldLogin         = currentModel.OldLogin;

            var removeAccountModel = new RemoveAccountJobsModel
            {
                AccountId = accountViewModel.Id,
                Login     = oldLogin
            };

            var addOrUpdateAccountModel = new AddOrUpdateAccountModel
            {
                Account = accountViewModel
            };

            RemoveAccountJobs(removeAccountModel);
            AddOrUpdateAccountJobs(addOrUpdateAccountModel);
        }
示例#3
0
        private void RefreshJobs(long accountId, long groupId)
        {
            var account  = _accountManager.GetAccountById(accountId);
            var settings = new GroupService(null).GetSettings(groupId);
            var model    = new AddOrUpdateAccountModel
            {
                Account     = account,
                OldSettings = null,
                NewSettings = settings
            };

            UpdateSettings(model);
        }
示例#4
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);
        }