public async Task <ActionResult <List <UserLogResponse> > > GetUser([FromQuery] MinMaxDate form, string?userId, string?regionId, string?problemId,
                                                                            string projectType)
        {
            if (_authService.IsAuthenticate(UserLog.GroupId))
            {
                var list = await _dbContext.Set <UserLog>()
                           .Where(entity =>
                                  entity.Timestamp <= form.MaxDate && entity.Timestamp >= form.MinDate)
                           .AsNoTracking()
                           .ToListAsync();

                var result = new List <UserLogResponse>();
                foreach (var userLog in list)
                {
                    if (userLog.ProjectType.ToLower() == projectType.ToLower() && (regionId == null || userLog.RegionId == regionId) &&
                        (problemId == null || userLog.ResolveProblemId == problemId) &&
                        (userId == null || userLog.EntityId == userId))
                    {
                        var userLogResponse = _mapper.Map <UserLogResponse>(userLog);
                        userLogResponse.Type      = userLog.Type.GetDescription();
                        userLogResponse.Timestamp = userLog.Timestamp.ToDescriptionString();
                        userLogResponse.TargetId  = userLog.EntityId;
                        result.Add(userLogResponse);
                    }
                }

                return(result);
            }
            else
            {
                return(Unauthorized());
            }
        }
예제 #2
0
        public async Task <ActionResult> Get <TEntity, TResponse>(int group, MinMaxDate form, string username = "",
                                                                  string password = "")
            where TEntity : EntityLog where TResponse : TypeAndTimeStamp
        {
            _logger.LogInformation(form.ToJson());
            if (_authService.IsAuthenticate(group, username, password))
            {
                var list = await _dbContext.Set <TEntity>()
                           .Where(entity =>
                                  entity.Timestamp <= form.MaxDate && entity.Timestamp >= form.MinDate &&
                                  entity.Type != LogType.ActivityLog)
                           .AsNoTracking()
                           .ToListAsync();

                list.Sort(Utility.CompareEntityLog);
                var result = new List <TResponse>();
                foreach (var entityLog in list)
                {
                    var entityResponseLog = _mapper.Map <TResponse>(entityLog);
                    entityResponseLog.Type      = entityLog.Type.GetDescription();
                    entityResponseLog.Timestamp =
                        entityLog.Timestamp.ToShortTimeString() + " " + entityLog.Timestamp.ToShortDateString();
                    result.Add(entityResponseLog);
                }

                return(Ok(result));
            }
            else
            {
                return(Unauthorized());
            }
        }
        GetMonitorRegion([FromQuery] MinMaxDate form, string?regionId, string projectType)
        {
            var listEntity =
                await GetEntity <MonitorRegionLog, MonitorRegionLogResponse>(MonitorRegionLog.GroupId, form, projectType);

            return(listEntity.Where(entity =>
                                    (regionId == null || entity.EntityId == regionId)).ToList());
        }
        GetObjectObserve([FromQuery] MinMaxDate form, string?monitorObjectId, string?regionId, string projectType)
        {
            var listEntity =
                await GetEntity <ObjectObserve, ObjectObserveResponse>(ObjectObserve.GroupId, form, projectType);

            return(listEntity.Where(entity =>
                                    (regionId == null || entity.RegionId == regionId) &&
                                    (monitorObjectId == null || entity.EntityId == monitorObjectId)).ToList());
        }
        public async Task <ActionResult <List <WarningLogResponse> > > GetWarning([FromQuery] MinMaxDate form, string?regionId,
                                                                                  string?warningId,
                                                                                  string projectType)
        {
            var listEntity = await GetEntity <WarningLog, WarningLogResponse>(ObjectObserve.GroupId, form, projectType);

            return(listEntity.Where(entity =>
                                    (regionId == null || entity.RegionId == regionId) &&
                                    (warningId == null || entity.EntityId == warningId)).ToList());
        }
예제 #6
0
        public async Task <ActionResult <List <DroneLogResponse> > > GetDrone([FromQuery] MinMaxDate form, string?droneId,
                                                                              string?regionId, string projectType)
        {
            var listEntity = await GetEntity <DroneLog, DroneLogResponse>(DroneLog.GroupId, form, projectType);

            return(listEntity.Where(
                       entity => (regionId == null || entity.RegionId == regionId) &&
                       (droneId == null || entity.EntityId == droneId)
                       ).ToList());
        }
