75 lines
2.1 KiB
C#
75 lines
2.1 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Collections.ObjectModel;
|
|||
|
|
using Autodesk.Revit.DB;
|
|||
|
|
using Autodesk.Revit.UI;
|
|||
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|||
|
|
using CommunityToolkit.Mvvm.Input;
|
|||
|
|
|
|||
|
|
namespace Sai.Common.Shared.WBSCoder
|
|||
|
|
{
|
|||
|
|
public partial class ProjectCodeAddedCheckerViewModel : ObservableObject
|
|||
|
|
{
|
|||
|
|
public ProjectCodeAddedCheckerViewModel(CheckCodeViewModel viewModel)
|
|||
|
|
{
|
|||
|
|
allElements = viewModel.AllElements;
|
|||
|
|
LastTaskItems = viewModel.LastTaskItems;
|
|||
|
|
handler = new CodingEventHandler();
|
|||
|
|
codingEvent = ExternalEvent.Create(handler);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private readonly IList<Element> allElements;
|
|||
|
|
private readonly ExternalEvent codingEvent;
|
|||
|
|
private readonly CodingEventHandler handler;
|
|||
|
|
|
|||
|
|
public ObservableCollection<TaskItem> LastTaskItems { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加WBS编码
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="obj"></param>
|
|||
|
|
[RelayCommand]
|
|||
|
|
private void AddWbsCode(object obj)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
handler.TaskItem = obj as TaskItem;
|
|||
|
|
|
|||
|
|
codingEvent.Raise();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
TaskDialog.Show("添加失败", $"{ex.Message}");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 检查mpp文件是否都赋予到模型
|
|||
|
|
/// </summary>
|
|||
|
|
[RelayCommand]
|
|||
|
|
private void CheckCode()
|
|||
|
|
{
|
|||
|
|
foreach (var ele in allElements)
|
|||
|
|
{
|
|||
|
|
var temp = ele.get_Parameter(BuiltInParameter.ALL_MODEL_MARK)?.AsString();
|
|||
|
|
if (temp == null)
|
|||
|
|
{
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
string code = WbsCoderUtils.FormatWbsCode(temp);
|
|||
|
|
|
|||
|
|
foreach (var task in LastTaskItems)
|
|||
|
|
{
|
|||
|
|
if (task.WBSCode == code)
|
|||
|
|
{
|
|||
|
|
task.HasCoded = true;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TaskDialog.Show("提示", "校验完成");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|