Exemple #1
0
        public void RegisterForRemoteNotifications()
        {
            if (this.notificationManager == null)
            {
                return;
            }
            this.notificationManager.RegisterForRemoteNotifications();
            string deviceToken = this.notificationManager.GetDeviceToken();

            if (!string.IsNullOrEmpty(deviceToken))
            {
                RegisterDeviceRequest registerDeviceRequest = new RegisterDeviceRequest();
                registerDeviceRequest.DeviceToken = deviceToken;
                CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>();
                if (currentPlayer == null)
                {
                    Service.Get <StaRTSLogger>().Warn("Trying to register for remote notification before CurrentPlayer is available");
                    return;
                }
                registerDeviceRequest.PlayerId = currentPlayer.PlayerId;
                RegisterDeviceCommand registerDeviceCommand = new RegisterDeviceCommand(registerDeviceRequest);
                registerDeviceCommand.AddSuccessCallback(new AbstractCommand <RegisterDeviceRequest, RegisterDeviceResponse> .OnSuccessCallback(this.OnRegisterSuccess));
                if (!Service.Get <ServerAPI>().Enabled&& Service.Get <CurrentPlayer>().CampaignProgress.FueInProgress)
                {
                    Service.Get <ServerAPI>().Enabled = true;
                }
                Service.Get <ServerAPI>().Sync(registerDeviceCommand);
                Service.Get <BILoggingController>().TrackNetworkMappingInfo("ur", deviceToken);
            }
        }
Exemple #2
0
        public RegisterDeviceResponse RegisterDevice(RegisterDeviceRequest request)
        {
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            RegisterDeviceHeaders headers = new RegisterDeviceHeaders();

            return(RegisterDeviceWithOptions(request, headers, runtime));
        }
Exemple #3
0
        public async Task <RegisterDeviceResponse> RegisterDeviceAsync(RegisterDeviceRequest request)
        {
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            RegisterDeviceHeaders headers = new RegisterDeviceHeaders();

            return(await RegisterDeviceWithOptionsAsync(request, headers, runtime));
        }
Exemple #4
0
        internal virtual RegisterDeviceResponse RegisterDevice(RegisterDeviceRequest request)
        {
            var marshaller   = RegisterDeviceRequestMarshaller.Instance;
            var unmarshaller = RegisterDeviceResponseUnmarshaller.Instance;

            return(Invoke <RegisterDeviceRequest, RegisterDeviceResponse>(request, marshaller, unmarshaller));
        }
Exemple #5
0
        public void RegisterForRemoteNotifications()
        {
            if (this.notificationManager == null)
            {
                return;
            }
            this.notificationManager.RegisterForRemoteNotifications();
            string deviceToken = this.notificationManager.GetDeviceToken();
            RegisterDeviceRequest registerDeviceRequest = new RegisterDeviceRequest();

            registerDeviceRequest.DeviceToken = deviceToken;
            CurrentPlayer currentPlayer = Service.CurrentPlayer;

            if (currentPlayer == null)
            {
                Service.Logger.Warn("Trying to register for remote notification before CurrentPlayer is available");
                return;
            }
            registerDeviceRequest.PlayerId = currentPlayer.PlayerId;
            RegisterDeviceCommand registerDeviceCommand = new RegisterDeviceCommand(registerDeviceRequest);

            registerDeviceCommand.AddSuccessCallback(new AbstractCommand <RegisterDeviceRequest, RegisterDeviceResponse> .OnSuccessCallback(this.OnRegisterSuccess));
            if (!Service.ServerAPI.Enabled && Service.CurrentPlayer.CampaignProgress.FueInProgress)
            {
                Service.ServerAPI.Enabled = true;
            }
            Service.ServerAPI.Sync(registerDeviceCommand);
        }
Exemple #6
0
        /// <summary>
        /// 注册设备
        /// </summary>
        /// <param name="device"></param>
        /// <returns></returns>
        /// <remarks></remarks>
        public RegisterDevicesResult RegisterDevice(RegisterDeviceRequest request)
        {
            var result = new RegisterDevicesResult();

            var device = CreateDevice(request);

            return(RegisterDevice(device));
        }
