public async Task <QueryResult <GroupDto> > GetProjectGroupsAsync(int projectId, TabularData tabularData,
                                                                          Func <Sorting, string> sort = null)
        {
            if (projectId < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(projectId));
            }

            var orderField = string.Empty;

            if (sort != null && tabularData.Sorting != null)
            {
                orderField = sort(tabularData.Sorting);
            }

            if (!string.IsNullOrWhiteSpace(tabularData.Search))
            {
                tabularData.Search = UsersHelper.ReplaceWildcardCharacters(tabularData.Search);
            }

            var prm = new DynamicParameters();

            prm.Add("@projectId", projectId);
            prm.Add("@Offset", tabularData.Pagination.Offset);
            prm.Add("@Limit", tabularData.Pagination.Limit);
            prm.Add("@OrderField", orderField);
            prm.Add("@Search", tabularData.Search);
            prm.Add("@Total", dbType: DbType.Int32, direction: ParameterDirection.Output);
            prm.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output);

            var result =
                (await
                 _connectionWrapper.QueryAsync <Group>("GetAvailableGroupsForProject", prm,
                                                       commandType: CommandType.StoredProcedure)).ToList();

            var errorCode = prm.Get <int?>("ErrorCode");

            if (errorCode.HasValue)
            {
                switch (errorCode.Value)
                {
                case (int)SqlErrorCodes.ProjectWithCurrentIdNotExist:
                    throw new ResourceNotFoundException(ErrorMessages.ProjectNotExist, ErrorCodes.ResourceNotFound);
                }
            }

            var total = prm.Get <int?>("Total");

            var queryDataResult = new QueryResult <GroupDto> {
                Items = GroupMapper.Map(result), Total = total ?? 0
            };

            return(queryDataResult);
        }
Example #2
0
        public async Task <QueryResult <GroupDto> > GetUserGroupsAsync(int userId, TabularData tabularData, Func <Sorting, string> sort = null)
        {
            var orderField = string.Empty;

            if (sort != null && tabularData.Sorting != null)
            {
                orderField = sort(tabularData.Sorting);
            }

            if (!string.IsNullOrWhiteSpace(tabularData.Search))
            {
                tabularData.Search = UsersHelper.ReplaceWildcardCharacters(tabularData.Search);
            }

            var parameters = new DynamicParameters();

            parameters.Add("@UserId", userId);
            parameters.Add("@Offset", tabularData.Pagination.Offset);
            parameters.Add("@Limit", tabularData.Pagination.Limit);
            parameters.Add("@OrderField", orderField);
            parameters.Add("@Search", tabularData.Search);
            parameters.Add("@Total", dbType: DbType.Int32, direction: ParameterDirection.Output);
            parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output);
            var userGroups = await _connectionWrapper.QueryAsync <Group>("GetUsersGroups", parameters, commandType : CommandType.StoredProcedure);

            var total     = parameters.Get <int?>("Total");
            var errorCode = parameters.Get <int?>("ErrorCode");

            if (errorCode.HasValue)
            {
                switch (errorCode.Value)
                {
                case (int)SqlErrorCodes.GeneralSqlError:
                    throw new BadRequestException(ErrorMessages.GeneralErrorOfGettingUserGroups);

                case (int)SqlErrorCodes.UserLoginNotExist:
                    throw new ResourceNotFoundException(ErrorMessages.UserNotExist, ErrorCodes.ResourceNotFound);
                }
            }

            if (!total.HasValue)
            {
                throw new BadRequestException(ErrorMessages.TotalNull);
            }

            var mappedGroups = GroupMapper.Map(userGroups);

            var queryDataResult = new QueryResult <GroupDto>()
            {
                Items = mappedGroups, Total = total.Value
            };

            return(queryDataResult);
        }
Example #3
0
        public async Task <HueGroup> GetGroup(string id, CancellationToken cancellationToken)
        {
            Group?group = await _hueClient.GetGroupAsync(id);

            if (group == null)
            {
                throw new NotFoundException(id);
            }

            return(GroupMapper.Map(group));
        }
        public async Task <GroupDto> GetGroupDetailsAsync(int groupId)
        {
            var parameters = new DynamicParameters();

            parameters.Add("@GroupId", groupId);

            var result =
                await
                _connectionWrapper.QueryAsync <Group>("GetGroupDetails", parameters,
                                                      commandType : CommandType.StoredProcedure);

            var enumerable = result as IList <Group> ?? result.ToList();
            var group      = enumerable.Any() ? enumerable.First() : new Group();

            return(GroupMapper.Map(group));
        }
Example #5
0
        public IEnumerable <IGroup> GetUserGroups(Guid userId)
        {
            var mapper = new GroupMapper();

            return(mapper.Map(queryService.GetUserGroups(userId)));
        }
Example #6
0
        public IGroup GetGroup(Guid groupId)
        {
            var mapper = new GroupMapper();

            return(mapper.Map(queryService.GetGroup(groupId)));
        }
Example #7
0
        public IEnumerable <IGroup> GetGroups()
        {
            var mapper = new GroupMapper();

            return(mapper.Map(queryService.GetGroups()));
        }