コード例 #1
0
        public async Task UpdateUserDeviceAsync(UserDeviceDto userDeviceDto)
        {
            if (userDeviceDto == null)
            {
                return;
            }

            using (var dbContext = _dbContextScopeFactory.Create())
            {
                var device = await _userDeviceRepository
                             .FindAsync(w => w.UserId == userDeviceDto.UserId && w.IMEI == userDeviceDto.IMEI);

                if (device == null)
                {
                    device = UserDevice.Create(userDeviceDto.UserId,
                                               userDeviceDto.Name, userDeviceDto.AppName, userDeviceDto.AppVersion,
                                               userDeviceDto.OSPlatform, userDeviceDto.OSVersion, userDeviceDto.SerialNumber,
                                               userDeviceDto.IMEI, userDeviceDto.FireBaseToken);
                    _userDeviceRepository.Add(device);
                }
                else
                {
                    device.Update(
                        userDeviceDto.Name, userDeviceDto.AppName, userDeviceDto.AppVersion,
                        userDeviceDto.OSPlatform, userDeviceDto.OSVersion, userDeviceDto.FireBaseToken);
                }

                await dbContext.SaveChangesAsync();
            }
        }
コード例 #2
0
        public virtual async Task <ResponseData> Login([FromBody] LoginViewModal modal)
        {
            Stopwatch stop = Stopwatch.StartNew();

            try
            {
                var auth = CreateAuth();
                auth.UserName = modal.UserName;
                auth.Password = modal.Password;
                var userAgent = Request.Headers["User-Agent"];
                if (string.IsNullOrEmpty(userAgent))
                {
                    this.GetResponse(err: new { Message = "User Agent not Exsist" });
                }
                if (string.IsNullOrEmpty(modal.DeviceId))
                {
                    return(this.GetResponse());
                }
                var user = await _auth.GetUser(auth);

                if (user == null)
                {
                    return(this.GetResponse());
                }
                var userDevice = user.DeviceList?.FirstOrDefault(m => m.DeviceId == modal.DeviceId);
                if (userDevice == null && _addDeviceIfNew)
                {
                    userDevice            = CreateDevice();
                    userDevice.UserId     = user.Id;
                    userDevice.DeviceId   = modal.DeviceId;
                    userDevice.DeviceName = userAgent;
                    await _device.Add(userDevice);
                }
                var getClaim = user.CreateClaim();
                var result   = EntityRepository.State.State.GetAuth(getClaim, userDevice);
                userDevice.AccessToken  = result.AccessToken;
                userDevice.RefreshToken = result.RefreshToken;
                await _device.Update(userDevice);

                return(this.GetResponse(result));
            }
            catch (Exception ext)
            {
                return(this.ExceptionResult(ext, stop));
            }
        }
コード例 #3
0
 public ActionResult SaveDeviceMaping(IEnumerable <UserGroups> data, long userId)
 {
     try
     {
         var result = userDeviceRepository.Add(data, userId);
         if (result)
         {
             return(Ok(new { success = true, successMessage = "User Device Mapped Successfully!" }));
         }
         else
         {
             return(Ok(new { success = false, successMessage = "User Device Mapped Failed!" }));
         }
     }
     catch (Exception ex)
     {
         return(Ok(new { success = false, errorMessage = ex.GetBaseException() }));
     }
 }
コード例 #4
0
        public async Task <ServiceResult <UserDeviceDto> > CreateUpdateMobileTokenAsync(UserBaseDto userDto, string deviceName)
        {
            var currentUserDeviceEntry = await _repository.FirstOrDefaultAsync(x => x.UserId == userDto.Id && x.Name == deviceName);

            if (currentUserDeviceEntry != null)
            {
                _repository.Delete(_mapper.Map <UserDevice>(currentUserDeviceEntry));
            }

            var newUserDeviceEntry = new UserDevice
            {
                UserId = userDto.Id,
                Name   = deviceName,
                Token  = Guid.NewGuid().ToString()
            };

            var ud = _repository.Add(newUserDeviceEntry);
            await _unitOfWork.CommitAsync();

            return(ServiceResult <UserDeviceDto> .Success(_mapper.Map <UserDeviceDto>(ud)));
        }