public GetDeviceTrafficLogResponse Process(GetDeviceTrafficLogRequest request)
        {
            try
            {
                var dao     = new GLogInfoDao();
                var rawData = dao.GetLogData(new QueryLogCondictions()
                {
                    Options             = GetLogOptions.GetNewLogs,
                    BeginTime           = request.BeginTime,
                    EndTime             = request.EndTime,
                    CleanNewLogPosition = true,
                });

                var serviceData = rawData.Select(DeviceAccessLogMapper.ToModel).ToList();

                return(new GetDeviceTrafficLogResponse()
                {
                    Token = request.Token, ResultType = ResultType.OK, Logs = serviceData
                });
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(new GetDeviceTrafficLogResponse()
                {
                    Token = request.Token, ResultType = ResultType.Error
                });
            }
        }
示例#2
0
        public IList <DeviceTrafficLog> QueryNewTrafficLogs(DeviceController device)
        {
            var operation = new WebSocketOperation(device.Code.ToInt32());
            var getDeviceTrafficLogRequest = new GetDeviceTrafficLogRequest()
            {
                Token     = operation.Token,
                BeginTime = new DateTime(2016, 1, 1),
                EndTime   = new DateTime(2099, 12, 31),
            };

            string rawRequest  = DataContractSerializationHelper.Serialize(getDeviceTrafficLogRequest);
            var    rawResponse = operation.Execute(rawRequest);

            var response = DataContractSerializationHelper.Deserialize <GetDeviceTrafficLogResponse>(rawResponse);

            Log.InfoFormat("GetDeviceTrafficLogResponse from device id:{0}, result ={1}", device.DeviceID, response.ResultType);

            if (response.ResultType != ResultType.OK)
            {
                throw new Exception(string.Format("GetDeviceTrafficLogResponse from device id:{0} fails", device.DeviceID));
            }

            var deviceTrafficLogs = new List <DeviceTrafficLog>();

            foreach (var rawlog in response.Logs)
            {
                var log = new DeviceTrafficLog()
                {
                    DeviceID         = device.DeviceID,
                    DeviceUserID     = rawlog.UserId,
                    DeviceCode       = device.Code,
                    DeviceType       = device.Model,
                    DeviceSN         = device.SN,
                    RecordType       = rawlog.AccessLogType.ToString(),
                    RecordTime       = rawlog.CreateTime,
                    RecordUploadTime = DateTime.Now,
                    Remark           = rawlog.Message,
                };

                if (rawlog.CheckInOptions.Any())
                {
                    log.AuthenticationType = 0;
                    rawlog.CheckInOptions.ForEach(option => log.AuthenticationType += (int)option);
                }

                deviceTrafficLogs.Add(log);
            }

            return(deviceTrafficLogs);
        }