示例#1
0
        public GetGroupsResponse Get(GetGroupsRequest request)
        {
            GetGroupsResponse response = new GetGroupsResponse();

            response.Groups = _brainManager.GetGroups(request.Group);
            return(response);
        }
示例#2
0
        internal virtual GetGroupsResponse GetGroups(GetGroupsRequest request)
        {
            var marshaller   = GetGroupsRequestMarshaller.Instance;
            var unmarshaller = GetGroupsResponseUnmarshaller.Instance;

            return(Invoke <GetGroupsRequest, GetGroupsResponse>(request, marshaller, unmarshaller));
        }
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonXRayConfig config = new AmazonXRayConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonXRayClient client = new AmazonXRayClient(creds, config);

            GetGroupsResponse resp = new GetGroupsResponse();

            do
            {
                GetGroupsRequest req = new GetGroupsRequest
                {
                    NextToken = resp.NextToken
                };

                resp = client.GetGroups(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.Groups)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
示例#4
0
        /// <summary>
        /// Get the Group with specified name.
        /// </summary>
        /// <param name="groupName">name of group to retrieve</param>
        /// <returns>Group having the specified groupName; null if group not found</returns>
        /// <exception cref="ArgumentException">Thrown if invalid argument</exception>
        /// <exception cref="ApiException">Thrown if the API call fails</exception>
        public async Task <GroupWithMembers> x(string groupName)
        {
            if (string.IsNullOrWhiteSpace(groupName))
            {
                throw new ArgumentException("groupName cannot be null or whitespace", nameof(groupName));
            }

            // get all groups
            var getAllGroupsRequest  = new GetGroupsRequest();
            var getAllGroupsResponse = await _apiClient.ExecuteRequestAsync(getAllGroupsRequest);

            // find the group matching "groupName"; this group object does NOT include all the members.
            var group = getAllGroupsResponse.Content.FirstOrDefault(x => x.Name == groupName);

            if (group == null)
            {
                //group with name of groupName not found
                return(null);
            }

            // get the full group data for the found group
            var getGroupRequest  = new GetGroupRequest(group.Id);
            var getGroupResponse = await _apiClient.ExecuteRequestAsync(getGroupRequest);

            return(getGroupResponse.Content);
        }
示例#5
0
        public override async Task <GroupInfo> GetGroupInfo(GetGroupsRequest request, ServerCallContext context)
        {
            try
            {
                var group = await _db.Groups.FirstOrDefaultAsync(x => x.Uuid == Guid.Parse(request.GroupId));

                return(new GroupInfo
                {
                    Title = group.Title,
                    GroupId = request.GroupId,
                    GroupImage = group.PhotoRefNavigation != null
                        ? new Protos.Media
                    {
                        MediaUrl = group.PhotoRefNavigation.Url,
                        MimeType = group.PhotoRefNavigation.MimeType,
                        SizeBytes = (ulong)@group.PhotoRefNavigation.Size
                    }
                        : null,
                    GroupMemberIds = { group.GroupMembers.Select(x => x.Userid) }
                });
            }
            catch (NullReferenceException)
            {
                // empty if the group does not exist
                return(new GroupInfo
                {
                });
            }
        }
示例#6
0
        public void GetAll()
        {
            var expectedJson = GetJsonPayload("/groups/groupsApi/getAllGroups.json");
            var restRequest  = MockRestResponse(expectedJson);
            var getRequest   = new GetGroupsRequest
            {
                SortBy       = SortProperty.Name,
                SortType     = SortType.Desc,
                ItemsPerPage = 10,
                Page         = 7
            };
            var response = Client.GroupsApi.Get(getRequest);
            EzTextingResponse <Group> ezResponse = new EzTextingResponse <Group>("Success", 200, response);

            Assert.That(Serializer.Serialize(ezResponse), Is.EqualTo(expectedJson));

            Assert.AreEqual(Method.GET, restRequest.Value.Method);

            Assert.That(restRequest.Value.Resource, Is.StringContaining("User=login"));
            Assert.That(restRequest.Value.Resource, Is.StringContaining("Password=password"));

            Assert.That(restRequest.Value.Resource, Is.StringContaining("sortBy=Name"));
            Assert.That(restRequest.Value.Resource, Is.StringContaining("sortDir=desc"));
            Assert.That(restRequest.Value.Resource, Is.StringContaining("itemsPerPage=10"));
            Assert.That(restRequest.Value.Resource, Is.StringContaining("page=7"));
        }
示例#7
0
        public GetGroupsResponse GetGroups(GetGroupsRequest request)
        {
            var response = new GetGroupsResponse();
            var groups   = DataContext.Groups.ToList();

            response.Groups = groups.MapTo <GetGroupsResponse.Group>();
            return(response);
        }
示例#8
0
        /// <summary>
        /// Initiates the asynchronous execution of the GetGroups operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetGroups operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public virtual Task <GetGroupsResponse> GetGroupsAsync(GetGroupsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = GetGroupsRequestMarshaller.Instance;
            var unmarshaller = GetGroupsResponseUnmarshaller.Instance;

            return(InvokeAsync <GetGroupsRequest, GetGroupsResponse>(request, marshaller,
                                                                     unmarshaller, cancellationToken));
        }
        /// <summary>
        /// Initiates the asynchronous execution of the GetGroups operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetGroups operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public virtual Task <GetGroupsResponse> GetGroupsAsync(GetGroupsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = GetGroupsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetGroupsResponseUnmarshaller.Instance;

            return(InvokeAsync <GetGroupsResponse>(request, options, cancellationToken));
        }
