示例#1
0
        public async Task <JwtBearerSignInResult> PasswordSignInAsync(User user, string password, Device device = null)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (await UserManager.CheckPasswordAsync(user, password))
            {
                var result = await SignInOrTwoFactorAsync(user);

                if (result.Succeeded && device != null)
                {
                    var existingDevice = await _deviceRepository.GetByIdentifierAsync(device.Identifier, user.Id);

                    if (existingDevice == null)
                    {
                        device.UserId = user.Id;
                        await _deviceRepository.CreateAsync(device);
                    }
                }

                return(result);
            }

            return(JwtBearerSignInResult.Failed);
        }
示例#2
0
 public async Task SaveAsync(Device device)
 {
     if (device.Id == default(Guid))
     {
         await _deviceRepository.CreateAsync(device);
     }
     else
     {
         device.RevisionDate = DateTime.UtcNow;
         await _deviceRepository.ReplaceAsync(device);
     }
 }
示例#3
0
        public async Task SaveAsync(Device device)
        {
            if (device.Id == default(Guid))
            {
                await _deviceRepository.CreateAsync(device);
            }
            else
            {
                device.RevisionDate = DateTime.UtcNow;
                await _deviceRepository.ReplaceAsync(device);
            }

            await _pushRegistrationService.CreateOrUpdateRegistrationAsync(device);
        }
示例#4
0
        public async Task SaveAsync(Device device)
        {
            if (device.Id == default(Guid))
            {
                await _deviceRepository.CreateAsync(device);
            }
            else
            {
                device.RevisionDate = DateTime.UtcNow;
                await _deviceRepository.ReplaceAsync(device);
            }

            await _pushRegistrationService.CreateOrUpdateRegistrationAsync(device.PushToken, device.Id.ToString(),
                                                                           device.UserId.ToString(), device.Identifier, device.Type);
        }
示例#5
0
        public async Task AddOrUpdateToken(string token, string userId)
        {
            var device = await _deviceRepository.FindByUserIdAsync(userId);

            if (device == null)
            {
                await _deviceRepository.CreateAsync(new Device
                {
                    Token  = token,
                    UserId = userId
                });
            }
            else if (device.Token != token)
            {
                await _deviceRepository.UpdateTokenAsync(token, device.Id);
            }
        }
示例#6
0
        private async Task <Device> SaveDeviceAsync(User user, ResourceOwnerPasswordValidationContext context)
        {
            var device = GetDeviceFromRequest(context);

            if (device != null)
            {
                var existingDevice = await _deviceRepository.GetByIdentifierAsync(device.Identifier, user.Id);

                if (existingDevice == null)
                {
                    device.UserId = user.Id;
                    await _deviceRepository.CreateAsync(device);

                    return(device);
                }
            }

            return(null);
        }
        public async Task <bool> ClaimAsync(string userId, string id)
        {
            var device = await deviceRepository.GetAsync(id);

            if (null == device)
            {
                device = await deviceRepository.CreateAsync(id);
            }
            if (device.UserId == userId)
            {
                return(true);
            }
            if (device.UserId != null)
            {
                return(false);
            }
            await deviceRepository.ClaimAsync(id, userId);

            return(true);
        }
        private void CreateNewDevice()
        {
            Device newDevice = null;

            _dialogService.ShowModal("NewDeviceView", x =>
            {
                if (x.Result == ButtonResult.OK)
                {
                    newDevice = x.Parameters.GetValue <Device>("model");
                }
            });



            if (newDevice != null)
            {
                var d = DevicesColleciton.FirstOrDefault(x => x.IPAddress == newDevice.IPAddress);
                if (d != null)
                {
                    MessageBox.Show("Такой девайс уже существует");
                    return;
                }
                Task.Run(async() =>
                {
                    newDevice = await _deviceRepository.CreateAsync(newDevice);
                    if (newDevice != null)
                    {
                        Application.Current.Dispatcher.Invoke(() =>
                        {
                            DevicesColleciton.Add(newDevice);
                        });
                    }
                }).ContinueWith(t => {
                    _logger.Error("Не удлаось создать новый девайс ip {0}", newDevice?.IPAddress);
                    _logger.Error("Ошибка {0}", t.Exception?.Message);
                    _logger.Error("Ошибка {0}", t.Exception?.InnerException);
                }, TaskContinuationOptions.OnlyOnFaulted);
            }
        }
示例#9
0
        public async Task <ActionResult <DeviceResponse> > Post([FromBody] CreateDeviceRequest request)
        {
            var response = await _repository.CreateAsync <DeviceResponse>(request);

            return(CreatedAtAction(nameof(Get), new { id = response.UID }, response));
        }