Exemple #7
0
 public async Task <ResponseDTO> Register(RegisterDeviceRequest device)
 {
     if (ModelState.IsValid)
     {
         return(await _deviceApplicationService.RegisterDeviceAsync(device));
     }
     return(ModelState.ToResponse());
 }
Exemple #8
0
        /// <summary>
        /// Initiates the asynchronous execution of the RegisterDevice operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the RegisterDevice 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>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/cognito-sync-2014-06-30/RegisterDevice">REST API Reference for RegisterDevice Operation</seealso>
        public virtual Task <RegisterDeviceResponse> RegisterDeviceAsync(RegisterDeviceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = RegisterDeviceRequestMarshaller.Instance;
            var unmarshaller = RegisterDeviceResponseUnmarshaller.Instance;

            return(InvokeAsync <RegisterDeviceRequest, RegisterDeviceResponse>(request, marshaller,
                                                                               unmarshaller, cancellationToken));
        }
Exemple #9
0
        public virtual Device CreateDevice(RegisterDeviceRequest request)
        {
            var result = new Device()
            {
                AppId = request.AppId, DeviceToken = request.DeviceToken, DeviceType = request.DeviceType
            };

            return(result);
        }
Exemple #10
0
        internal virtual RegisterDeviceResponse RegisterDevice(RegisterDeviceRequest request)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = RegisterDeviceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RegisterDeviceResponseUnmarshaller.Instance;

            return(Invoke <RegisterDeviceResponse>(request, options));
        }
Exemple #11
0
        /// <summary>
        /// Initiates the asynchronous execution of the RegisterDevice operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the RegisterDevice 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>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/cognito-sync-2014-06-30/RegisterDevice">REST API Reference for RegisterDevice Operation</seealso>
        public virtual Task <RegisterDeviceResponse> RegisterDeviceAsync(RegisterDeviceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = RegisterDeviceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RegisterDeviceResponseUnmarshaller.Instance;

            return(InvokeAsync <RegisterDeviceResponse>(request, options, cancellationToken));
        }
Exemple #12
0
        public async Task <RegisterDeviceResponse> RegisterDeviceWithOptionsAsync(RegisterDeviceRequest request, RegisterDeviceHeaders headers, AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime)
        {
            AlibabaCloud.TeaUtil.Common.ValidateModel(request);
            Dictionary <string, object> body = new Dictionary <string, object>()
            {
            };

            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.Collaborators))
            {
                body["collaborators"] = request.Collaborators;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DepartmentId))
            {
                body["departmentId"] = request.DepartmentId;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.Description))
            {
                body["description"] = request.Description;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DeviceKey))
            {
                body["deviceKey"] = request.DeviceKey;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DeviceName))
            {
                body["deviceName"] = request.DeviceName;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.Managers))
            {
                body["managers"] = request.Managers;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.UserId))
            {
                body["userId"] = request.UserId;
            }
            Dictionary <string, string> realHeaders = new Dictionary <string, string>()
            {
            };

            if (!AlibabaCloud.TeaUtil.Common.IsUnset(headers.CommonHeaders))
            {
                realHeaders = headers.CommonHeaders;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(headers.XAcsDingtalkAccessToken))
            {
                realHeaders["x-acs-dingtalk-access-token"] = AlibabaCloud.TeaUtil.Common.ToJSONString(headers.XAcsDingtalkAccessToken);
            }
            AlibabaCloud.OpenApiClient.Models.OpenApiRequest req = new AlibabaCloud.OpenApiClient.Models.OpenApiRequest
            {
                Headers = realHeaders,
                Body    = AlibabaCloud.OpenApiUtil.Client.ParseToMap(body),
            };
            return(TeaModel.ToObject <RegisterDeviceResponse>(await DoROARequestAsync("RegisterDevice", "devicemng_1.0", "HTTP", "POST", "AK", "/v1.0/devicemng/devices", "json", req, runtime)));
        }
