public async Task <IActionResult> RegisterGroup(RegisterGroupModel registerGroupModel) { if (!_identityUIEndpoints.GroupRegistrationEnabled) { return(NotFound()); } if (!ModelState.IsValid) { RegisterGroupViewModel registerViewModel = _accountDataService.GetRegisterGroupViewModel(); return(View(registerViewModel)); } CommonUtils.Result.Result result = await _groupRegistrationService.Add(registerGroupModel); if (result.Failure) { RegisterGroupViewModel registerViewModel = _accountDataService.GetRegisterGroupViewModel(); CommonUtils.Result.ResultExtensions.AddResultErrors(ModelState, result); return(View(registerViewModel)); } return(RedirectToAction(nameof(RegisterSuccess))); }
public async Task <Result> Add(RegisterGroupModel registerGroupModel) { ValidationResult validationResult = _registerGroupValidator.Validate(registerGroupModel); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid {typeof(RegisterGroupModel).Name} model"); return(Result.Fail(validationResult.ToResultError())); } Result userExists = await _addUserService.UserExists(registerGroupModel.BaseUser); if (userExists.Success) { _logger.LogError($"User already exists"); return(Result.Fail(USER_ALREADY_EXISTS)); } AddGroupRequest addGroupRequest = new AddGroupRequest() { Name = registerGroupModel.GroupName }; Result <IdStringModel> addGroupResult = await _groupService.AddAsync(addGroupRequest); if (addGroupResult.Failure) { return(Result.Fail(addGroupResult)); } _logger.LogInformation($"Group added. ${addGroupResult.Value.Id}"); Result <IdStringModel> addUserResult = await _addUserService.RegisterForGroup(registerGroupModel.BaseUser); if (addUserResult.Failure) { _logger.LogError($"Failed to add user. Removing group. GroupId {addGroupResult.Value.Id}"); //TODO: remove group return(Result.Fail(addUserResult)); } Result addGroupAdminRoleResult = await AddAdminRole(addUserResult.Value.Id, addGroupResult.Value.Id); if (addGroupAdminRoleResult.Failure) { _logger.LogError($"Failed to add user to group."); //TODO: remove group, user return(Result.Fail(addGroupAdminRoleResult)); } return(Result.Ok()); }
public ActionResult Register() { var model = new RegisterGroupModel(); var query = new EntityQuery2(UserGroup.ENTITY); query.AllProperties = true; query.WhereIs("UserType", UserTypes.Customer); using (_securityService.BeginSystemContext()) { model.AvailableGroups = _entityService.Query(query).Select(e => new UserGroup(e)); } return(View(model)); }
public IActionResult Post([FromBody] RegisterGroupModel model) { // map model to entity var groups = _mapper.Map <Groups>(model); var user = Utilities.getUserId(User); try { // create Group var result = _groupService.Create(groups, user); return(Ok(_mapper.Map <GroupModel>(result))); } catch (AppException ex) { // return error message if there was an exception return(BadRequest(new { message = ex.Message })); } }
public ActionResult Register(RegisterGroupModel model) { using (_securityService.BeginSystemContext()) { var query = new EntityQuery2(UserGroup.ENTITY); query.AllProperties = true; query.WhereIs("UserType", UserTypes.Customer); model.AvailableGroups = _entityService.Query(query).Select(e => new UserGroup(e)); } if (!ModelState.IsValid) { return(View(model)); } else { var selectedGroup = model.AvailableGroups.Single(g => g.Id == model.UserGroup); if (selectedGroup.Name.Equals("Студент", StringComparison.InvariantCultureIgnoreCase) || selectedGroup.Name.Equals("Преподавател", StringComparison.InvariantCultureIgnoreCase)) { return(View("RegisterStudent", new RegisterStudentViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name })); } else if (selectedGroup.Name.Equals("Външен (с читателска карта)", StringComparison.InvariantCultureIgnoreCase)) { return(View("RegisterExternal", new RegisterExternalViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name })); } else { return(View("RegisterOther", new RegisterViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name })); } } }
public async Task <ActionResult <IEnumerable <Registration> > > RegisterGroup(int portalId, int eventId, [FromBody] RegisterGroupModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Event dbEvent = await _eventRepository.GetEventById(portalId, eventId); GroupModel groupModel = new GroupModel { Name = model.GroupName, IsActive = true }; Group dbGroup = await _groupRepository.CreateGroup(portalId, groupModel); List <Registration> registrations = new List <Registration>(); foreach (CamperOverrideModel camper in model.Campers) { try { await ValidateCustomFields(portalId, camper.CustomFields); } catch (Exception ex) { return(BadRequest(ex.Message)); } camper.GroupId = dbGroup.Id; Registration registration = await Register(portalId, camper, dbEvent, model.PaymentId); registrations.Add(registration); } return(Ok(registrations)); }