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(); } }
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)); } }
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() })); } }
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))); }