示例#1
0
        public async Task <Result <IdStringModel> > AddAsync(AddGroupRequest addGroup)
        {
            ValidationResult validationResult = _addGroupValidator.Validate(addGroup);

            if (!validationResult.IsValid)
            {
                _logger.LogWarning($"Invalid AddGroupRequest model");
                return(Result.Fail <IdStringModel>(validationResult.ToResultError()));
            }

            addGroup.Name = addGroup.Name.Trim();

            IBaseSpecification <GroupEntity, GroupEntity> groupExistSpecification = SpecificationBuilder
                                                                                    .Create <GroupEntity>()
                                                                                    .WithName(addGroup.Name)
                                                                                    .Build();

            bool groupExist = await _groupDAO.Exist(groupExistSpecification);

            if (groupExist)
            {
                _logger.LogError($"Group with the same name already exist. GroupName {addGroup.Name}");
                return(Result.Fail <IdStringModel>(GROUP_WITH_NAME_ALREADY_EXIST));
            }

            GroupEntity group = new GroupEntity(
                name: addGroup.Name);

            bool addResult = await _groupDAO.Add(group);

            if (!addResult)
            {
                _logger.LogError($"Failed to add group");
                return(Result.Fail <IdStringModel>(FAILED_TO_ADD_GROUP));
            }

            IdStringModel idStringModel = new IdStringModel(
                id: group.Id);

            return(Result.Ok(idStringModel));
        }
示例#2
0
        public async Task <Result <IdStringModel> > RegisterForGroup(GroupBaseUserRegisterRequest registerRequest)
        {
            ValidationResult validationResult = _groupBaseUserRegisterRequestValidator.Validate(registerRequest);

            if (!validationResult.IsValid)
            {
                _logger.LogError($"Invalid {typeof(GroupBaseUserRegisterRequest).Name} model");
                return(Result.Fail <IdStringModel>(validationResult.ToResultError()));
            }

            Result <AppUserEntity> addUserResult = await AddUser(registerRequest);

            if (addUserResult.Failure)
            {
                return(Result.Fail <IdStringModel>(addUserResult));
            }

            IdStringModel idStringModel = new IdStringModel(
                id: addUserResult.Value.Id);

            return(Result.Ok(idStringModel));
        }