Ejemplo n.º 1
0
        public ResponseBase AddClients([FromBody] AddClientRequest request)
        {
            if (request == null || request.ClientIps == null)
            {
                return(ResponseBase.InvalidInput("参数错误"));
            }

            if (request.ClientIps.Count > 101)
            {
                return(ResponseBase.InvalidInput("最多支持一次添加101个IP"));
            }
            try {
                if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out ResponseBase response))
                {
                    return(response);
                }

                if (request.ClientIps.Any(a => !IPAddress.TryParse(a, out IPAddress ip)))
                {
                    return(ResponseBase.InvalidInput("IP格式不正确"));
                }

                foreach (var clientIp in request.ClientIps)
                {
                    ClientData clientData = HostRoot.Instance.ClientSet.FirstOrDefault(a => a.MinerIp == clientIp);
                    if (clientData != null)
                    {
                        continue;
                    }
                    HostRoot.Instance.ClientSet.AddMiner(clientIp);
                }
                return(ResponseBase.Ok());
            }
            catch (Exception e) {
                Logger.ErrorDebugLine(e);
                return(ResponseBase.ServerError(e.Message));
            }
        }
Ejemplo n.º 2
0
        public async Task UpdateActivityAsync(AddClientRequest request)
        {
            var member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(request.SaasUserId);

            member.Status       = UserStatus.Active;
            member.LastActivity = DateTimeOffset.UtcNow;

            var client = await UnitOfWork.ClientRepository.GetClientByConnectionIdAsync(request.ConnectionId);

            client.UserAgent          = request.UserAgent;
            client.LastActivity       = member.LastActivity;
            client.LastClientActivity = DateTimeOffset.UtcNow;

            // Remove any Afk notes.
            if (member.IsAfk)
            {
                member.IsAfk = false;
            }

            await UnitOfWork.MemberRepository.UpdateMemberAsync(member);

            await UnitOfWork.ClientRepository.UpdateClientAsync(client);
        }
Ejemplo n.º 3
0
        public async Task <ClientResponse> AddClientAsync(AddClientRequest request)
        {
            var member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(request.SaasUserId);

            if (member == null)
            {
                await _memberService.AddMemberAsync(request.SaasUserId, request.Email);

                member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(request.SaasUserId);
            }

            await _memberService.UpdateMemberStatusAsync(member.SaasUserId, UserStatus.Online);

            var isClientExists = await UnitOfWork.ClientRepository.IsClientExistsAsync(request.ConnectionId);

            if (isClientExists)
            {
                throw new NetKitChatInvalidOperationException($"Unable to add client. Client {nameof(request.ConnectionId)}:{request.ConnectionId} already exists.");
            }

            var client = new Client
            {
                Id                 = Guid.NewGuid(),
                MemberId           = member.Id,
                Member             = member,
                ClientConnectionId = request.ConnectionId,
                LastActivity       = member.LastActivity,
                LastClientActivity = _dateTimeProvider.GetUtcNow(),
                Name               = request.UserName,
                UserAgent          = request.UserAgent
            };

            await UnitOfWork.ClientRepository.AddClientAsync(client);

            return(DomainModelsMapper.MapToClientResponse(client));
        }
 public bool Add(AddClientRequest request)
 {
     return(_serviceProvider.GetService <IClientService> .Add(request));
 }
Ejemplo n.º 5
0
 public async Task <AddClientResponse> Add(AddClientRequest request)
 {
     return(await Client.Execute <AddClientRequest, AddClientResponse>(request));
 }
        public async Task <AddClientResult> ResolveAdd(Uri wellKnownConfigurationUri, AddClientRequest client, string authorizationHeaderValue = null)
        {
            var configuration = await _configurationClient.GetConfiguration(wellKnownConfigurationUri).ConfigureAwait(false);

            return(await _addClientOperation.ExecuteAsync(new Uri(configuration.Content.ClientsEndpoint), client, authorizationHeaderValue).ConfigureAwait(false));
        }
Ejemplo n.º 7
0
 public int AddClient(AddClientRequest request)
 {
     return(Post <int>("webapi/physical-access/client/add", request));
 }