public Account Registration(RegistrationClientData clientData) { _rightsManager.CheckRole(AccountRole.Admin); var existing = Get(clientData.Login); if (clientData.Status != AccountStatus.Blocked) { clientData.Status = AccountStatus.Active; } if (existing != null) { return(SetAccountProperties(clientData)); } var newUser = new Account(clientData.Login, AccountRole.Person); var result = _userManager.Create(newUser, clientData.Password); Try.Condition(result.Succeeded, $"Не удалось создать счет {clientData.Login}, {result.Errors.FirstOrDefault()}"); UserContext.Data.SaveChanges(); UserContext.AddGameEvent(clientData.Login, GameEventType.None, $"Аккаунт создан"); return(SetAccountProperties(clientData)); }
public async Task <bool> RegistrationAsync(RegistrationClientData clientData) { var registrationTask = _registrationCommand.ExecuteAsync(this, clientData); await registrationTask; if (!registrationTask.IsCompleted) { return(false); } if (!registrationTask.Result.IsSuccessful) { return(false); } var loginTask = LoginAsync(clientData.Email, clientData.Password); await loginTask; if (!loginTask.IsCompleted) { return(false); } return(loginTask.Result); }
public Account SetAccountProperties(RegistrationClientData data) { UserContext.Rights.CheckRole(AccountRole.Admin); var editAccount = UserContext.Accounts.GetOrFail(data.Login); if (data.Role != null && data.Role != editAccount.Role) { editAccount.Role = data.Role.Value; UserContext.AddGameEvent(editAccount.Login, GameEventType.Rights, $"Изменен тип счета на {editAccount.Role}"); } if (data.Status != null && data.Status != editAccount.Status) { editAccount.Status = data.Status.Value; UserContext.AddGameEvent(editAccount.Login, GameEventType.Rights, $"Изменен статус счета на {editAccount.Status}"); } if (!String.IsNullOrEmpty(data.Fullname)) { editAccount.Fullname = data.Fullname; } if (!String.IsNullOrEmpty(data.Email)) { editAccount.Email = data.Email; } if (!String.IsNullOrEmpty(data.ParentID)) { editAccount.ParentID = data.ParentID; } if (!String.IsNullOrEmpty(data.Alias)) { editAccount.Alias = data.Alias; } editAccount.Cash = data.Cash ?? editAccount.Cash; if (data.Insurance != null && data.InsuranceLevel != null) { editAccount.Insurance = data.Insurance.Value; editAccount.InsuranceLevel = editAccount.Insurance.SetLevel(data.InsuranceLevel); } if (!String.IsNullOrEmpty(data.Password)) { _userManager.NewPassword(editAccount.Login, data.Password); } AddWorkPlace(editAccount, data); UserContext.Data.SaveChanges(); return(editAccount); }
private void AddWorkPlace(Account acc, RegistrationClientData data) { if (String.IsNullOrEmpty(data.Workplace) || data.SalaryLevel == null) { return; } if (_regAlias.ContainsKey(data.Workplace)) { data.Workplace = _regAlias[data.Workplace]; } var workPlace = Get(data.Workplace); Try.NotNull(workPlace, $"Не удалось добавить место работы {data.Workplace}, счет {acc.Login}"); if (workPlace == null) { UserContext.AddGameEvent(acc.Login, GameEventType.None, $"Не удалось добавить место работы {data.Workplace}"); return; } var oldPayments = UserContext.Data.Payments.Where(x => x.Receiver == acc.Login).ToList(); oldPayments.ForEach(x => { UserContext.Payments.LogPaymentEvent(x, true); UserContext.Data.Payments.Remove(x); }); var payment = new Payment(workPlace, acc, data.SalaryLevel.Value); UserContext.Data.Payments.Add(payment); UserContext.Payments.LogPaymentEvent(payment); if (data.IsAdmin == true) { UserContext.Rights.SetAccountAccess_Checked(workPlace, acc, AccountAccessRoles.Admin); } }
public IHttpActionResult SetAccountProperties(RegistrationClientData clientData) { return(Ok(UserContext.Accounts.SetAccountProperties(clientData))); }
public IHttpActionResult Registration(RegistrationClientData clientData) { return(Ok(UserContext.Accounts.Registration(clientData))); }