Laservall_solidworks_inject/Server/IBomDataProvider.cs

47 lines
1.3 KiB
C#
Raw Permalink Normal View History

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; }
}
}