예제 #7
0
        public async Task <ActionResult <List <PayloadResponse> > > GetPayload([FromQuery] MinMaxDate form, string?payloadId,
                                                                               string?droneId, string projectType)
        {
            var listEntity = await GetEntity <Payload, PayloadResponse>(Payload.GroupId, form, projectType);

            return(listEntity.Where(entity =>
                                    (droneId == null || entity.DroneId == droneId) &&
                                    (payloadId == null || entity.EntityId == payloadId))
                   .ToList());
        }
        public async Task <ActionResult <List <ImageLogResponse> > > GetImage([FromQuery] MinMaxDate form, string?droneId,
                                                                              string incidentId,
                                                                              string imageId,
                                                                              string projectType)
        {
            var listEntity = await GetEntity <ImageLog, ImageLogResponse>(ImageLog.GroupId, form, projectType);

            return(listEntity.Where(entity =>
                                    (incidentId == null || entity.IncidentId == incidentId) &&
                                    (droneId == null || entity.DroneId == droneId) &&
                                    (imageId == null || entity.EntityId == imageId)).ToList());
        }
        public async Task <ActionResult <List <IncidentLogResponse> > > GetIncident([FromQuery] MinMaxDate form,
                                                                                    string?incidentId, string?regionId, string projectType)
        {
            var listEntity =
                await GetEntity <IncidentLog, IncidentLogResponse>(ObjectObserve.GroupId, form, projectType);

            var result = new List <IncidentLogResponse>();

            foreach (var incidentLog in listEntity)
            {
                if ((regionId == null || incidentLog.RegionId == regionId) &&
                    (incidentId == null || incidentLog.EntityId == incidentId))
                {
                    result.Add(incidentLog);
                }
            }

            return(result);
        }
예제 #10
0
        public async Task <List <TResponse> > GetEntity <TEntity, TResponse>(int group, MinMaxDate form, string projectType,
                                                                             string username = "",
                                                                             string password = "")
            where TEntity : EntityLog where TResponse : TypeAndTimeStamp
        {
            _logger.LogInformation(form.ToJson());
            if (!_authService.IsAuthenticate(@group, username, password))
            {
                throw new AuthenticationException();
            }

            if (!ProjectType.IsProjectType(projectType))
            {
                _logger.LogInformation($"projectType was wrong {projectType}");
                return(new List <TResponse>());
            }
            var list = await _dbContext.Set <TEntity>()
                       .Where(entity =>
                              entity.Timestamp <= form.MaxDate && entity.Timestamp >= form.MinDate && entity.ProjectType.ToLower() == projectType.ToLower())
                       .AsNoTracking()
                       .ToListAsync();

            list.Sort(Utility.CompareEntityLog);
            var result = new List <TResponse>();

            foreach (var entityLog in list)
            {
                var entityResponseLog = _mapper.Map <TResponse>(entityLog);
                entityResponseLog.Type      = entityLog.Type.GetDescription();
                entityResponseLog.Timestamp =
                    entityLog.Timestamp.ToShortTimeString() + " " + entityLog.Timestamp.ToShortDateString();
                result.Add(entityResponseLog);
            }
            return(result);
        }
예제 #11
0
        public async Task <ActionResult <List <UavConnectLogResponse> > > GetUavConnectLog([FromQuery] MinMaxDate form,
                                                                                           string?uavId,
                                                                                           string?regionId, string projectType)
        {
            var listEntity = await GetEntity <UavConnectLog, UavConnectLogResponse>(Payload.GroupId, form, projectType);

            return(listEntity.Where(entity =>
                                    (regionId == null || entity.RegionId == regionId) && (uavId == null || entity.EntityId == uavId))
                   .ToList());
        }
예제 #12
0
 public async Task <ActionResult> GetStatical([FromQuery] MinMaxDate form) =>
 await Get <StaticalLog, StaticalLogResponse>(StaticalLog.GroupId, form);