using System; using System.Collections.Generic; using System.ServiceModel.Activation; using GTech.Solution.Api.Contract; using GTech.Solution.Api.Domain.Model; using GTech.Solution.Api.Domain.Option; namespace GTech.Solution.Api.WebSite { [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class TruckAlarm : ApiServicesBase, ITruckAlarm { public ApiData POSTAlarm(TruckAlarmData dto) { ApiData data = new ApiData(); string message = string.Empty; if (doCheck(dto, out message)) { var result = AlarmHandler(dto, out message); if (result != null) { data.Code = (int)ApiDataStatus.SUCCESS; data.Status = ApiDataStatus.SUCCESS.ToString(); data.Message = "Operation is successful!"; data.Data = result; } else { data.Code = (int)ApiDataStatus.FAILED; data.Status = ApiDataStatus.FAILED.ToString(); data.Message = message; data.Data = null; } } else { data.Code = (int)ApiDataStatus.FAILED; data.Status = ApiDataStatus.FAILED.ToString(); data.Message = message; data.Data = null; } return data; } private bool doCheck(TruckAlarmData dto, out string message) { message = string.Empty; return true; } private TruckAlarmResult AlarmHandler(TruckAlarmData dto, out string message) { TruckAlarmResult result = new TruckAlarmResult(); message = string.Empty; try { result.name = dto.name; result.cam_ip = dto.cam_ip; result.distance = dto.distance; //TODO: handle alarm logic } catch (Exception e) { Console.WriteLine(e); message = "服务器内部错误,请稍后重试或联系服务器管理员!错误信息:" + e.StackTrace; return null; } return result; } } }