public ActionResult UpdateUser(AccountDraftViewModel model) { var textList = new[] { model.Login, model.Name, model.Password }; if (textList.Any(string.IsNullOrWhiteSpace)) { ViewBag.Errors = "Заполните обязательные поля."; return(View("Index", model)); } if (model.Id == null && _homeService.CheckExistLogin(model.Login)) { ViewBag.Errors = "Аккаунт с таким логином уже существует."; return(View("Index", model)); } var accountId = _homeService.AddOrUpdateAccount(model, new BackgroundJobService()); return(RedirectToAction("Index", "Users")); }
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); }