示例#10
0
        public async Task <HttpResponseMessage> GetGroupByFilter(string filter, string select, CancellationToken token = default)
        {
            var request = new GetGroupsRequest(filter, select);

            request.Headers.Authorization ??= GetAuthZHeader();
            var response = await SendAsync(request, token);

            return(response);
        }
示例#11
0
        internal virtual GetGroupsResponse GetGroups(GetGroupsRequest request)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = GetGroupsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetGroupsResponseUnmarshaller.Instance;

            return(Invoke <GetGroupsResponse>(request, options));
        }
示例#12
0
        public override async Task <GetGroupsResponse> GetGroups(GetGroupsRequest request, ServerCallContext context)
        {
            var groups = await this.groupService.GetGroupsAsync((IncludeLevel)request.IncludeLevel).ConfigureAwait(false);

            var response = new GetGroupsResponse();

            response.Groups.AddRange(groups.ToGRPCModels());
            return(response);
        }
示例#13
0
        public void SetAndGetGroups()
        {
            var redisCacheEngine   = ObjectFactory.GetObject <ICacheEngine>("redis");
            var cacheConfiguration = ObjectFactory.GetObject <ICacheConfiguration>();
            var groups             = new GetGroupsResponse
            {
                Groups = new Page <Group>(new List <Group>
                {
                    new Group
                    {
                        Id             = "groups/1",
                        Name           = "test 1",
                        OrganisationId = "organisations/1"
                    },
                    new Group
                    {
                        Id             = "groups/2",
                        Name           = "test 2",
                        OrganisationId = "organisations/1"
                    },
                    new Group
                    {
                        Id             = "groups/3",
                        Name           = "test 3",
                        OrganisationId = "organisations/1"
                    }
                },
                                          new PagingStatus(10, 1, 3))
            };
            var request = new GetGroupsRequest
            {
                OrganisationId = "organisations/1",
                Paging         = new PageRequestWithSort(1, 10)
            };
            var cacheKey =
                CacheKey.ForProfile(cacheConfiguration.GetCacheProfile(CacheProfiles.Groups)).WithKey(
                    ((ICacheable)request).CacheItemKey).Create();

            redisCacheEngine.Put(new CacheItemInfo
            {
                Item = groups,
                Key  = cacheKey
            });

            GetGroupsResponse fromCacheGroups;

            redisCacheEngine.Get(cacheKey, out fromCacheGroups);

            Assert.That(fromCacheGroups.Groups != null);
        }
        public void BuildQueryParamsFromGetRequest()
        {
            var request = new GetGroupsRequest
            {
                SortBy       = SortProperty.Name,
                SortType     = SortType.Asc,
                ItemsPerPage = 10,
                Page         = 5
            };
            var queryParams = ClientUtils.BuildQueryParams(request).ToString();

            Console.WriteLine("get request: " + queryParams);

            Assert.That(queryParams, Is.StringContaining("sortBy=Name"));
            Assert.That(queryParams, Is.StringContaining("sortDir=asc"));
            Assert.That(queryParams, Is.StringContaining("itemsPerPage=10"));
            Assert.That(queryParams, Is.StringContaining("page=5"));
        }
