TellmePdmsPluging/Models/ModelStatusResponse.cs
root 3082148d7e 实现PDMS模型状态API并移除硬编码数据
## 主要改进
- 实现 /api/status/model 接口,返回真实PDMS模型状态信息
- 使用MDB.CurrentMDB、Project.CurrentProject等AVEVA API获取真实数据
- 移除硬编码的CurrentSession、PositionInfo、PdmsSpecific等复杂结构
- 简化数据模型,只保留核心的真实数据字段

## 技术实现
- 通过DbSession获取真实的用户名、会话开始时间和持续时间
- 通过WorldMembers()获取真实的模型元素统计
- 修复DateTime类型的null合并运算符编译错误
- 清理不使用的方法和类定义

## API返回数据
现在返回的数据主要包含真实的PDMS信息:
- ModelLoaded: MDB连接状态检查
- ProjectName: 真实的设计数据库名称
- MdsName: 真实的MDB名称
- UserName: 真实的数据库会话用户
- StartTime: 真实的会话创建时间
- TotalElements: 真实的模型元素数量统计

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 10:36:02 +08:00

37 lines
1010 B
C#

using System;
using System.Collections.Generic;
namespace TellmePdmsPluging.Models
{
public class ModelStatusResponse
{
public bool ModelLoaded { get; set; }
public ProjectInfo ProjectInfo { get; set; }
public ModelStatistics ModelStatistics { get; set; }
public SessionInfo SessionInfo { get; set; }
}
public class ProjectInfo
{
public string ProjectName { get; set; }
public string MdsName { get; set; }
public string PdmsVersion { get; set; }
}
public class ModelStatistics
{
public int TotalElements { get; set; }
public Dictionary<string, int> ElementCounts { get; set; }
public int ZoneCount { get; set; }
public List<string> ActiveZones { get; set; }
}
public class SessionInfo
{
public string UserName { get; set; }
public DateTime StartTime { get; set; }
public int DurationMinutes { get; set; }
}
}