Exemple #13
0
        public async Task RegisterDevice_Call()
        {
            //--------------    Arrange     -------------
            CommonArrangements();

            var request = new RegisterDeviceRequest();
            var command = new RegisterDeviceCommand();

            A.CallTo(() => mapper.Map <RegisterDeviceRequest, RegisterDeviceCommand>(request)).Returns(command);

            //--------------    Act     -------------
            var resp = deviceService.RegisterDeviceAsync(request);

            //--------------    Assert     -------------

            A.CallTo(() => bus.SendAsync(command)).MustHaveHappened(Repeated.Exactly.Once);
        }
Exemple #14
0
        public async Task <IActionResult> CreateDevice([FromBody] RegisterDeviceRequest request)
        {
            var user = await UserManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound());
            }
            var device = await DbContext.UserDevices.SingleOrDefaultAsync(x => x.UserId == user.Id && x.DeviceId == request.DeviceId);

            if (device is not null)
            {
                ModelState.AddModelError(nameof(request.DeviceId), $"A device with id {request.DeviceId} already exists.");
                return(BadRequest(new ValidationProblemDetails(ModelState)));
            }
            var shouldEnablePushNotifications = !string.IsNullOrWhiteSpace(request.PnsHandle);

            if (shouldEnablePushNotifications)
            {
                try {
                    await PushNotificationService.Register(request.DeviceId, request.PnsHandle, request.Platform, user.Id, request.Tags?.ToArray());
                } catch (Exception exception) {
                    Logger.LogError("An exception occurred when connection to Azure Notification Hubs. Exception is '{Exception}'. Inner Exception is '{InnerException}'.", exception.Message, exception.InnerException?.Message ?? "N/A");
                    throw;
                }
            }
            device = new UserDevice {
                DeviceId = request.DeviceId,
                Name     = request.Name,
                Platform = request.Platform,
                IsPushNotificationsEnabled = shouldEnablePushNotifications,
                UserId      = user.Id,
                DateCreated = DateTimeOffset.UtcNow,
                Model       = request.Model,
                OsVersion   = request.OsVersion,
                Data        = request.Data
            };
            DbContext.UserDevices.Add(device);
            await DbContext.SaveChangesAsync();

            var response = DeviceInfo.FromUserDevice(device);
            var @event   = new DeviceCreatedEvent(response, SingleUserInfo.FromUser(user));
            await EventService.Publish(@event);

            return(CreatedAtAction(nameof(GetDeviceById), new { deviceId = device.DeviceId }, response));
        }
        public async Task <ResponseDTO> RegisterDeviceAsync(RegisterDeviceRequest newDevice)
        {
            //Map to Command
            var command = _mapper.Map <RegisterDeviceRequest, RegisterDeviceCommand>(newDevice);

            var response = await ValidateCellphoneAndUser(newDevice.CellphoneNumber, newDevice.AssignedAmigoTenantTUserId);

            if (response.IsValid)
            {
                //Execute Command
                var resp = await _bus.SendAsync(command);

                ResponseBuilder.Correct(resp);
            }

            return(response);
        }