示例#15
0
        public GetGroupsResponse GetGroups(GetGroupsRequest request)
        {
            int totalRecords;
            var data = SortData(request.Search, request.SortingDictionary, out totalRecords);

            if (request.Take != -1)
            {
                data = data.Skip(request.Skip).Take(request.Take);
            }

            return(new GetGroupsResponse
            {
                TotalRecords = totalRecords,
                Groups = data.ToList().MapTo <GetGroupsResponse.Group>()
            });
            //var response = new GetGroupsResponse();
            //var groups = DataContext.Groups.ToList();
            //response.Groups = groups.MapTo<GetGroupsResponse.Group>();
            //return response;
        }
示例#16
0
        public async override Task <GetGroupsResponse> GetGroups(GetGroupsRequest request, ServerCallContext context)
        {
            try
            {
                var result = new GetGroupsResponse {
                    Success = true
                };
                var userIdentifier = GetUserIdentifier(context);
                var user           = await _groupStore.GetUser(userIdentifier);

                if (user != null)
                {
                    result.UserId = user.Id;
                    var groups = await _groupStore.GetGroups(user.Id);

                    if (groups.Any())
                    {
                        result.Groups.AddRange(groups.Select(s => new GroupDto
                        {
                            Id       = s.GroupId,
                            Label    = s.GroupLabel,
                            Password = s.UserRole == UserRole.Owner ? s.Group.Password : string.Empty,
                            UserName = s.UserName,
                            UserRole = (int)s.UserRole,
                            UserIcon = s.UserIcon
                        }));
                    }
                }

                return(result);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(new GetGroupsResponse
                {
                    Success = false,
                    Message = ex.Message
                });
            }
        }
示例#17
0
        public Task <List <GroupDTO> > GetGroupsAsync(CancellationTokenSource cancellationTokenSource) =>
        Task.Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            List <GroupDTO> foundGroups = null;

            GetGroupsRequest getGroupsRequest = new GetGroupsRequest()
            {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Url         = GlobalSettings.Instance.Endpoints.GroupsEndpoints.GetGroups
            };

            try {
                GetGroupsResponse getGroupsResponse = await _requestProvider.GetAsync <GetGroupsRequest, GetGroupsResponse>(getGroupsRequest);

                if (getGroupsResponse != null)
                {
                    foundGroups = getGroupsResponse.Data.ToList();
                }
                else
                {
                    throw new InvalidOperationException(GroupsService._GET_GROUPS_COMMON_ERROR_MESSAGE);
                }
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (Exception exc) {
                Crashes.TrackError(exc);

                throw;
            }

            return(foundGroups);
        }, cancellationTokenSource.Token);
示例#18
0
        public void CrudOperations()
        {
            var group = new Group
            {
                Name = "group 2",
                Note = "note 2"
            };

            var created = Client.GroupsApi.Create(group);

            Assert.NotNull(created.Id);

            Console.WriteLine("created group: " + created);

            created.Name += "_upd";
            var updated = Client.GroupsApi.Update(created);

            Assert.NotNull(updated.Id);
            Assert.AreEqual(created.Name, updated.Name);
            Console.WriteLine("updated group: " + created);

            updated = Client.GroupsApi.Get((long)updated.Id);
            Console.WriteLine("get updated group: " + updated);

            var request = new GetGroupsRequest
            {
                SortType     = SortType.Desc,
                ItemsPerPage = 2,
                Page         = 0
            };
            var groups = Client.GroupsApi.Get(request);

            Console.WriteLine("get all groups: " + string.Join(",", groups));

            Client.GroupsApi.Delete((long)created.Id);
            var ex = Assert.Throws <EzTextingApiException>(() => Client.GroupsApi.Get((long)created.Id));

            Assert.That(ex.Message, Is.EqualTo("Sorry, nothing was found"));
        }
