Exemple #1
0
        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,
            });
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }