public void InsertAnalytics(BeaconRequest beaconRequest, string userId = "") { var sessionAnalytic = _inMemoryAnalytics.SessionAnalytics.SingleOrDefault(x => x.SessionUid == beaconRequest.SessionUid); if (sessionAnalytic == null) { sessionAnalytic = new SessionAnalytic { SessionUid = beaconRequest.SessionUid, }; _inMemoryAnalytics.SessionAnalytics.Add(sessionAnalytic); } if (string.IsNullOrEmpty(sessionAnalytic.UserId) && string.IsNullOrEmpty(userId) == false) { sessionAnalytic.UserId = userId; } sessionAnalytic.Analytics.Add(new Analytic { State = beaconRequest.State, UserTime = beaconRequest.UserTime, Location = beaconRequest.Location, }); }
public async Task <IActionResult> Post([FromBody] BeaconRequest request) { _logger.Information("Beacon details called with param : " + JsonConvert.SerializeObject(request)); if (request == null) { return(BadRequest(ApiMessages.DataNotProvided)); } var response = await _manager.GetBeacons(_context, request); return(Ok(response)); }
public async Task <ServiceResponse <List <BeaconResponse> > > GetBeacons(IDbConnection connection, BeaconRequest request, int userId, string token) { var response = new ServiceResponse <List <BeaconResponse> >() { IsSuccess = true, TokenStatus = TokenStatus.NotRequired, Data = new List <BeaconResponse>() }; try { var validateUserParams = new DynamicParameters(); validateUserParams.Add(DbParamNames.UserId, userId); //validateUserParams.Add(DbParamNames.SecurityToken, token); if (request.BeaconId > 0) { validateUserParams.Add(DbParamNames.BeaconId, request.BeaconId); } validateUserParams.Add(DbParamNames.UUID, request.UUID); validateUserParams.Add(DbParamNames.Major, request.Major); validateUserParams.Add(DbParamNames.Minor, request.Minor); var data = (await connection.QueryAsync <dynamic>(SpConstants.GetAllBeacons, validateUserParams, commandType: CommandType.StoredProcedure)).Select(x => new BeaconResponse { BeaconId = x.BeaconId, UUID = x.UUID, Major = x.Major, Minor = x.Minor, BeaconLocation = x.BeaconLocation }); response.Data = data.ToList(); _logger.Information("Get All Beacons Success"); } catch (SqlException ex) { _logger.Error(ex.Message); response.IsSuccess = false; response.Message = ServiceConstants.ErrorCodes.ContainsKey(ex.Number) ? ServiceConstants.ErrorCodes[ex.Number] : ApiMessages.UnknownError; } catch (Exception ex) { _logger.Error("Error : {ex}", ex); response.IsSuccess = false; response.Message = ApiMessages.InternalError; } return(response); }
public async Task <ServiceResponse <List <BeaconResponse> > > GetBeacons(IHttpContextAccessor context, BeaconRequest request) { var response = new ServiceResponse <List <BeaconResponse> >() { IsSuccess = true, TokenStatus = TokenStatus.NotRequired, Data = new List <BeaconResponse>() }; var securityToken = context.HttpContext.Request.Headers[ServiceConstants.SecurityToken][0]; var userId = Convert.ToInt32(context.HttpContext.Request.Headers[ServiceConstants.UserId][0]); if (userId <= 0) { response.IsSuccess = false; response.TokenStatus = TokenStatus.Invalid; return(response); } using (IDalContext dalContext = new DalContext(_connectionStrings.HackConnection)) { response = await _repository.GetBeacons(dalContext.DbConnection, request, userId, securityToken); } return(response); }