Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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 }));
            }
        }
Ejemplo n.º 5
0
        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));
        }