Exemple #16
0
        /// <summary>
        /// Initiates the asynchronous execution of the RegisterDevice operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the RegisterDevice operation on AmazonCognitoSyncClient.</param>
        /// <param name="callback">An Action delegate that is invoked when the operation completes.</param>
        /// <param name="options">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        public void RegisterDeviceAsync(RegisterDeviceRequest request, AmazonServiceCallback <RegisterDeviceRequest, RegisterDeviceResponse> callback, AsyncOptions options = null)
        {
            options = options == null?new AsyncOptions():options;
            var marshaller   = new RegisterDeviceRequestMarshaller();
            var unmarshaller = RegisterDeviceResponseUnmarshaller.Instance;
            Action <AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper = null;

            if (callback != null)
            {
                callbackHelper = (AmazonWebServiceRequest req, AmazonWebServiceResponse res, Exception ex, AsyncOptions ao) => {
                    AmazonServiceResult <RegisterDeviceRequest, RegisterDeviceResponse> responseObject
                        = new AmazonServiceResult <RegisterDeviceRequest, RegisterDeviceResponse>((RegisterDeviceRequest)req, (RegisterDeviceResponse)res, ex, ao.State);
                    callback(responseObject);
                }
            }
            ;
            BeginInvoke <RegisterDeviceRequest>(request, marshaller, unmarshaller, options, callbackHelper);
        }
        //在某一产品下创建一台设备
        public void TestRegisterDevice()
        {
            DefaultAcsClient acsClient = Demo.IotClient.GetClient();

            RegisterDeviceRequest request = new RegisterDeviceRequest();

            request.ProductKey = "<productKey>";
            request.DeviceName = "device0822";


            RegisterDeviceResponse response = acsClient.GetAcsResponse(request);

            Console.WriteLine(response.Success);
            Console.WriteLine(response.ErrorMessage);

            RegisterDeviceResponse.RegisterDevice_Data device = response.Data;
            Console.WriteLine("Device IotId: " + device.IotId);
            Console.WriteLine("Device Secret: " + device.DeviceSecret);
            Console.WriteLine("Device Name: " + device.DeviceName);
        }
        protected override async Task <Entity> CreateNewAsync(ApiOptions options)
        {
            // Create a new object
            var request = new RegisterDeviceRequest()
            {
                Device = this
            };

            ApiOptions.Apply(request, options);
            var response = await request.ExecuteAsync();

            if (response.Status.IsSuccessful == false)
            {
                throw response.Status.ToFault();
            }

            // 3. Update the last known state based on the differences
            Debug.Assert(response.Device != null, "If status is successful, then created device should not be null.");
            return(response.Device);
        }
        /// <summary>
        /// Подписывает приложение на получение Push-уведомлений.
        /// </summary>
        /// <param name="updateChanel">Требуется ли обновить канал получения уведомлений.</param>
        public static async Task <bool> Connect(bool updateChanel = false)
        {
            if (_chanel == null)
            {
                _chanel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

                _chanel.PushNotificationReceived += chanel_PushNotificationReceived;
            }

            var request = new RegisterDeviceRequest(_chanel.Uri)
            {
                DeviceID    = CoreHelper.GetUniqueDeviceID(),
                DeviceModel = CoreHelper.GetDeviceName(),
                Subscribe   = new List <VKSubscribeTypes>
                {
                    VKSubscribeTypes.Friend, VKSubscribeTypes.Group,
                    VKSubscribeTypes.Like, VKSubscribeTypes.Mention,
                    VKSubscribeTypes.Message, VKSubscribeTypes.Reply
                }
            };
            var result = await request.ExecuteAsync();

            return(result.Error.ErrorType == VKErrors.None ? true : false);
        }
        protected override async Task<Entity> CreateNewAsync(ApiOptions options)
        {
            // Create a new object
            var request = new RegisterDeviceRequest() { Device = this };
            ApiOptions.Apply(request, options);
            var response = await request.ExecuteAsync();
            if (response.Status.IsSuccessful == false)
                throw response.Status.ToFault();

            // 3. Update the last known state based on the differences
            Debug.Assert(response.Device != null, "If status is successful, then created device should not be null.");
            return response.Device;
        }
