/// <summary> /// Редактировать профиль пользователя /// </summary> /// <param name="registrationUser">Данные, на которые нужно изменить профиль</param> /// <param name="userManager">Менеджер</param> /// <returns></returns> public async Task <ResultCrmDb> EditProfile(RegistrationUserArgs registrationUser, string userManager) { var result = new ResultCrmDb(); var userManagerId = userManager == null ? null : await _crmDbContext.User.Where(f => f.Account == userManager).FirstOrDefaultAsync(); var user = await _crmDbContext.User.FirstOrDefaultAsync(f => f.Account == registrationUser.Account); if (user == null) { result.AddError("crm002", "Пользователя с таким аакаунтом не существует"); result.Succeeded = false; return(result); } user.Email = registrationUser.Email; user.Name = registrationUser.Name; user.Surname = registrationUser.Surname; user.Middlename = registrationUser.Middlename; user.Phone = registrationUser.Phone; _crmDbContext.Update(user); await _crmDbContext.SaveChangesAsync(); result.Succeeded = true; return(result); }
/// <summary> /// Регистрация пользователя в БД CRM /// </summary> /// <param name="registration"></param> /// <param name="userManager"></param> /// <returns></returns> public async Task <ResultCrmDb> RegistrationUser(RegistrationUserArgs registration, string userManager) { var result = new ResultCrmDb(); var userManagerId = await _crmDbContext.User.Where(f => f.Account == userManager).FirstOrDefaultAsync(); var typeUserId = await _crmDbContext.TypeUser.Where(s => s.Sysname == "PLAYER").FirstOrDefaultAsync(); var countUser = await _crmDbContext.User.CountAsync(c => c.Account.ToLower() == registration.Account.ToLower()); if (countUser > 0) { result.Succeeded = false; result.AddError("crm001", "Пользователь с таким логином уже существует"); return(result); } var user = new User(); user.Account = registration.Account; user.Email = registration.Email; user.Name = registration.Name; user.Surname = registration.Surname; user.Middlename = registration.Middlename; user.TypeUser = typeUserId; _crmDbContext.User.Add(user); await _crmDbContext.SaveChangesAsync(); result.Succeeded = true; return(result); }
public async Task <ResultCrmDb> EditUserAsync(RegistrationUserArgs args) { var result = new ResultCrmDb(); var errors = 0; List <string> textErrors = new List <string>(); try { if (string.IsNullOrWhiteSpace(args.Account)) { textErrors.Add("аккаунт пользователя не указан"); errors++; } if (string.IsNullOrWhiteSpace(args.Name)) { textErrors.Add("имя пользователя не указано"); errors++; } var editable = await _crmDbContext.user.FirstOrDefaultAsync(c => c.Account.ToLower() == args.Account.ToLower()); if (editable == null) { textErrors.Add("пользователь с таким логином отсутствует"); errors++; } if (errors > 0) { throw new Exception(); } editable.Email = args.Email; editable.Phone = args.Phone; editable.Name = args.Name; editable.Surname = args.Surname; editable.Middlename = args.Middlename; if (args.Password == args.ConfirmPassword && !string.IsNullOrWhiteSpace(args.Password)) { //запрос к is4 на смену пароля } _crmDbContext.user.Update(editable); await _crmDbContext.SaveChangesAsync(); } catch (Exception e) { var err = ""; if (errors > 0) { err = string.Join(",\n", textErrors.ToArray()); } else { err = e.Message; } var patternError = $"Ошибка регистрации пользователя:\n {err}."; result.AddError("", $"{patternError}"); } return(result); }
public async Task <ResultCrmDb> RegisterUserAsync(RegistrationUserArgs args) { var result = new ResultCrmDb(); var errors = 0; List <string> textErrors = new List <string>(); try { if (string.IsNullOrWhiteSpace(args.Account)) { textErrors.Add("аккаунт пользователя не указан"); errors++; } if (string.IsNullOrWhiteSpace(args.Surname)) { textErrors.Add("Фамилия пользователя не указана"); errors++; } if (errors > 0) { throw new Exception(); } var countUser = await _crmDbContext.User.CountAsync(c => c.Account.ToLower() == args.Account.ToLower()); if (countUser > 0) { textErrors.Add("пользователь с таким логином уже существует"); errors++; } var user = new User(); user.Account = args.Account; user.Email = args.Email; user.Phone = args.Phone; user.Name = args.Name; user.Surname = args.Surname; user.Middlename = args.Middlename; await _crmDbContext.user.AddAsync(user); await _crmDbContext.SaveChangesAsync(); } catch (Exception e) { var err = ""; if (errors > 0) { err = string.Join(",\n", textErrors.ToArray()); } else { err = e.Message; } var patternError = $"Ошибка регистрации пользователя:\n {err}."; result.AddError("", $"{patternError}"); } return(result); }
//public ResultCrmDb ChangePassword(RegistrationUserArgs account) //{ // var result = new ResultCrmDb(); // try // { // result = RestExtensions.SendPostAnonymous<ResultCrmDb>("", "", account); // } // catch (Exception e) // { // result.AddError("", e.Message); // } // return result; //} public ResultCrmDb EditUser(RegistrationUserArgs args) { var result = new ResultCrmDb(); try { result = RestExtensions.SendPostAnonymous <ResultCrmDb>("", "", args); } catch (Exception e) { result.AddError("", e.Message); } return(result); }
public async Task <IActionResult> EditProfile([FromBody] RegistrationUserArgs registration) { var result = await _managerProfile.EditProfile(registration, GetUserName()); if (!result.Succeeded) { return(new ObjectResult(JsonConvert.SerializeObject(result.Errors)) { StatusCode = StatusCodes.Status500InternalServerError }); } return(Tools.CreateResult(true, "", "")); }
/// <summary> /// Регистрация нового пользователя /// </summary> /// <param name="model">Модель параметров для регистрации</param> /// <returns></returns> public async Task <IActionResult> Register(RegistrationUserArgs model) { var user = new ApplicationUser { UserName = model.Account, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(Tools.CreateResult(false, "Ошибка регистрации пользователя", result)); } result = await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.GivenName, user.UserName)); if (!result.Succeeded) { return(Tools.CreateResult(false, "Ошибка регистрации пользователя", result)); } var resultCrm = await _managerProfile.RegistrationUser(model, null); if (!resultCrm.Succeeded) { await _userManager.DeleteAsync(user); return(Tools.CreateResult(false, "Ошибка регистрации пользователя", resultCrm)); //throw new UserMessageException(JsonConvert.SerializeObject(resultCrm.Errors)); } var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); string codeurl = HttpUtility.UrlEncode(code); try { await SentResetPasswordEmail(user.Email, codeurl, "ConfirmEmail"); } catch (Exception e) { Console.WriteLine(e); _logger.LogError(e, e.Message); } return(Tools.CreateResult(true, "", new ResultCrmDb { Succeeded = true })); }
public async Task <IActionResult> EditProfile([FromBody] RegistrationUserArgs registration) { if (registration.Account != GetUserName()) { return new ObjectResult("Нет доступа") { StatusCode = 403 } } ; var result = await _managerProfile.EditProfile(registration, null); if (!result.Succeeded) { return(new ObjectResult(JsonConvert.SerializeObject(result.Errors)) { StatusCode = StatusCodes.Status500InternalServerError }); } return(Json(true)); }
/// <summary> /// Регистрация нового пользователя c с установкой им пароля /// </summary> /// <param name="model">Модель параметров для регистрации</param> /// <returns></returns> public async Task <IActionResult> RegisterAndSetPassword(RegistrationUserArgs model) { var user = new ApplicationUser { UserName = model.Account, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(Tools.CreateResult(false, "Ошибка регистрации пользователя", result)); } result = await _userManager.AddClaimAsync(user, new Claim("given_name", user.UserName)); if (!result.Succeeded) { return(Tools.CreateResult(false, "Ошибка регистрации пользователя", result)); } var resultCrm = await _managerProfile.RegistrationUser(model, null); if (!resultCrm.Succeeded) { await _userManager.DeleteAsync(user); return(Tools.CreateResult(false, "Ошибка регистрации пользователя", resultCrm)); } var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); await ConfirmEmail(model.Account, code); return(Tools.CreateResult(true, "", new ResultCrmDb { Succeeded = true })); }
public async Task <IActionResult> RegistrationUserAndSetPassword([FromBody] RegistrationUserArgs registration) { return(await _registrationUserAdapter.RegisterAndSetPassword(registration)); }
public async Task <IActionResult> RegisterUser(RegistrationUserArgs args) { return(Tools.CreateResult(true, "", await _users.RegisterUserAsync(args))); }