public async Task <ActionResult> SingleTraceView(SearchTraceModel model)
        {
            _logger.Information("Monitor_SingleTraceView({0}) ", JsonConvert.SerializeObject(model));
            ResponseViewModel        result      = new ResponseViewModel();
            List <TraceRecordsModel> convertList = new List <TraceRecordsModel>();

            try
            {
                TraceRecordViewModel trace = new TraceRecordViewModel();
                trace.BeginDateTimeString = string.Format("{0:yyyy/MM/dd HH:mm:ss}", model.BeginDateTime);
                trace.EndDateTimeString   = string.Format("{0:yyyy/MM/dd HH:mm:ss}", model.EndDateTime);
                trace.VehicleId           = model.VehicleId;
                trace.DriverId            = model.DriverId;

                var mongotrack = await GetTraceDataFromMongoDB(model);

                _logger.Information("Monitor_SingleTraceView_MongoDBAPI: {0} ", JsonConvert.SerializeObject(mongotrack));

                convertList     = _traceService.ConvertToTraceView(mongotrack, model.DriverId, model.VehicleId);
                trace.TraceList = convertList;

                result.IsOk           = true;
                result.Message        = "車輛軌跡查詢";
                result.Data           = trace;
                result.HttpStatusCode = HttpStatusCode.OK;
            }
            catch (Exception ex)
            {
                result.IsOk           = false;
                result.Exception      = ex;
                result.Message        = MessageResource.UnexpectedErrorOccurred;
                result.Data           = null;
                result.HttpStatusCode = HttpStatusCode.InternalServerError;
            }

            result.ResponseTime = string.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now);
            _logger.Information("Monitor_SingleTraceView_Result({0}) ", JsonConvert.SerializeObject(result));
            return(View("SingleTraceView", convertList));
        }
Exemplo n.º 2
0
        public async Task <JsonResult> SearchTrace(SearchTraceModel model)
        {
            _logger.Information("Trace_SearchTrace({0}) ", JsonConvert.SerializeObject(model));

            if (SessionSearchTraceModel != null)
            {
                if (model != SessionSearchTraceModel)
                {
                    SessionSearchTraceModel = model;
                }
                else
                {
                    model = SessionSearchTraceModel;
                }
            }

            ResponseViewModel result = new ResponseViewModel();

            if (string.IsNullOrEmpty(model.DriverId) || model.DriverId == "null")
            {
                model.DriverId = null;
            }

            if (model.VehicleId == 0)
            {
                model.VehicleId = null;
            }

            try
            {
                TraceRecordViewModel trace = new TraceRecordViewModel();
                trace.BeginDateTimeString = string.Format("{0:yyyy/MM/dd HH:mm:ss}", model.BeginDateTime);
                trace.EndDateTimeString   = string.Format("{0:yyyy/MM/dd HH:mm:ss}", model.EndDateTime);
                trace.VehicleId           = model.VehicleId;
                trace.DriverId            = model.DriverId;

                //直接從MongoDB擷取
                var trackLog = await _traceService.GetTrace(model);

                //從MongoDB API 擷取
                //var mongotrack = await GetTraceDataFromMongoDB(model);
                //_logger.Information("Trace_SearchTrace_MongoDBAPI: {0} ", JsonConvert.SerializeObject(mongotrack));

                var convertList = _traceService.ConvertToTraceView(trackLog, model.DriverId, model.VehicleId);
                trace.TraceList = convertList;

                result.IsOk           = true;
                result.Message        = "車輛軌跡查詢";
                result.Data           = trace;
                result.HttpStatusCode = HttpStatusCode.OK;
            }
            catch (Exception ex)
            {
                result.IsOk           = false;
                result.Exception      = ex;
                result.Message        = MessageResource.UnexpectedErrorOccurred;
                result.Data           = null;
                result.HttpStatusCode = HttpStatusCode.InternalServerError;
            }

            result.ResponseTime = string.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now);
            _logger.Information("Trace_SearchTrace_Result({0}) ", JsonConvert.SerializeObject(result));
            return(Json(result, JsonRequestBehavior.AllowGet));
        }