1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using SAGA.DotNetUtils.Extend;
- namespace SAGA.Models
- {
- /// <summary>
- /// 构建方式
- /// </summary>
- public class MBIItemBuilder<T>:IMBIItemBuilder where T : MBIItem
- {
- /// <summary>
- /// 解析生成类
- /// </summary>
- /// <param name="jobject"></param>
- /// <returns></returns>
- public virtual T Create(JObject jobject)
- {
- T item = JsonConvert.DeserializeObject<T>(jobject.ToString());
- Create(item, jobject);
- return item;
- }
- /// <summary>
- /// 已知类信息获取
- /// </summary>
- /// <param name="item"></param>
- /// <param name="jobject"></param>
- /// <returns></returns>
- public virtual T Create(T item, JObject jobject)
- {
- item.Id = jobject.GetValueEx("id");
- item.Infos = JObject.Parse(jobject.GetValueEx("infos"));
- var infos = item.Infos;
- if (infos != null)
- {
- item.BimId = infos.GetValueEx(MBIBuiltInParameter.BIMID);
- if (!string.IsNullOrWhiteSpace(item.BimId))
- {
- try
- {
- var bimId = item.BimId;
- item.FloorId = bimId.Substring(0, bimId.IndexOf(":"));
- }
- catch (Exception ex)
- {
- Debug.WriteLine(ex.StackTrace.ToString());
- }
- }
-
- }
- return item;
- }
- public virtual MBIItem CreateMBIItem(JObject jobject)
- {
- return Create(jobject);
- }
- }
- }
|