47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using Laservall.Solidworks.Extension;
|
|
using Laservall.Solidworks.Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Laservall.Solidworks.Server
|
|
{
|
|
internal interface IBomDataProvider
|
|
{
|
|
Task<BomLoadResult> LoadBomAsync(IProgress<BomLoadProgress> progress, CancellationToken ct);
|
|
SaveResult SaveChanges(List<ChangeItem> changes);
|
|
BomSettings GetSettings();
|
|
void SaveSettings(BomSettings settings);
|
|
List<BomItemModel> GetFlatBomItems(List<BomItemModel> allItems);
|
|
}
|
|
|
|
internal sealed class BomLoadProgress
|
|
{
|
|
public int Processed { get; set; }
|
|
public int Total { get; set; }
|
|
public string CurrentName { get; set; }
|
|
}
|
|
|
|
internal sealed class BomLoadResult
|
|
{
|
|
public List<BomItemModel> Items { get; set; }
|
|
public List<string> DynamicKeys { get; set; }
|
|
public BomSettings Settings { get; set; }
|
|
}
|
|
|
|
internal sealed class ChangeItem
|
|
{
|
|
public string DocPath { get; set; }
|
|
public string Key { get; set; }
|
|
public string Value { get; set; }
|
|
}
|
|
|
|
internal sealed class SaveResult
|
|
{
|
|
public bool Success { get; set; }
|
|
public int SavedCount { get; set; }
|
|
public string Error { get; set; }
|
|
}
|
|
}
|