Exemple #21
0
        public async Task <RegisterDeviceResponse> RegisterDeviceWithOptionsAsync(RegisterDeviceRequest request, RegisterDeviceHeaders headers, AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime)
        {
            AlibabaCloud.TeaUtil.Common.ValidateModel(request);
            Dictionary <string, object> body = new Dictionary <string, object>()
            {
            };

            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.CorpId))
            {
                body["corpId"] = request.CorpId;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DeviceName))
            {
                body["deviceName"] = request.DeviceName;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DeviceStatus))
            {
                body["deviceStatus"] = request.DeviceStatus;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DeviceType))
            {
                body["deviceType"] = request.DeviceType;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.DeviceTypeName))
            {
                body["deviceTypeName"] = request.DeviceTypeName;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.Id))
            {
                body["id"] = request.Id;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.LiveUrls.ToMap()))
            {
                body["liveUrls"] = request.LiveUrls;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.Location))
            {
                body["location"] = request.Location;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.NickName))
            {
                body["nickName"] = request.NickName;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.ParentId))
            {
                body["parentId"] = request.ParentId;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(request.ProductType))
            {
                body["productType"] = request.ProductType;
            }
            Dictionary <string, string> realHeaders = new Dictionary <string, string>()
            {
            };

            if (!AlibabaCloud.TeaUtil.Common.IsUnset(headers.CommonHeaders))
            {
                realHeaders = headers.CommonHeaders;
            }
            if (!AlibabaCloud.TeaUtil.Common.IsUnset(headers.XAcsDingtalkAccessToken))
            {
                realHeaders["x-acs-dingtalk-access-token"] = AlibabaCloud.TeaUtil.Common.ToJSONString(headers.XAcsDingtalkAccessToken);
            }
            AlibabaCloud.OpenApiClient.Models.OpenApiRequest req = new AlibabaCloud.OpenApiClient.Models.OpenApiRequest
            {
                Headers = realHeaders,
                Body    = AlibabaCloud.OpenApiUtil.Client.ParseToMap(body),
            };
            return(TeaModel.ToObject <RegisterDeviceResponse>(await DoROARequestAsync("RegisterDevice", "diot_1.0", "HTTP", "POST", "AK", "/v1.0/diot/devices/register", "json", req, runtime)));
        }
Exemple #22
0
 public async Task <RegisterDeviceResponse> RegisterDeviceAsync(RegisterDeviceRequest registerDeviceRequest)
 {
     return(await _onenetClient.ExecuteAsync <RegisterDeviceResponse>(registerDeviceRequest));
 }
Exemple #23
0
        public async Task <ResponseData <TokenInfo> > RegisterDevice([FromBody] RegisterDeviceRequest request)
        {
            var response = new ResponseData <TokenInfo>();

            try
            {
                var email = $"{request.DeviceId}@mobile.device";
                var user  = await _userManager.FindByEmailAsync(email);

                if (user == null)
                {
                    var password = Guid.NewGuid().ToString().Replace("-", "");
                    user = new ApplicationUser
                    {
                        Id             = Guid.NewGuid(),
                        OS             = request.OS,
                        DeviceId       = request.DeviceId,
                        Email          = email,
                        EmailConfirmed = true,
                        UserName       = email
                    };

                    await _userManager.CreateAsync(user, password);

                    _context.Add(new XUserInfo
                    {
                        name        = "App",
                        family      = "Mobile",
                        login       = user.Id.ToString(),
                        XUserInfoId = user.Id
                    });
                    await _context.SaveChangesAsync();
                }
                await _userManager.AddToRoleAsync(user, MyIdentityRole.ROLE_MOBILEAPP);

                await _signInManager.SignInAsync(user, false);


                var    currentUser = user;
                string encodedJwt  = await CreateToken(currentUser);

                // Serialize and return the response
                var oldTokens = await _identityContext.RefreshTokens.
                                Where(p => p.UserId == currentUser.Id && p.IsExpired).
                                ToListAsync();

                oldTokens.ForEach(p => { p.IsExpired = true; });

                var refresh_token = Guid.NewGuid().ToString().Replace("-", "");
                var refreshToken  = new RefreshToken
                {
                    Id         = Guid.NewGuid(),
                    UserId     = currentUser.Id,
                    Token      = refresh_token,
                    DateIssued = DateTime.Now,
                    IsExpired  = false,
                };

                response.code = BaseStatus.Success;
                response.data = new TokenInfo
                {
                    access_token  = encodedJwt,
                    expires_in    = (int)_jwtOptions.ValidFor.TotalSeconds,
                    token_type    = "jwt",
                    refresh_token = refresh_token
                };

                _identityContext.Add(refreshToken);
                await _identityContext.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                response.code        = BaseStatus.Exception;
                response.data        = null;
                response.message     = ex.Message;
                response.description = "Не удалось зарегистрироваться ";
            }

            return(response);
        }