示例#19
0
        /// <summary>
        /// 查询所有分组
        /// </summary>
        public static string GetGroups()
        {
            try
            {
                IMpClient mpClient = new MpClient();
                var       request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo()
                    {
                        AppId = AppId, AppSecret = AppSecret
                    }
                };
                var response = mpClient.Execute(request);
                if (response.IsError)
                {
                    return(null);
                }

                var createRequest = new GetGroupsRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                };

                var createResponse = mpClient.Execute(createRequest);
                if (createResponse.IsError)
                {
                    LogHelper.WriteLog(typeof(UserGroupOperation), createResponse.ErrInfo.ErrMsg);
                    return(null);
                }
                var jsonSerializer = new JavaScriptSerializer();
                return(jsonSerializer.Serialize(createResponse.Groups));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(UserGroupOperation), ex);
                throw new Exception(ex.Message);
            }
        }
        public GetGroupsResponse GetGroups(ISession session, GetGroupsRequest request)
        {
            var response = request.CreateResponse <GetGroupsResponse>();
            var groups   = _groupChatsRepository.GetGroupsForUser(session.UserId).Select(id => _groupChatsRepository.GetChat(id));

            //TODO: AutoMapper
            response.Groups = groups.Select(groupChat =>
                                            new GroupInfo
            {
                Avatar       = groupChat.Avatar,
                CreatedAt    = groupChat.CreatedAt,
                GroupId      = groupChat.GroupId,
                Name         = groupChat.Name,
                OwnerId      = groupChat.OwnerId,
                Participants = groupChat.Participants
                               .Select(p => new ClientDto.Entities.GroupChatParticipant {
                    UserId = p.UserId, Avatar = p.Avatar, Devices = p.Devices, Name = p.Name
                })
                               .ToList()
            }).ToList();

            return(response);
        }
示例#21
0
        /// <summary>
        /// 查询所有分组测试
        /// </summary>
        public static void GetGroupsTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetGroupsRequest createRequest = new GetGroupsRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
            };

            var createResponse = mpClient.Execute(createRequest);

            if (createResponse.IsError)
            {
                Console.WriteLine("查询所有分组失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("查询分组信息成功,共有分组" + createResponse.Groups.groups.Count.ToString() + "个");
                JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
                string groups = jsonSerializer.Serialize(createResponse.Groups);
                Console.WriteLine(groups);
            }
        }
 public Task<GetGroupsResponse> GetGroups(GetGroupsRequest request)
 {
     return _connectionManager.SendRequestAndWaitResponse<GetGroupsResponse>(request);
 }
示例#23
0
 public Task <GetGroupsResponse> GetGroups(GetGroupsRequest request)
 {
     return(_connectionManager.SendRequestAndWaitResponse <GetGroupsResponse>(request));
 }
 /// <summary>
 /// Get a list of groups stored in your Ez Texting account.
 /// </summary>
 /// <param name="request">groups that were found</param>
 /// <returns>groups that were found</returns>
 /// <exception cref="EzTextingApiException">in case error has occurred on server side, check provided error description.</exception>
 /// <exception cref="EzTextingClientException">in case error has occurred in client.</exception>
 public IList <Group> Get(GetGroupsRequest request)
 {
     return(_client.Get <Group>(GroupsPath, request).Entries);
 }
        public async Task <IReadOnlyList <GroupDto> > GetGroups([FromQuery] GetGroupsRequest request)
        {
            var groups = await _groupService.GetGroups(request.Filter, request.Pagination);

            return(groups);
        }