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)); }
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)); }