This commit is contained in:
xingheng 2025-10-10 09:44:16 +08:00
commit 8084bd7715
155 changed files with 21543 additions and 218981 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>

View File

@ -14,6 +14,7 @@ using Entity = Teigha.DatabaseServices.Entity;
using Path = System.IO.Path;
using Color = Teigha.Colors.Color;
using System.Security.Cryptography;
using System.Threading.Tasks;
namespace SWS.CAD.Base
{
public static class General
@ -137,7 +138,7 @@ namespace SWS.CAD.Base
using (Transaction trans = db.TransactionManager.StartTransaction())
{
BlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
ObjectId idBtr = doc.Database.Insert(blockName, blockName, blockDb, true);
ObjectId idBtr = doc.Database.Insert(blockName, blockName, blockDb, true);
BlockTableRecord curBtr = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
var block = new BlockReference(Point3d.Origin, idBtr);
block.Position = position;
@ -1065,12 +1066,13 @@ namespace SWS.CAD.Base
}
#endregion
#region
#region XData不为空的所有实
/// <summary>
/// 获取当前图纸XData不为空的所有实体
/// </summary>
/// <param name="listTagNumber">要删除的位号</param>
/// <returns></returns>
public static List<DtoBasePoint> GetAllEntity()
public static List<DtoBasePoint> GetAllEntity(List<string> listTagNumber)
{
doc = Application.DocumentManager.MdiActiveDocument;
ed = doc.Editor;
@ -1084,18 +1086,20 @@ namespace SWS.CAD.Base
{
// 获取模型空间块表记录
BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
BlockTableRecord modelSpace = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead) as BlockTableRecord;
BlockTableRecord btr = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead) as BlockTableRecord;
// 收集要删除的块参照
ObjectIdCollection idsToErase = new ObjectIdCollection();
// 遍历模型空间中的所有实体
foreach (ObjectId objId in modelSpace)
foreach (ObjectId objId in btr)
{
Entity entity = tr.GetObject(objId, OpenMode.ForRead) as Entity;
Entity entity = tr.GetObject(objId, OpenMode.ForWrite) as Entity;
if (entity != null && entity.XData != null)
{
// 提取句柄(十六进制格式)
var blockRef = entity as BlockReference;
if (blockRef != null)
{
bool flag = true;
var dto = new DtoBasePoint()
{
Handle = entity.Handle.ToString(),
@ -1113,14 +1117,27 @@ namespace SWS.CAD.Base
if (attRef.Tag == "HKSK_TAG")
{
dto.TagNumber = attRef.TextString;
if (listTagNumber != null && listTagNumber.Contains(attRef.TextString))
{
idsToErase.Add(objId);
flag = false;
}
break;
}
}
handles.Add(dto);
if (flag)
{ handles.Add(dto); }
}
}
}
if (idsToErase.Count > 0)
{
foreach (ObjectId id in idsToErase)
{
Entity ent = (Entity)tr.GetObject(id, OpenMode.ForWrite);
ent.Erase();
}
}
tr.Commit();
}
@ -1920,15 +1937,18 @@ namespace SWS.CAD.Base
/// <param name="tagNumber">位号值</param>
/// <param name="IsNotDefaultSymbol">true:默认块false异性块</param>
/// <returns></returns>
public static bool UpdateCableNo(string dwgName, List<string> listTagName, string tagNumber, bool IsNotDefaultSymbol, string tag, string system)
public static string UpdateCableNo(string dwgName, List<string> listTagName, string tagNumber, bool IsNotDefaultSymbol, string tag, string system)
{
try
{
OpenDwg(dwgName);
//OpenDwg(dwgName);
Application.DocumentManager.Open(dwgName);
//Thread.Sleep(1000);
doc = Application.DocumentManager.MdiActiveDocument;
ed = doc.Editor;
db = doc.Database;
var s=doc.Name;
// 开启事务
using (Transaction tr = db.TransactionManager.StartTransaction())
{
@ -1986,12 +2006,13 @@ namespace SWS.CAD.Base
tr.Commit();
}
doc.CloseAndSave(dwgName);
return true;
Thread.Sleep(20);
return "";
}
catch (Exception ex)
{
SendMessage(ex.Message);
return false;
return ex.Message;
}
}
@ -2019,7 +2040,7 @@ namespace SWS.CAD.Base
// 创建多行文字对象
MText mText = new MText();
mText.Contents = textInfo.Text;
mText.Location = textInfo.Position;
mText.Location = textInfo.Position;
mText.TextHeight = textInfo.Height;
mText.Width = textInfo.Width; // 设置文本宽度,控制自动换行
if (textInfo.Align == 0)
@ -2040,7 +2061,7 @@ namespace SWS.CAD.Base
DBText dbText = new DBText();
dbText.TextString = textInfo.Text;
dbText.Position = textInfo.Position;
dbText.AlignmentPoint= textInfo.Position;
dbText.AlignmentPoint = textInfo.Position;
dbText.Height = textInfo.Height;
if (textInfo.Align == 0)
{
@ -2078,7 +2099,7 @@ namespace SWS.CAD.Base
/// <param name="position">坐标位置</param>
/// <returns></returns>
public static ObjectId AddBlockDWG(string filePath, string blockName, Point3d position)
{
{
Document doc = Application.DocumentManager.MdiActiveDocument;
var ed = doc.Editor;
ObjectId oid = ObjectId.Null;
@ -2118,10 +2139,10 @@ namespace SWS.CAD.Base
// 处理插入结果
btr.AppendEntity(br);
tr.AddNewlyCreatedDBObject(br, true);
tr.AddNewlyCreatedDBObject(br, true);
tr.Commit();
oid = br.Id;
}
oid = br.Id;
}
}
catch (Exception ex)
{

View File

@ -8,13 +8,30 @@
<appender-ref ref="InfoRollingFileAppender"/>
<appender-ref ref="DebugRollingFileAppender"/>
</root>
<!--信息日志定义,用于收集开发调试信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Debug.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
</layout>
</appender>
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR"/>
<levelMax value="FATAL"/>
<levelMin value="ERROR"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
@ -29,7 +46,25 @@
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
</layout>
</appender>
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Fatal.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
</layout>
</appender>
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
@ -70,24 +105,6 @@
</layout>
</appender>
<!--信息日志定义,用于收集开发调试信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Debug.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
</layout>
</appender>
</log4net>

View File

@ -25,6 +25,10 @@ using GlobalObject = SWS.Commons.GlobalObject;
using SWS.Model;
using SWS.Service;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using SWS.CAD.ViewModels;
using SWS.CAD.Base;
using System.Windows;
using MessageBox = System.Windows.Forms.MessageBox;
[assembly: CommandClass(typeof(Commands))]
@ -67,6 +71,15 @@ namespace SWS.CAD
panel.Icon = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"CSharp.ico");
panel.Visible = true;
if (System.Windows.Application.Current == null)
{
var app = new System.Windows.Application
{
// 设置为显式关闭,防止窗口关闭时 Application 被自动终结
ShutdownMode = ShutdownMode.OnExplicitShutdown
};
}
GlobalObject.ClearLog();
}
catch (System.Exception e)
{
@ -191,9 +204,17 @@ namespace SWS.CAD
login.ButtonStyle = RibbonButtonStyle.SmallWithText;
login.CommandHandler = new DelegateCommand(x =>
{
var loginView = GlobalObject.container.Resolve<Login>();
//Application.ShowModalDialog(Application.MainWindow,);// 用来显示WinForms对话框
Application.ShowModalWindow(Application.MainWindow.Handle, loginView);//用来显示WPF的对话框任务栏里可以看到2个Windows
try
{
var loginView = GlobalObject.container.Resolve<Login>();
//Application.ShowModalDialog(Application.MainWindow,);// 用来显示WinForms对话框
Application.ShowModalWindow(Application.MainWindow.Handle, loginView);//用来显示WPF的对话框任务栏里可以看到2个Windows
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
});
login.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"Login.png");
login.Id = "用户登录";
@ -414,9 +435,106 @@ namespace SWS.CAD
btnSwitchbox.ToolTip = "分电箱";
btnSwitchbox.Text = "分电箱";
btnSwitchbox.ButtonStyle = RibbonButtonStyle.LargeWithText;
btnSwitchbox.CommandHandler = new DelegateCommand(x =>
btnSwitchbox.CommandHandler = new DelegateCommand(async x =>
{
MessageBox.Show("功能开发中...");
//if (GlobalObject.userInfo == null || GlobalObject.curProject == null)
//{
// MessageBox.Show("请先登录系统并选择项目!");
// return;
//}
////在SWS系统内打开且不是只读的图纸才可
//var dwgName = General.GetDwgName();
//var dwgFile = GlobalObject.ListDwgOpened.FirstOrDefault(a => a.Path == dwgName && a.IsReadOnly == false);
//if (dwgFile == null)
//{ return; }
//Document doc = Application.DocumentManager.MdiActiveDocument;
//Database db = doc.Database;
//Editor ed = doc.Editor;
////选择的元素返回的属性信息
//var ResTagInfosByPixels = new Model.ec_objecttype();
//var listPropertys = new List<propertyModel>();
////获取服务接口
//var _objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
//var _iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
//// 持续选择直到获取有效电缆
//bool isValidCable = false;
//try
//{
// #region 选择电缆
// // 创建选择选项(禁用回车确认)
// PromptEntityOptions options = new PromptEntityOptions("\n请单击选择对象: ");
// options.AllowNone = false; // 禁止空选
// // 执行选择(直接单击生效)
// PromptEntityResult resultEntity = ed.GetEntity(options);
// //WindowVisibility = System.Windows.Visibility.Hidden;
// while (resultEntity.Status == PromptStatus.OK)
// {
// using (Transaction tr = db.TransactionManager.StartTransaction())
// {
// // 获取选中的电缆实体
// Entity cable = tr.GetObject(resultEntity.ObjectId, OpenMode.ForRead) as Entity;
// //if (cable != null&&cable.XData != null)
// if (cable != null)
// {
// // 获取句柄Handle 是字符串类型)
// var handId = (cable.Handle.ToString());
// var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
// if (res != null)
// {
// if (res.Count == 1)
// {
// var item = res[0];
// var objTypeName = item.ObjectTypeName;
// if (!objTypeName.Contains("电缆"))
// {
// ResTagInfosByPixels = item;
// isValidCable = true; // 校验通过
// ed.WriteMessage($"\n已选择对象:{ResTagInfosByPixels.tags.FirstOrDefault().TagNumber}");
// }
// }
// }
// }
// tr.Commit();
// }
// if (isValidCable)
// {
// break;
// }
// else
// {
// ed.WriteMessage($"\n已选择电缆:");
// resultEntity = ed.GetEntity(options);
// }
// }
// #endregion
//}
//catch (System.Exception ex)
//{
// ed.WriteMessage($"\n错误: {ex.Message}");
//}
if (true)
{
//打开窗体
var para = new Prism.Services.Dialogs.DialogParameters();
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
_dialogService.ShowDialog(nameof(DialogSectionBox), para, (RES) =>
{
if (RES.Result == ButtonResult.Yes)
{
}
else if (RES.Result == ButtonResult.No)
{ }
});
}
});
btnSwitchbox.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"Switchbox.png");
btnSwitchbox.Id = "分电箱";
@ -569,7 +687,7 @@ namespace SWS.CAD
var handId = (cable.Handle.ToString());
_objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
if (res != null)
if (res != null)
{
if (res.Count == 1)
{
@ -584,7 +702,7 @@ namespace SWS.CAD
}
}
}
tr.Commit();
}
@ -909,6 +1027,7 @@ namespace SWS.CAD
//选择的元素返回的属性信息
var ResTagInfosByPixels = new Model.ec_objecttype();
var listPropertys = new List<propertyModel>();
//获取服务接口
var _objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
var _iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
// 持续选择直到获取有效电缆
@ -981,7 +1100,7 @@ namespace SWS.CAD
//获取位号的电缆属性,判断是否设置电缆规格
var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber)).FirstOrDefault();
if(string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
if (string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
//if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
{
System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); return;
@ -1128,11 +1247,11 @@ namespace SWS.CAD
}
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
{
Tag = Tag + (char)('A' + (n-1));
Tag = Tag + (char)('A' + (n - 1));
}
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
{
Tag = (i+1)+"-"+ n.ToString();
Tag = (i + 1) + "-" + n.ToString();
}
break;
case "按电缆对编号"://一个电缆对中线号按顺序编号另一个电缆对中线号重新从1开始编号
@ -1146,7 +1265,7 @@ namespace SWS.CAD
}
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
{
Tag = (i+1) + "-" + (j+1).ToString();
Tag = (i + 1) + "-" + (j + 1).ToString();
}
break;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -150,9 +150,7 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="CADFunc\BlockDragJig.cs" />
<Compile Include="CADFunc\Editor\EditorHelper.cs" />
<Compile Include="CADFunc\General.cs" />
<Compile Include="Commands.cs" />
<Compile Include="Event\checkInResultEvent.cs" />
<Compile Include="Event\drawingChangeEvent.cs" />
@ -205,6 +203,7 @@
<Compile Include="ViewModels\DialogPreCheckInViewModel.cs" />
<Compile Include="ViewModels\DialogParallelCableViewModel.cs" />
<Compile Include="ViewModels\DialogNewTagNumberViewModel.cs" />
<Compile Include="ViewModels\DialogSectionBoxViewModel.cs" />
<Compile Include="ViewModels\DialogSignalPredistributionViewModel.cs" />
<Compile Include="ViewModels\DialogTagSelectViewModel.cs" />
<Compile Include="ViewModels\DialogUnitSelectViewModel.cs" />
@ -286,7 +285,6 @@
<Compile Include="Views\CustomControl\NumericBox\PackIconKind.cs" />
<Compile Include="Views\CustomControl\NumericBox\PathIcon.cs" />
<Compile Include="Views\CustomControl\NumericBox\TextBoxHelper.cs" />
<Compile Include="Views\CustomControl\PropertyGrid\KeyValueModel.cs" />
<Compile Include="Views\CustomControl\PropertyGrid\LsPropertyGridAttribute.cs" />
<Compile Include="Views\CustomControl\PropertyGrid\PropertyGrid.cs" />
<Compile Include="Views\CustomControl\PropertyGrid\propertyModel.cs" />
@ -313,6 +311,9 @@
<Compile Include="Views\Dialog\DialogNewTagNumber.xaml.cs">
<DependentUpon>DialogNewTagNumber.xaml</DependentUpon>
</Compile>
<Compile Include="Views\Dialog\DialogSectionBox.xaml.cs">
<DependentUpon>DialogSectionBox.xaml</DependentUpon>
</Compile>
<Compile Include="Views\Dialog\DialogSignalPredistribution.xaml.cs">
<DependentUpon>DialogSignalPredistribution.xaml</DependentUpon>
</Compile>
@ -448,6 +449,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\Dialog\DialogSectionBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Views\Dialog\DialogSignalPredistribution.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>

View File

@ -37,6 +37,10 @@ namespace SWS.CAD
GlobalObject.container.RegisterSingleton<DrawingCatalogueService>();
GlobalObject.container.RegisterSingleton<WireGroupService>();
GlobalObject.container.RegisterSingleton<IOModuleService>();
GlobalObject.container.RegisterSingleton<PDBService>();
GlobalObject.container.RegisterSingleton<RelService>();
GlobalObject._prismContainer = new DryIocContainerExtension();
GlobalObject._prismContainer.Register<IDialogService, DialogService>();
@ -73,6 +77,7 @@ namespace SWS.CAD
GlobalObject._prismContainer.RegisterDialog<DialogCableConnection, DialogCableConnectionViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogCableConnection_NewStrip, DialogCableConnection_NewStripViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogSignalPredistribution, DialogSignalPredistributionViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogSectionBox, DialogSectionBoxViewModel>();
}
}
}

View File

@ -11,6 +11,7 @@ using SWS.Service;
using Unity;
using System.Linq;
using Telerik.Windows.Controls.MaskedInput.Tokens.Numeric;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
namespace SWS.CAD.ViewModels
{
@ -156,7 +157,11 @@ namespace SWS.CAD.ViewModels
{
if (PreAssignCable.AssignedPanel!=null)
{
PreAssignCables.Add(PreAssignCable);
if (PreAssignCable.Sets!=null&&!string.IsNullOrEmpty(PreAssignCable.Sets.FirstOrDefault().ConnectionInfo))
{
PreAssignCables.Add(PreAssignCable);
}
}
}
}
@ -164,10 +169,17 @@ namespace SWS.CAD.ViewModels
{
foreach (var PreAssignCable in AllPreAssignCables)
{
if (PreAssignCable.AssignedPanel == null)
{
PreAssignCables.Add(PreAssignCable);
}
if (PreAssignCable.Sets == null || PreAssignCable.Sets.Count()==0)
{
PreAssignCables.Add(PreAssignCable);
}
else
{
if (string.IsNullOrEmpty(PreAssignCable.Sets.FirstOrDefault().ConnectionInfo))
{
PreAssignCables.Add(PreAssignCable);
}
}
}
}
}
@ -188,15 +200,54 @@ namespace SWS.CAD.ViewModels
preAllocationResult.CablePair = Set.CableSetName;
preAllocationResult.IOType = cable.PreAssignIOType;
preAllocationResult.ToPanel_TagNumber = cable.AssignedPanel == null ? "" : cable.AssignedPanel.TagNumber;
preAllocationResult.Panel_TagNumber = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[0].Split('')[1].Trim();
preAllocationResult.StripName = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[1].Split('')[1].Trim();
preAllocationResult.Terms = new ObservableCollection<ec_PanelStripTerm>(Set.AssignedTerms);
if (!string.IsNullOrEmpty(Set.ConnectionInfo))
{
preAllocationResult.Panel_TagNumber = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[0].Split('')[1].Trim();
if (Set.ConnectionInfo.Split('/').Count()>1)
{
preAllocationResult.StripName = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[1].Split('')[1].Trim();
}
}
preAllocationResult.Terms = Set.AssignedTerms==null?new ObservableCollection<ec_PanelStripTerm>(): new ObservableCollection<ec_PanelStripTerm>(Set.AssignedTerms);
PreAllocationResultls.Add(preAllocationResult);
}
}
}
public ICommand HeadButtonCmd => new DelegateCommand(HeadButton_Click);
/// <summary>
/// 导出按钮
/// </summary>
/// <param name="parameter"></param>
public virtual async void HeadButton_Click(object parameter)
{
if (parameter.Equals("导出电缆预分配结果明细表"))
{
System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog();
saveFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx|所有文件 (*.*)|*.*";
saveFileDialog.Title = "选择保存路径";
if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string selectedPath = saveFileDialog.FileName;
if (System.IO.File.Exists(selectedPath))
{ System.IO.File.Delete(selectedPath); }
var msg = await _iOModuleService.AutoAssignCable2Channel_ResExport(selectedPath);
if (string.IsNullOrEmpty(msg))
{
System.Windows.MessageBox.Show("下载文件成功!");
}
else { System.Windows.MessageBox.Show("下载文件异常:" + msg); }
}
}
}
public ICommand EditEndCmd => new DelegateCommand(EditEnd);
/// <summary>
/// 编辑结束事件

View File

@ -14,6 +14,7 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using Prism.Events;
using Prism.Ioc;
using Prism.Services.Dialogs;
using SWS.CAD.Base;
using SWS.CAD.CADFunc;
using SWS.CAD.Event;
using SWS.CAD.ViewModels.myViewModelBase;
@ -180,9 +181,20 @@ namespace SWS.CAD.ViewModels
}
public async void OnDialogOpened(IDialogParameters parameters)
{
IsBusy = true;
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
IsBusy = false;
try
{
IsBusy = true;
var resPanelTreels = await _iOModuleService.GetPanelTree();
PanelTreels.AddRange(resPanelTreels);
}
catch (Exception)
{
System.Windows.MessageBox.Show("网络连接失败", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning);
}
finally
{
IsBusy = false;
}
}

View File

@ -17,6 +17,7 @@ using SWS.Commons;
using SWS.Model;
using SWS.WPF.ViewModels;
using SWS.Service;
using SWS.CAD.Base;
namespace SWS.CAD.ViewModels
{

View File

@ -0,0 +1,559 @@

using Bricscad.ApplicationServices;
using Bricscad.EditorInput;
using Prism.Events;
using Prism.Ioc;
using Prism.Services.Dialogs;
using SWS.CAD.Base;
using SWS.CAD.Event;
using SWS.CAD.ViewModels.myViewModelBase;
using SWS.CAD.Views;
using SWS.CAD.Views.CustomControl;
using SWS.Commons;
using SWS.Model;
using SWS.Service;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using Teigha.DatabaseServices;
using Telerik.Windows.Controls;
using Unity;
namespace SWS.CAD.ViewModels
{
/// <summary>
/// 信号预分配页面的模型类
/// </summary>
public class DialogSectionBoxViewModel : DialogBase, IDialogAware
{
#region
private ObservableCollection<CircuitBreakerInfo> _CircuitBreakerInfos = new ObservableCollection<CircuitBreakerInfo>();
/// <summary>
/// 表格数据
/// </summary>
public ObservableCollection<CircuitBreakerInfo> CircuitBreakerInfos
{
get { return _CircuitBreakerInfos; }
set
{
_CircuitBreakerInfos = value;
RaisePropertyChanged(nameof(CircuitBreakerInfos));
}
}
private CircuitBreakerInfo _SelectCircuitBreaker;
/// <summary>
/// 表格选中行
/// </summary>
public CircuitBreakerInfo SelectCircuitBreaker
{
get { return _SelectCircuitBreaker; }
set { _SelectCircuitBreaker = value; }
}
private string _DefaultBreakerType;
/// <summary>
/// 开关类型
/// </summary>
public string DefaultBreakerType
{
get { return _DefaultBreakerType; }
set
{
_DefaultBreakerType = value;
RaisePropertyChanged(nameof(DefaultBreakerType));
}
}
private List<string> _BreakerTypels = new List<string>() { "MCCB", "ACB" };
/// <summary>
/// 开关类型的下拉列表
/// </summary>
public List<string> BreakerTypels
{
get { return _BreakerTypels; }
set { _BreakerTypels = value; }
}
private List<string> _CB_Typels = new List<string>() { "输入", "输出" };
/// <summary>
/// 分电箱类型列的下拉列表
/// </summary>
public List<string> CB_Typels
{
get { return _CB_Typels; }
set
{
_CB_Typels = value;
}
}
/// <summary>
/// 表示要删除的开关id集合
/// </summary>
public List<string> DeleBreakerIds = new List<string>();
#endregion
IOModuleService _iOModuleService;
ObjectTypeService _objectTypeService;
RelService _relService;
PDBService _pDBService;
IEventAggregator _eventAggregator;
public DialogSectionBoxViewModel()
{
_iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
_pDBService = GlobalObject.container.Resolve<PDBService>();
_relService = GlobalObject.container.Resolve<RelService>();
_objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
_eventAggregator = GlobalObject.container.Resolve<IEventAggregator>();
}
public string Title => "";
public event Action<IDialogResult> RequestClose;
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed()
{
}
private ec_Panel resBreakers;
public async void OnDialogOpened(IDialogParameters parameters)
{
//title = $"电缆信号({parameters.GetValue<string>(GlobalObject.dialogPar.para2.ToString())})预分配";
var resTagInfos = await _objectTypeService.GetTagInfosByPixels("857e8ae5-d9b4-4dc7-8ebc-d7e752a4b31c", "2C01C");
//var resRel = await _relService.GetRelDefByName("主配电板");
//获取分电箱的开关信息
IsBusy = true;
resBreakers = await _pDBService.GetBreakers(resTagInfos.FirstOrDefault().tags.FirstOrDefault().EngineDataID);
if (resBreakers != null)
{
int i = 0;
foreach (var Breaker in resBreakers.Breakers)
{
i++;
CircuitBreakerInfo breakerInfo = new CircuitBreakerInfo(Breaker);
breakerInfo.Index = i;
CircuitBreakerInfos.Add(breakerInfo);
}
DefaultBreakerType = resBreakers.DefaultBreakerType;
}
title = $"{resTagInfos.FirstOrDefault().tags.FirstOrDefault().ObjectTypeName + resTagInfos.FirstOrDefault().tags.FirstOrDefault().TagNumber}开关管理";
IsBusy = false;
}
public override async void ExecuteOKCommandAsync(object para)
{
await SavePanelAndBreaker();
IDialogParameters res = new Prism.Services.Dialogs.DialogParameters();
//res.Add(GlobalObject.dialogPar.info.ToString(), TagNumber);
RequestClose.Invoke(new DialogResult(ButtonResult.Yes, res));
}
public override void ExecuteCloseCommand(object parameter)
{
if (parameter as string == "ClickNo")
{
DialogResult res = new DialogResult(ButtonResult.No);
RequestClose.Invoke(res);
}
else
{
RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
}
this.Dispose();
}
#region
#region
public ICommand ButtonCmd => new DelegateCommand(Button_Click);
/// <summary>
/// 页面左侧按钮
/// </summary>
/// <param name="parameter"></param>
public virtual async void Button_Click(object parameter)
{
#region
if (parameter.ToString().Equals("新增"))
{
CircuitBreakerInfo breakerInfo = new CircuitBreakerInfo();
breakerInfo.Index = CircuitBreakerInfos.Count() + 1;
breakerInfo.Name = "开关" + (CircuitBreakerInfos.Count() + 1);
breakerInfo.Phase = 1;
breakerInfo.OrderId = CircuitBreakerInfos.Count();
breakerInfo.CB_Type = "输出";
breakerInfo.IsModified = true;
CircuitBreakerInfos.Add(breakerInfo);
return;
}
#endregion
#region
if (parameter.ToString().Equals("删除"))
{
//当前选择不为空
if (SelectCircuitBreaker != null)
{
if (!string.IsNullOrEmpty(SelectCircuitBreaker.EngineerDataID))
{
DeleBreakerIds.Add(SelectCircuitBreaker.EngineerDataID);
}
CircuitBreakerInfos.Remove(SelectCircuitBreaker);
}
else
{
System.Windows.MessageBox.Show("请先选择删除行", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
}
//删除之后重新排序
int i = 0;
foreach (var CircuitBreakerInfo in CircuitBreakerInfos)
{
i++;
CircuitBreakerInfo.Index = i;
}
return;
}
#endregion
#region
if (parameter.ToString().Equals("关联电缆"))
{
//当前选择不为空
if (SelectCircuitBreaker != null)
{
//在SWS系统内打开且不是只读的图纸才可
var dwgName = General.GetDwgName();
var dwgFile = GlobalObject.ListDwgOpened.FirstOrDefault(a => a.Path == dwgName && a.IsReadOnly == false);
if (dwgFile == null)
{ return; }
Document doc = Bricscad.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
//选择的元素返回的属性信息
var ResTagInfosByPixels = new Model.ec_objecttype();
var listPropertys = new List<propertyModel>();
// 持续选择直到获取有效电缆
bool isValidCable = false;
try
{
// 创建选择选项(禁用回车确认)
PromptEntityOptions options = new PromptEntityOptions("\n请单击选择电缆: ");
options.AllowNone = false; // 禁止空选
// 执行选择(直接单击生效)
PromptEntityResult resultEntity = ed.GetEntity(options);
while (resultEntity.Status == PromptStatus.OK)
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
// 获取选中的电缆实体
Entity cable = tr.GetObject(resultEntity.ObjectId, OpenMode.ForRead) as Entity;
//if (cable != null&&cable.XData != null)
if (cable != null)
{
// 获取句柄Handle 是字符串类型)
var handId = (cable.Handle.ToString());
_objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
if (res != null)
{
if (res.Count == 1)
{
var item = res[0];
var objTypeName = item.ObjectTypeName;
if (objTypeName.Contains("电缆"))
{
ResTagInfosByPixels = item;
isValidCable = true; // 校验通过
ed.WriteMessage($"\n已选择电缆:{ResTagInfosByPixels.tags.FirstOrDefault().TagNumber}");
}
}
}
}
tr.Commit();
}
if (isValidCable)
{
break;
}
else
{
ed.WriteMessage($"\n已选择电缆:");
resultEntity = ed.GetEntity(options);
}
}
}
catch (Exception ex)
{
ed.WriteMessage($"\n错误: {ex.Message}");
}
}
else
{
System.Windows.MessageBox.Show("请先选择行", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
}
return;
}
#endregion
#region
if (parameter.ToString().Equals("放置开关"))
{
//当前选择不为空
if (SelectCircuitBreaker != null)
{
}
else
{
System.Windows.MessageBox.Show("请先选择行", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
}
return;
}
#endregion
}
#endregion
#region
public ICommand EditEndCmd => new DelegateCommand(EditEnd);
/// <summary>
/// 编辑结束事件
/// </summary>
/// <param name="parameter"></param>
public virtual void EditEnd(object parameter)
{
//做个标记表示该项修改过
SelectCircuitBreaker.IsModified = true;
}
#endregion
#region
/// <summary>
/// 保存
/// </summary>
public async Task SavePanelAndBreaker()
{
//SavePanel
ec_Panel panel = new ec_Panel();
panel.CreateTime = resBreakers.CreateTime;
panel.CreateUserID = resBreakers.CreateUserID;
panel.DefaultBreakerType = DefaultBreakerType;
panel.EngineerDataID = resBreakers.EngineerDataID;
panel.MaxStripNumber = resBreakers.MaxStripNumber;
panel.ObjectTypeName = resBreakers.ObjectTypeName;
panel.PanelID = resBreakers.PanelID;
panel.Panel_Loc_ID = resBreakers.Panel_Loc_ID;
panel.TagNumber = resBreakers.TagNumber;
panel.UpdateTime = resBreakers.UpdateTime;
panel.UpdateUserID = resBreakers.UpdateUserID;
panel.allowedIOTypes = resBreakers.allowedIOTypes;
panel.strips = resBreakers.strips;
panel.systempanel = resBreakers.systempanel;
var resSavePanel = await _iOModuleService.SavePanel(panel);
//SaveBreakers
List<ec_CircuitBreaker> circuitBreakerls = new List<ec_CircuitBreaker>();
foreach (var CircuitBreakerInfo in CircuitBreakerInfos)
{
if (CircuitBreakerInfo.IsModified)
{
ec_CircuitBreaker circuitBreaker = new ec_CircuitBreaker();
circuitBreaker.Name = CircuitBreakerInfo.Name;
circuitBreaker.Phase = CircuitBreakerInfo.Phase;
circuitBreaker.CB_Type = CircuitBreakerInfo.CB_Type;
circuitBreaker.Capacity_Act = CircuitBreakerInfo.Capacity_Act;
circuitBreaker.Capacity_Max = CircuitBreakerInfo.Capacity_Max;
circuitBreaker.Capacity_Set = CircuitBreakerInfo.Capacity_Set;
circuitBreaker.EngineerDataID = CircuitBreakerInfo.EngineerDataID;
circuitBreaker.OrderId = CircuitBreakerInfo.OrderId;
circuitBreakerls.Add(circuitBreaker);
}
}
var resSaveBreaker = await _pDBService.SaveBreakers(resBreakers.EngineerDataID, circuitBreakerls);
//DeleteBreaker
if (DeleBreakerIds.Count > 0)
{
var BreakerIds = string.Join(",", DeleBreakerIds);
var resDele = await _pDBService.Delete(BreakerIds);
}
}
#endregion
#endregion
}
public class CircuitBreakerInfo : ViewBase
{
#region
private int _Index;
/// <summary>
/// 序号
/// </summary>
public int Index
{
get { return _Index; }
set { _Index = value; }
}
private string _Name;
/// <summary>
/// 开关名字
/// </summary>
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private int _Phase;
/// <summary>
/// 相数
/// </summary>
public int Phase
{
get { return _Phase; }
set { _Phase = value; }
}
private string _CB_Type;
/// <summary>
/// 分电箱类型
/// 输出或输入
/// </summary>
public string CB_Type
{
get { return _CB_Type; }
set { _CB_Type = value; }
}
private string _Capacity_Max;
/// <summary>
/// 额定电流
/// </summary>
public string Capacity_Max
{
get { return _Capacity_Max; }
set { _Capacity_Max = value; }
}
private string _Capacity_Set;
/// <summary>
/// 整定电流
/// </summary>
public string Capacity_Set
{
get { return _Capacity_Set; }
set { _Capacity_Set = value; }
}
private string _Capacity_Act;
/// <summary>
/// 实际电流
/// </summary>
public string Capacity_Act
{
get { return _Capacity_Act; }
set { _Capacity_Act = value; }
}
private string _CableTagNumber;
/// <summary>
/// 电缆位号
/// </summary>
public string CableTagNumber
{
get { return _CableTagNumber; }
set { _CableTagNumber = value; }
}
private string _RemoteDeviceId;
/// <summary>
/// 对面的设备信息
/// </summary>
public string RemoteDeviceId
{
get { return _RemoteDeviceId; }
set { _RemoteDeviceId = value; }
}
#endregion
#region
private string _EngineerDataID;
/// <summary>
/// 开关工程ID
/// </summary>
public string EngineerDataID
{
get { return _EngineerDataID; }
set { _EngineerDataID = value; }
}
private int _OrderId;
public int OrderId
{
get { return _OrderId; }
set { _OrderId = value; }
}
private bool _IsModified;
/// <summary>
/// 标记行数据是否修改
/// </summary>
public bool IsModified
{
get { return _IsModified; }
set { _IsModified = value; }
}
#endregion
public CircuitBreakerInfo()
{
}
public CircuitBreakerInfo(ec_CircuitBreaker ec_CircuitBreaker)
{
Name = ec_CircuitBreaker.Name;
CB_Type = ec_CircuitBreaker.CB_Type;
Phase = ec_CircuitBreaker.Phase;
Capacity_Max = ec_CircuitBreaker.Capacity_Max;
Capacity_Set = ec_CircuitBreaker.Capacity_Set;
Capacity_Act = ec_CircuitBreaker.Capacity_Act;
CableTagNumber = ec_CircuitBreaker.CableTagNumbers.FirstOrDefault();
EngineerDataID = ec_CircuitBreaker.EngineerDataID;
OrderId = ec_CircuitBreaker.OrderId;
}
}
}

View File

@ -1,4 +1,5 @@

using Aspose.Cells;
using Prism.Events;
using Prism.Ioc;
using Prism.Services.Dialogs;
@ -111,22 +112,37 @@ namespace SWS.CAD.ViewModels
RaisePropertyChanged(nameof(SignalColumnName));
if (value.Equals("Digital"))
{
//判断是否输入输出是否有值,有值下拉可选项需要设置为已有值
string tempIntorOut= SignalPredistributionInfos.Where(s => !string.IsNullOrEmpty(s.InorOut)).Select(s => s.InorOut).FirstOrDefault();
if (string.IsNullOrEmpty(tempIntorOut))
{
InorOuts = new List<string>() { "输出", "输入" };
}
else
{
InorOuts = new List<string>() { tempIntorOut };
}
SignalTypeColumn = new ObservableCollection<string>() { "无公共端接线(断开报警NC)", "无公共端接线(闭合报警NO)", "带公共端接线(断开报警NC)", "带公共端接线(闭合报警NO)" };
}
else if (value.Equals("4-20mA"))
{
InorOuts= new List<string>() { "输出", "输入" };
SignalTypeColumn = new ObservableCollection<string>() { "无源", "有源" };
}
else if (value.Equals("-10V-10V"))
{
InorOuts = new List<string>() { "输出", "输入" };
SignalTypeColumn = new ObservableCollection<string>() { "无源", "有源" };
}
else if (value.Equals("PT100"))
{
InorOuts = new List<string>() { "输出", "输入" };
SignalTypeColumn = new ObservableCollection<string>() { "量程100", "量程150", "量程200", "量程600" };
}
else if (value.Equals("Pulse"))
{
InorOuts = new List<string>() { "输出", "输入" };
SignalTypeColumn = new ObservableCollection<string>() { "脉冲信号" };
}
}
@ -275,7 +291,7 @@ namespace SWS.CAD.ViewModels
if (string.IsNullOrEmpty(Set.PreAssignInOrOut))
{
predistributionInfo.InorOut = InorOuts.FirstOrDefault();
//predistributionInfo.InorOut = InorOuts.FirstOrDefault();
}
else
{
@ -283,6 +299,8 @@ namespace SWS.CAD.ViewModels
}
predistributionInfo.SensorCode = Set.PreAssignSensorCode;
//给每一行添加委托事件
predistributionInfo.UpdateInorOutsChanged += (sender, e) => UpdateInorOuts((SignalPredistributionInfo)sender);
SignalPredistributionInfos.Add(predistributionInfo);
}
@ -423,6 +441,39 @@ namespace SWS.CAD.ViewModels
#endregion
}
#region
public void UpdateInorOuts(SignalPredistributionInfo sender)
{
if (SignalColumnName.Equals("Digital"))
{
string tempIntorOut = SignalPredistributionInfos.Where(s => !string.IsNullOrEmpty(s.InorOut)).Select(s => s.InorOut).FirstOrDefault();
if (string.IsNullOrEmpty(tempIntorOut))
{
InorOuts = new List<string>() { sender.InorOut };
if (sender.SignalType.Contains("带公共端"))
{
InorOuts = new List<string>() { "输入" };
}
}
else
{
if (tempIntorOut.Equals("输出"))
{
if (sender.SignalType.Contains("带公共端"))
{
MessageBox.Show("带公共端只能跟输入信号搭配", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning);
//需要还原信号类型的选项
var Set = CableBy.Sets.FirstOrDefault(s => s.CableSetName.Equals(sender.CablePair));
sender.SignalType = SignalTypeColumn.FirstOrDefault();
}
}
}
}
}
#endregion
#region
public List<string> FindNodePath(ObservableCollection<TreeModel> nodes, TreeModel targetNode)
@ -454,6 +505,8 @@ namespace SWS.CAD.ViewModels
public class SignalPredistributionInfo : DialogBase
{
public event EventHandler UpdateInorOutsChanged;
#region
private ObservableCollection<string> _Index = new ObservableCollection<string>();
/// <summary>
@ -510,6 +563,8 @@ namespace SWS.CAD.ViewModels
{
_SignalType = value;
RaisePropertyChanged(nameof(SignalType));
UpdateInorOutsChanged?.Invoke(this, EventArgs.Empty);
}
}
@ -553,6 +608,8 @@ namespace SWS.CAD.ViewModels
{
_InorOut = value;
RaisePropertyChanged(nameof(InorOut));
UpdateInorOutsChanged?.Invoke(this, EventArgs.Empty);
}
}

View File

@ -5,6 +5,7 @@ using SWS.CAD.ViewModels.myViewModelBase;
using SWS.CAD.Views;
using SWS.CAD.Views.CustomControl;
using SWS.Commons;
using SWS.Model;
using System;
using System.Collections.ObjectModel;
using System.Windows;

View File

@ -36,6 +36,7 @@ using SWS.Commons;
using SWS.Model;
using SWS.Service;
using SWS.WPF.Views;
using SWS.CAD.Base;
namespace SWS.CAD.ViewModels
{
public class LeftPanelViewModel : ViewModelBase
@ -833,7 +834,7 @@ namespace SWS.CAD.ViewModels
{ MessageBox.Show("图纸文件下载失败,信息:" + msg); return; }
}
}
msg = CADFunc.General.OpenDwg(filePath);//打开编辑图纸
msg = General.OpenDwg(filePath);//打开编辑图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");
@ -868,7 +869,7 @@ namespace SWS.CAD.ViewModels
msg = await _annexesService.DownloadFile(filePath, dwgfileDto.F_Id);
if (!string.IsNullOrEmpty(msg))
{ MessageBox.Show("图纸文件下载失败,信息:" + msg); return; }
msg = CADFunc.General.OpenDwg(filePath, true);//以只读模式打开图纸
msg = General.OpenDwg(filePath, true);//以只读模式打开图纸
if (!string.IsNullOrEmpty(msg))
{
@ -996,7 +997,7 @@ namespace SWS.CAD.ViewModels
else
{
//以只读模式打开图纸
msg = CADFunc.General.OpenDwg(filePath, true);
msg = General.OpenDwg(filePath, true);
InitDrawingSelectedAdd(dwgObj, true);
}
//获取当前图纸所有句柄
@ -1191,7 +1192,7 @@ namespace SWS.CAD.ViewModels
}
//打开图纸文件
filePath = Path.Combine(GlobalObject.GetDwgFileFolder(), model.Text);
msg = CADFunc.General.OpenDwg(filePath);
msg = General.OpenDwg(filePath);
//更新图纸节点图标和字体颜色
dwgObj.CheckOutUserID = GlobalObject.userInfo.userId;
@ -1693,7 +1694,7 @@ namespace SWS.CAD.ViewModels
#region
if (FileHelper.IsFileLocked(filePath))
{
msg = CADFunc.General.OpenDwg(filePath);//打开编辑图纸
msg = General.OpenDwg(filePath);//打开编辑图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");
@ -1716,7 +1717,7 @@ namespace SWS.CAD.ViewModels
msg = await _annexesService.DownloadFile(filePath, dwgfileDto.F_Id);
if (!string.IsNullOrEmpty(msg))
{ MessageBox.Show("图纸文件下载失败,信息:" + msg); return; }
msg = CADFunc.General.OpenDwg(filePath);//打开编辑图纸
msg = General.OpenDwg(filePath);//打开编辑图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");
@ -1740,7 +1741,7 @@ namespace SWS.CAD.ViewModels
#region
if (FileHelper.IsFileLocked(filePath))
{
msg = CADFunc.General.OpenDwg(filePath, true);//只读打开图纸
msg = General.OpenDwg(filePath, true);//只读打开图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");
@ -1764,7 +1765,7 @@ namespace SWS.CAD.ViewModels
if (!string.IsNullOrEmpty(msg))
{ MessageBox.Show("图纸文件下载失败,信息:" + msg); return; }
msg = CADFunc.General.OpenDwg(filePath, true);//只读打开图纸
msg = General.OpenDwg(filePath, true);//只读打开图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");
@ -2142,7 +2143,7 @@ namespace SWS.CAD.ViewModels
var dwgPublishObj = JsonConvert.DeserializeObject<ec_drawing_publish>(model.NodeExtData.ToString());
if (File.Exists(filePath))
{
msg = CADFunc.General.OpenDwg(filePath, true);//以只读模式打开图纸
msg = General.OpenDwg(filePath, true);//以只读模式打开图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");
@ -2156,7 +2157,7 @@ namespace SWS.CAD.ViewModels
msg = await _annexesService.DownloadFile(filePath, dwgfileDto.F_Id);
if (!string.IsNullOrEmpty(msg))
{ MessageBox.Show("图纸文件下载失败,信息:" + msg); return; }
msg = CADFunc.General.OpenDwg(filePath, true);//以只读模式打开图纸
msg = General.OpenDwg(filePath, true);//以只读模式打开图纸
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{model.Text} 打开失败,信息:{msg}");

View File

@ -1,4 +1,5 @@
using Prism.Services.Dialogs;
using SWS.CAD.Base;
using SWS.CAD.ViewModels.myViewModelBase;
using SWS.Commons;
using SWS.Model;
@ -382,7 +383,7 @@ namespace SWS.CAD.ViewModels
{
MessageBox.Show("新建图纸成功!");
//新建图纸完,自动打开图纸
msg = CADFunc.General.OpenDwg(filePath);
msg = General.OpenDwg(filePath);
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show($"本地图纸文件:{dwgObj.DrawingFileName} 打开失败,信息:{msg}");

View File

@ -3,6 +3,7 @@ using Bricscad.EditorInput;
using Prism.Events;
using Prism.Ioc;
using Prism.Services.Dialogs;
using SWS.CAD.Base;
using SWS.CAD.CADFunc;
using SWS.CAD.Event;
using SWS.CAD.Views;

View File

@ -225,7 +225,11 @@ namespace SWS.CAD.Views.CustomControl
{
var item = listPro[i];
var list = listPro.Where(a => a.IsBasicGroup = item.IsBasicGroup).ToList();
isLast = item.DisplayText == list.Last().DisplayText;
if (list != null && list.Count() != 0)
{
isLast = item.DisplayText == list.Last().DisplayText;
}
}
CreatePropertyControl(sender, listPro[i], i, isLast);
}

View File

@ -60,19 +60,27 @@
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<StackPanel >
<StackPanel Orientation="Horizontal">
<RadioButton IsChecked="{Binding SuccessOrFailure, Converter={StaticResource RadioButtonValueCvt},ConverterParameter=分配成功}" Content="分配成功" Foreground="White" GroupName="RadioButton1"/>
<RadioButton IsChecked="{Binding SuccessOrFailure, Converter={StaticResource RadioButtonValueCvt},ConverterParameter=分配失败}" Content="分配失败" Foreground="White" GroupName="RadioButton1"/>
</StackPanel>
<DockPanel>
<StackPanel Orientation="Horizontal">
<RadioButton IsChecked="{Binding SuccessOrFailure, Converter={StaticResource RadioButtonValueCvt},ConverterParameter=分配成功}" Content="分配成功" Foreground="White" GroupName="RadioButton1"/>
<RadioButton IsChecked="{Binding SuccessOrFailure, Converter={StaticResource RadioButtonValueCvt},ConverterParameter=分配失败}" Content="分配失败" Foreground="White" GroupName="RadioButton1"/>
</StackPanel>
<StackPanel Width="20" HorizontalAlignment="Right">
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe134;}"
ToolTip="导出电缆预分配结果明细表"
Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
</telerik:RadPathButton>
</StackPanel>
</DockPanel>
<StackPanel Orientation="Horizontal">
<GroupBox Margin="5,0,5,5"
Foreground="White"
VerticalAlignment="Bottom"
Header="预分配电缆列表">
<ListBox x:Name="treeView1" Width="120" Height="490" Background="White"
<ListBox x:Name="treeView1" Width="120" Height="490" Background="White"
ItemsSource="{Binding PreAssignCables,Mode=TwoWay}" SelectedItem="{Binding SelectedPreAssignCable,Mode=TwoWay}"
Margin="5" telerik:StyleManager.Theme="Office_Blue"
>
<ListBox.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding PreAssignCables,Mode=TwoWay}">
@ -82,11 +90,11 @@
</ListBox.ItemTemplate>
</ListBox>
</GroupBox>
<GroupBox Margin="5,0,5,5"
<GroupBox Margin="5,0,0,5"
Foreground="White"
Header="预分配信息">
<Grid Width="450" Height="500" Background="White">
<telerik:RadGridView x:Name="RadGridView1" SelectionMode="Single" Width="auto" Height="660"
<Grid Width="480" Height="500" Background="White">
<telerik:RadGridView x:Name="RadGridView1" SelectionMode="Single" Width="auto" Height="660"
AutoGenerateColumns="False" IsFilteringAllowed="False"
IsReadOnly="False" RowIndicatorVisibility="Collapsed"
ShowGroupPanel="False" telerik:StyleManager.Theme="Office_Blue"
@ -108,9 +116,9 @@
DataMemberBinding="{Binding Terms}"
Width="*" IsReadOnly="True"
CellTemplate="{StaticResource CellTemplate2}" CellEditTemplate="{StaticResource CellEditTemplate2}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</GroupBox>
</StackPanel>
<TextBlock Text="{Binding SuccessOrFailure}" Foreground="White" FontSize="12" Margin="0 0 0 10"/>

View File

@ -4,9 +4,109 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SWS.CAD.Views.Dialog"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
</Grid>
xmlns:CustomControl="clr-namespace:SWS.CAD.Views.CustomControl"
xmlns:prism="http://prismlibrary.com/"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable="d" >
<prism:Dialog.WindowStyle>
<Style TargetType="Window">
<Setter Property="Width" Value="1200"/>
<Setter Property="Height" Value="800"/>
<Setter Property="WindowState" Value="Normal"/>
<Setter Property="WindowStyle" Value="None"/>
<Setter Property="ResizeMode" Value="NoResize"/>
<Setter Property="ShowInTaskbar" Value="True"/>
</Style>
</prism:Dialog.WindowStyle>
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/SWS.WPF;component/Style/CustomStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<telerik:RadBusyIndicator BusyContent="{Binding BusyContent}" IsBusy="{Binding IsBusy}">
<Grid>
<StackPanel Background="#f0f0f0">
<CustomControl:customWindowTitleBar/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Width="650">
<Label Content="开关配置列" FontSize="13" Margin="0"/>
<telerik:RadGridView
x:Name="dataGrid1"
telerik:StyleManager.Theme="Office_Blue"
RowIndicatorVisibility="Collapsed"
AutoGenerateColumns="False"
IsReadOnly="False"
IsFilteringAllowed="False"
ItemsSource="{Binding CircuitBreakerInfos}"
SelectedItem="{Binding SelectCircuitBreaker,Mode=TwoWay}"
SelectionMode="Single"
ShowGroupPanel="False"
Height="450"
Margin="5">
<telerik:EventToCommandBehavior.EventBindings>
<telerik:EventBinding Command="{Binding EditEndCmd}"
EventName="CellEditEnded"
PassEventArgsToCommand="True" />
</telerik:EventToCommandBehavior.EventBindings>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Index}" Header="序号"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Name}" Header="开关名称"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Phase}" Header="相数"/>
<telerik:GridViewComboBoxColumn Header="类型"
ItemsSource="{Binding DataContext.CB_Typels, RelativeSource={RelativeSource AncestorType={x:Type telerik:RadGridView}}}"
DataMemberBinding="{Binding CB_Type}"
Width="60"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Capacity_Max}" Header="额定电流(A)"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Capacity_Set}" Header="整定电流(A)"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Capacity_Act}" Header="实际电流(A)"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding CableTagNumbers}" Header="电缆位号" IsReadOnly="True"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding RemoteDeviceId}" Header="另一端连接信息" IsReadOnly="True" Width="*"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</StackPanel>
<StackPanel Grid.Column="1">
<telerik:RadButton Content="确定"
Style="{StaticResource sysBtn}"
Command="{Binding OKCommand}"
CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}"
Margin="5"/>
<telerik:RadButton Content="取消"
Style="{StaticResource sysBtn2}"
Command="{Binding CloseCommand}"
CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}"
Margin="5"/>
<telerik:RadButton Content="新增"
Style="{StaticResource sysBtn}"
Command="{Binding ButtonCmd}"
CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}"
Margin="0,40,0,0"/>
<telerik:RadButton Content="删除"
Style="{StaticResource sysBtn4}"
Command="{Binding ButtonCmd}"
CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}"
Margin="5"/>
<telerik:RadButton Content="关联电缆"
Style="{StaticResource sysBtn}"
Command="{Binding ButtonCmd}"
CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}"
Margin="5"/>
<telerik:RadButton Content="放置开关"
Style="{StaticResource sysBtn}"
Command="{Binding ButtonCmd}"
CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}"
Margin="5"/>
<Label Content="开关类型:" FontSize="12" Margin="0,40,0,0"/>
<ComboBox ItemsSource="{Binding BreakerTypels}" SelectedItem="{Binding DefaultBreakerType,Mode=TwoWay}" Margin="5"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
</telerik:RadBusyIndicator>
</UserControl>

View File

@ -413,7 +413,7 @@
</telerik:GridViewDataColumn>
<telerik:GridViewComboBoxColumn Header="输入/输出"
ItemsSource="{Binding DataContext.InorOuts, RelativeSource={RelativeSource AncestorType={x:Type telerik:RadGridView}}}"
DataMemberBinding="{Binding InorOut}"
DataMemberBinding="{Binding InorOut,Mode=TwoWay}"
Width="60">
</telerik:GridViewComboBoxColumn>

View File

@ -7,6 +7,7 @@
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:local="clr-namespace:SWS.CAD.Views"
xmlns:local2="clr-namespace:SWS.Model;assembly=SWS.Model"
xmlns:Behaviors="clr-namespace:SWS.Commons.Helper.Behaviours;assembly=SWS.Commons"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Width="250"
Loaded="UserControl_Loaded">
@ -183,17 +184,17 @@
TextAlignment="Center" />
</StackPanel>
<telerik:RadTreeView
<TreeView
x:Name="radTreeView"
Grid.Row="2"
Grid.ColumnSpan="2"
Background="Transparent"
Margin="-5,0,0,0"
telerik:StyleManager.Theme="Green"
FontSize="11"
ItemsSource="{Binding Drawings}"
PreviewMouseRightButtonDown="RadTreeView_PreviewMouseRightButtonDown"
SelectedItem="{Binding selectedNode, Mode=TwoWay}">
<telerik:RadTreeView.ItemTemplate>
Behaviors:TreeViewSelectedItemBehavior.SelectedItem="{Binding selectedNode, Mode=TwoWay}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local2:TreeModel}" ItemsSource="{Binding ChildNodes}">
<StackPanel
Height="16"
@ -211,33 +212,32 @@
Text="{Binding Text}" />
</StackPanel>
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</TreeView.ItemTemplate>
<telerik:RadTreeView.ContextMenu>
<TreeView.ContextMenu>
<ContextMenu x:Name="TreeItemContextMenu">
<!-- 菜单项将会在后台动态填充 -->
</ContextMenu>
</telerik:RadTreeView.ContextMenu>
</telerik:RadTreeView>
</TreeView.ContextMenu>
</TreeView>
</Grid>
</TabItem>
<TabItem Header="历史版次">
<Grid Background="Transparent">
<telerik:RadTreeView
<TreeView
x:Name="treeDwgHistory"
Margin="-5,0,0,0"
telerik:StyleManager.Theme="Green"
Background="Transparent"
FontSize="11"
ItemsSource="{Binding historyDrawings}"
PreviewMouseRightButtonDown="treeDwgHistory_PreviewMouseRightButtonDown"
SelectedItem="{Binding selectedHistoryDwg, Mode=TwoWay}">
<telerik:RadTreeView.ItemContainerStyle>
Behaviors:TreeViewSelectedItemBehavior.SelectedItem="{Binding selectedHistoryDwg, Mode=TwoWay}">
<TreeView.ItemContainerStyle>
<Style TargetType="telerik:RadTreeViewItem">
<Setter Property="IsExpanded" Value="{Binding isexpand, Mode=TwoWay, Converter={StaticResource expandConverter}}" />
</Style>
</telerik:RadTreeView.ItemContainerStyle>
<telerik:RadTreeView.ItemTemplate>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local2:TreeModel}" ItemsSource="{Binding ChildNodes}">
<StackPanel
Height="16"
@ -252,14 +252,14 @@
<TextBlock VerticalAlignment="Center" Text="{Binding Text}" />
</StackPanel>
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</TreeView.ItemTemplate>
<telerik:RadTreeView.ContextMenu>
<TreeView.ContextMenu>
<ContextMenu x:Name="treeDwgHistoryItemContextMenu">
<!-- 菜单项将会在后台动态填充 -->
</ContextMenu>
</telerik:RadTreeView.ContextMenu>
</telerik:RadTreeView>
</TreeView.ContextMenu>
</TreeView>
</Grid>
</TabItem>
</TabControl>
@ -337,15 +337,15 @@
TextChanged="TextBox_TextChanged" />
<telerik:RadListBox Grid.Row="1" Grid.ColumnSpan="2" />
<!-- 最近使用 -->
<telerik:RadTreeView
<TreeView
Grid.Row="2"
Grid.ColumnSpan="2"
Margin="-5,0,0,0"
telerik:StyleManager.Theme="Green"
Background="Transparent"
FontSize="11"
ItemsSource="{Binding objectTypeTree}"
SelectedItem="{Binding selectType, Mode=TwoWay}">
<telerik:RadTreeView.ItemTemplate>
Behaviors:TreeViewSelectedItemBehavior.SelectedItem="{Binding selectType, Mode=TwoWay}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local2:TreeModel}" ItemsSource="{Binding ChildNodes}">
<StackPanel Height="16" Orientation="Horizontal">
<!-- 图标 -->
@ -357,8 +357,8 @@
<TextBlock VerticalAlignment="Center" Text="{Binding Text}" />
</StackPanel>
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</telerik:RadTreeView>
</TreeView.ItemTemplate>
</TreeView>
<Grid Grid.Row="3" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
@ -377,14 +377,21 @@
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
VirtualizingPanel.ScrollUnit="Pixel"
VirtualizingPanel.VirtualizationMode="Recycling">
<i:Interaction.Triggers>
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction
Command="{Binding Command_TagDoubleClick}"
CommandParameter="{Binding ElementName=tagListBox, Path=SelectedItem}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</i:Interaction.Triggers>-->
<telerik:EventToCommandBehavior.EventBindings>
<telerik:EventBinding
Command="{Binding Command_TagDoubleClick}"
EventName="MouseDoubleClick"
CommandParameter="{Binding ElementName=tagListBox, Path=SelectedItem}"
PassEventArgsToCommand="True" />
</telerik:EventToCommandBehavior.EventBindings>
<telerik:RadListBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
@ -431,14 +438,14 @@
Style="{StaticResource sysTextBox}"
Tag="设计浏览"
TextChanged="TextBox_TextChanged" />
<telerik:RadTreeView
<TreeView
x:Name="designTreeView"
Margin="-5,0,0,0"
telerik:StyleManager.Theme="Green"
Background="Transparent"
FontSize="11"
ItemsSource="{Binding designTree}"
SelectedItem="{Binding selectDesign, Mode=TwoWay}">
<i:Interaction.Triggers>
Behaviors:TreeViewSelectedItemBehavior.SelectedItem="{Binding selectDesign, Mode=TwoWay}">
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction
Command="{Binding Common_SelectedDesign}"
@ -451,13 +458,25 @@
CommandParameter="{Binding ElementName=designTreeView, Path=SelectedItem}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
<telerik:RadTreeView.ItemContainerStyle>
<Style TargetType="telerik:RadTreeViewItem">
</i:Interaction.Triggers>-->
<telerik:EventToCommandBehavior.EventBindings>
<telerik:EventBinding
Command="{Binding Common_SelectedDesign}"
EventName="SelectedItemChanged"
CommandParameter="{Binding ElementName=designTreeView, Path=SelectedItem}"
PassEventArgsToCommand="True" />
<telerik:EventBinding
Command="{Binding Common_DoubleClickDesign}"
EventName="MouseDoubleClick"
CommandParameter="{Binding ElementName=designTreeView, Path=SelectedItem}"
PassEventArgsToCommand="True" />
</telerik:EventToCommandBehavior.EventBindings>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding isexpand, Mode=TwoWay, Converter={StaticResource expandConverter}}" />
</Style>
</telerik:RadTreeView.ItemContainerStyle>
<telerik:RadTreeView.ItemTemplate>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local2:TreeModel}" ItemsSource="{Binding ChildNodes}">
<StackPanel
Height="16"
@ -472,8 +491,8 @@
<TextBlock VerticalAlignment="Center" Text="{Binding Text}" />
</StackPanel>
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</telerik:RadTreeView>
</TreeView.ItemTemplate>
</TreeView>
</StackPanel>
</telerik:RadTabItem>

View File

@ -123,12 +123,12 @@ Text="{Binding objectTypeName}" />-->
</Style>
</Button.Style>
</Button>
<telerik:RadComboBox
<ComboBox
Width="160" Height="20" Margin="10,0,0,0"
DisplayMemberPath="objectDisplayName"
ItemsSource="{Binding listObjects,Mode=TwoWay}"
SelectedItem="{Binding SelectObject,Mode=TwoWay}"
Style="{StaticResource sysCombobox}" />
/>
</StackPanel>
<ScrollViewer Grid.Row="2" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid x:Name="gridBasic" IsEnabled="{Binding isEnabledGridProterty}">

View File

@ -85,7 +85,7 @@ namespace SWS.Commons
public static List<TreeModel> designTree = new List<TreeModel>();
#endregion
public enum DBConst
{
/// <summary>
@ -316,19 +316,50 @@ namespace SWS.Commons
return dllPath;
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="resName">包括命名空间</param>
/// <returns></returns>
#region
/// <summary>
/// 获取日志文件夹路径
/// </summary>
/// <returns></returns>
public static string GetLogPath()
{
string path = Path.Combine(GetDllPath(),"SWSLogs");
return path;
}
#endregion
#region
public static void ClearLog()
{
try
{
var path = Path.Combine(GlobalObject.GetDllPath(), "SWSLogs\\");
int retainDays = 7;//保留7天的日志
foreach (var file in Directory.GetFiles(path, "*.log"))
{
if (File.GetCreationTime(file) < DateTime.Now.AddDays(-retainDays))
{
File.Delete(file);
}
}
}
catch
{
}
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="resName">包括命名空间</param>
/// <returns></returns>
public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName)
{
string imgPath = $"SWS.Commons.Images.{resName}";
System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly();
//foreach (string resource in assy.GetManifestResourceNames())
//{
// Console.WriteLine(resource);//遍历所有的内嵌资源
//}
System.IO.Stream stream = assy.GetManifestResourceStream(imgPath);
if (stream == null)
return null;
@ -341,9 +372,8 @@ namespace SWS.Commons
public static string GetPCInfo()
{
string computerName = Environment.MachineName; // 获取计算机名称
string computerName = Environment.MachineName; // 获取计算机名称
string userName = Environment.UserName; // 获取当前用户名称
return $"{computerName} 计算机{userName} 用户";
}

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Xaml.Behaviors;
namespace SWS.Commons.Helper.Behaviours
{
/// <summary>
/// 让 WPF TreeView 支持 SelectedItem 双向绑定的行为类。
/// 应用于 TreeView 后,可在 ViewModel 中直接使用绑定方式访问/设置选中项。
/// </summary>
public static class TreeViewSelectedItemBehavior
{
public static readonly DependencyProperty SelectedItemProperty =
DependencyProperty.RegisterAttached(
"SelectedItem",
typeof(object),
typeof(TreeViewSelectedItemBehavior),
new FrameworkPropertyMetadata(
null,
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
OnSelectedItemChanged));
// 获取附加属性值
public static object GetSelectedItem(TreeView treeView) =>
treeView.GetValue(SelectedItemProperty);
// 设置附加属性值
public static void SetSelectedItem(TreeView treeView, object value) =>
treeView.SetValue(SelectedItemProperty, value);
// 属性变化时的事件处理
private static void OnSelectedItemChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
if (sender is TreeView treeView)
{
// 解耦旧事件处理器
treeView.SelectedItemChanged -= OnTreeViewSelectedItemChanged;
// 连接新事件处理器
treeView.SelectedItemChanged += OnTreeViewSelectedItemChanged;
}
}
// TreeView选择项变化时的处理
private static void OnTreeViewSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
var treeView = (TreeView)sender;
// 更新附加属性值
treeView.SetCurrentValue(SelectedItemProperty, e.NewValue);
}
}
}

View File

@ -1,12 +1,16 @@
using System;
using System.IO;
using System.Reflection;
using System.Windows;
using log4net.Appender;
using log4net.Config;
using log4net.Layout;
using Newtonsoft.Json.Linq;
namespace SWS.Commons
{
/// <summary>
/// nLog使用帮助类
/// Log使用帮助类
/// </summary>
public class LoggerHelper
{
@ -19,13 +23,42 @@ namespace SWS.Commons
private static LoggerHelper _obj = null;
private static string logPath = string.Empty;
private LoggerHelper()
{
logPath = Path.Combine(GlobalObject.GetDllPath(), "Logs\\");
if (!Directory.Exists(logPath))
{ Directory.CreateDirectory(logPath); }
var configFile = new FileInfo(Path.Combine(GlobalObject.GetDllPath(), "log4net.config"));
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
{
try
{
logPath = Path.Combine(GlobalObject.GetDllPath(), "Logs\\");
if (!Directory.Exists(logPath))
{ Directory.CreateDirectory(logPath); }
var configFile = new FileInfo(Path.Combine(GlobalObject.GetDllPath(), "log4net.config"));
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message+"\n\r"+ex.ToString());
}
}
#region
#endregion
public static bool ChangeLogFileName(string name)
{
var path = Path.Combine(GlobalObject.GetDllPath(), "SWSLogs\\");
if (!Directory.Exists(path))
{ Directory.CreateDirectory(path); }
var rootRepository = log4net.LogManager.GetRepository();
foreach (var appender in rootRepository.GetAppenders())
{
if (appender is log4net.Appender.FileAppender fileAppender&&!string.IsNullOrEmpty(fileAppender.File) && appender.Name.ToLower().Contains(name))
{
// string filename= Path.Combine(GlobalObject.GetDllPath(),$"SWSLogs\\");
//fileAppender.Close();
fileAppender.File = path;
fileAppender.ActivateOptions();
return true;
}
}
return false;
}
/// <summary>
/// 获取当前的日志记录<see cref="LoggerHelper"/>对象。
@ -55,6 +88,7 @@ namespace SWS.Commons
/// <param name="msg">需要记录的信息。</param>
public void Info(string msg)
{
ChangeLogFileName("info");
loginfo.Info(msg);
}
@ -67,6 +101,7 @@ namespace SWS.Commons
/// <param name="msg">需要记录的信息。</param>
public void Warn(string msg)
{
ChangeLogFileName("warn");
logwarn.Warn(msg);
}
@ -79,6 +114,7 @@ namespace SWS.Commons
/// <param name="msg">需要记录的信息。</param>
public void Error(string msg)
{
ChangeLogFileName("error");
logerror.Error("----------------------------Error BEGIN------------------------------");
logerror.Error(msg);
logerror.Error("-----------------------------Error END-------------------------------");
@ -93,9 +129,10 @@ namespace SWS.Commons
/// <param name="err">需要记录的系统异常。</param>
public void Fatal(string msg)
{
ChangeLogFileName("fatal");
logfatal.Fatal("----------------------------Fatal BEGIN------------------------------");
logerror.Fatal(msg);
logerror.Fatal("-----------------------------Fatal END-------------------------------");
logfatal.Fatal(msg);
logfatal.Fatal("-----------------------------Fatal END-------------------------------");
}
#endregion

View File

@ -104,6 +104,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="GlobalObject.cs" />
<Compile Include="Helper\Behaviours\TreeViewSelectedItemBehavior.cs" />
<Compile Include="Helper\Converter\CollectionToStringConverter.cs" />
<Compile Include="Helper\Converter\TimeSpanToColourValueConverter.cs" />
<Compile Include="Helper\Converter\RadioButtonValueConverter.cs" />

View File

@ -8,13 +8,30 @@
<appender-ref ref="InfoRollingFileAppender"/>
<appender-ref ref="DebugRollingFileAppender"/>
</root>
<!--信息日志定义,用于收集开发调试信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Debug.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
</layout>
</appender>
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR"/>
<levelMax value="FATAL"/>
<levelMin value="ERROR"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
@ -29,7 +46,25 @@
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
</layout>
</appender>
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Fatal.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
</layout>
</appender>
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
@ -70,24 +105,6 @@
</layout>
</appender>
<!--信息日志定义,用于收集开发调试信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Debug.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
</layout>
</appender>
</log4net>

View File

@ -8,13 +8,30 @@
<appender-ref ref="InfoRollingFileAppender"/>
<appender-ref ref="DebugRollingFileAppender"/>
</root>
<!--信息日志定义,用于收集开发调试信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Debug.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
</layout>
</appender>
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR"/>
<levelMax value="FATAL"/>
<levelMin value="ERROR"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
@ -29,7 +46,25 @@
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
</layout>
</appender>
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Fatal.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
</layout>
</appender>
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
@ -70,24 +105,6 @@
</layout>
</appender>
<!--信息日志定义,用于收集开发调试信息-->
<!--日志输出格式:[时间]:类名 线程号 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="Logs/"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="100" />
<maxFileSize value="10240" />
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd//&quot;Debug.log&quot;"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
</layout>
</appender>
</log4net>

View File

@ -1,5 +1,11 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using Bricscad.ApplicationServices;
using Bricscad.Ribbon;
using Bricscad.Windows;
using Prism.Events;
@ -16,6 +22,7 @@ using Telerik.Windows.Controls;
using Unity;
using Application = Bricscad.ApplicationServices.Application;
using DialogParameters = Prism.Services.Dialogs.DialogParameters;
using MessageBox = System.Windows.Forms.MessageBox;
[assembly: CommandClass(typeof(Commands))]
[assembly: ExtensionApplication(typeof(Commands))]
@ -23,27 +30,71 @@ namespace SWS.Electrical
{
public partial class Commands : IExtensionApplication
{
public void Initialize()
{
try
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
if (RibbonServices.RibbonPaletteSet == null)
RibbonServices.CreateRibbonPaletteSet();
Start.RegisterTypes();
Start.AutoLogin();
AddTab();
// 延迟初始化UI组件
InitializeCustomUI();
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Interval = 50; // 50ms延迟
timer.Tick += (s, e) =>
{
timer.Stop();
var ribbonControl = ComponentManager.Ribbon;
if (ribbonControl != null)
{
//先切换到常用标签,再切换到电气系统标签
ribbonControl.Tabs[0].IsActive = true;
Thread.Sleep(5);
foreach (var tab in ribbonControl.Tabs)
{
if (tab.Name == "Electric")
{
// 激活选项卡
tab.IsActive = true;
}
}
}
};
timer.Start();
if (System.Windows.Application.Current == null)
{
var app = new System.Windows.Application
{
// 设置为显式关闭,防止窗口关闭时 Application 被自动终结
ShutdownMode = ShutdownMode.OnExplicitShutdown
};
}
GlobalObject.ClearLog();
}
catch (System.Exception e)
{
Application.ShowAlertDialog(" An exception occurred in Initialize():\n" + e.ToString());
}
}
private void InitializeCustomUI()
{
try
{
//在这里初始化你的自定义UI
AddTab();
}
catch (System.Exception ex)
{
LoggerHelper.Current.Error("UI初始化失败: " + ex.Message);
}
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
@ -51,26 +102,27 @@ namespace SWS.Electrical
{
// 记录异常信息到日志文件,这里简单打印到控制 ?
System.Exception ex = e.ExceptionObject as System.Exception;
Console.WriteLine($"发生未处理的异常: {ex.Message}");
Console.WriteLine($"异常堆栈跟踪: {ex.StackTrace}");
LoggerHelper.Current.Error($"发生未处理的异常: {ex.Message}");
LoggerHelper.Current.Error($"异常信息: {ex.ToString()}");
LoggerHelper.Current.Error($"异常堆栈跟踪: {ex.StackTrace}");
// 关闭所有打开的对话框窗口
// 提示用户发生了错 ?
MessageBox.Show("发生错误,请检查日志文件以获取更多信息 ?", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
var result= MessageBox.Show("发生错误,是否打开日志文件以获取更多信息?", "错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
if(result== System.Windows.Forms.DialogResult.OK)
{
System.Diagnostics.Process.Start("explorer.exe", GlobalObject.GetLogPath());
}
}
catch (System.Exception innerEx)
{
// 如果在处理异常时又发生了异常,简单打印信 ?
Console.WriteLine($"处理异常时发生错 ? {innerEx.Message}");
LoggerHelper.Current.Error($"处理异常时发生错: {innerEx.Message}");
}
}
public void Terminate()
{
}
void AddTab()
{
RibbonControl rbnCtrl = ComponentManager.Ribbon; //整个上面都是ribbon比如莫工做的电气系统就是ribbon中的一个tab
@ -235,10 +287,10 @@ namespace SWS.Electrical
ribbonRowPanel.Items.Add(btnMenu);
ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列
#endregion
dataSource.Items.Add(ribbonRowPanel);
#endregion
#region Ribbon
dataSource = new RibbonPanelSource();
dataSource.Title = "材料表管理";
@ -249,7 +301,7 @@ namespace SWS.Electrical
//垂直排列按钮panel
ribbonRowPanel = new RibbonRowPanel();
#region buttons
btnMenu = new RibbonButton();
btnMenu.ToolTip = "材料表自动生成";
@ -290,6 +342,9 @@ namespace SWS.Electrical
}
public void Terminate()
{
}
}
}

View File

@ -0,0 +1,10 @@
using Prism.Events;
using SWS.Electrical.ViewModels;
using SWS.Model;
namespace SWS.Electrical
{
public class sendMessageEvent : PubSubEvent<MessageModel>
{
}
}

View File

@ -42,19 +42,7 @@ namespace SWS.Electrical
public static async Task<bool> CheckLogin()
{
try
{
//var parser = new FileIniDataParser();
//string[] lines = File.ReadAllLines(GlobalObject.configPath);
//IniData data = parser.Parser.Parse(File.ReadAllText(GlobalObject.configPath));
//var data = configIni.ReadFile(GlobalObject.configPath);
//string token = data["LoginInfo"]["LoginToken"];
//string loginkey = data["LoginInfo"]["LoginMark"];
//string curProjId = data["LoginInfo"]["CurProjId"];
//LocalWorkDir= data["Profile"]["strLocalWorkDir"];
//string address = data["Profile"]["strIPAddress"];
//string port = data["Profile"]["nPort"];
//string dbType = data["Profile"]["nConType"];
//string domain= data["Profile"]["strDomainName"];
{
string token = IniHelper.ReadValueFromIniFile("LoginInfo", "LoginToken");
string loginkey = IniHelper.ReadValueFromIniFile("LoginInfo", "LoginMark");
string curProjId = IniHelper.ReadValueFromIniFile("LoginInfo", "CurProjId");
@ -69,7 +57,7 @@ namespace SWS.Electrical
GlobalObject.client = new HttpClient()
{
BaseAddress = new Uri($"{strDomain}/api/"),
Timeout = TimeSpan.FromSeconds(120)
Timeout = TimeSpan.FromSeconds(600)
};
}
else if (dbType == "0")
@ -77,7 +65,7 @@ namespace SWS.Electrical
GlobalObject.client = new HttpClient()
{
BaseAddress = new Uri($"http://{address}:{port}/api/"),
Timeout = TimeSpan.FromSeconds(120)
Timeout = TimeSpan.FromSeconds(600)
};
}
GlobalObject.client.DefaultRequestHeaders.Add("logintoken", token);
@ -105,7 +93,7 @@ namespace SWS.Electrical
}
}
if (GlobalObject.curProject == null)
{ GlobalObject.curProject = new ec_project() { ProjectId = curProjId }; }
{ GlobalObject.curProject = new ec_project() { ProjectId = curProjId }; }
return flag;
}
catch (System.Exception ex)

View File

@ -5,6 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SWS.Model;
using SWS.Share;
using Telerik.Windows.Controls;
namespace SWS.Electrical.Models
@ -31,9 +32,13 @@ namespace SWS.Electrical.Models
/// </summary>
public string BasePointTagNumber { get; set; } = "";
/// <summary>
/// 房间号
/// </summary>
public string RoomNo { get; set; }
/// <summary>
/// 比例
/// </summary>
public double Scale { get; set; }
public double Scale { get; set; }
/// <summary>
/// true:默认块false异性块
/// </summary>
@ -68,7 +73,7 @@ namespace SWS.Electrical.Models
{
get { return _TagPixelOnDwg; }
set { _TagPixelOnDwg = value; RaisePropertyChanged(nameof(TagPixelOnDwg)); }
}
}
/// <summary>
/// 肋位号 和 偏移量
/// </summary>

View File

@ -133,6 +133,7 @@
<ItemGroup>
<Compile Include="Commands.cs" />
<Compile Include="Control\ListBoxScrollToBottomBehavior.cs" />
<Compile Include="Event\checkInEvent.cs" />
<Compile Include="GlobalObj.cs" />
<Compile Include="Models\DtoBomDrawings.cs" />
<Compile Include="Models\DtoAutoPlotLayout.cs" />

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Threading;
@ -12,7 +13,11 @@ using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Media3D;
using Bricscad.EditorInput;
using ImTools;
using IniParser.Model;
using Microsoft.Win32;
using Newtonsoft.Json;
using Prism.Events;
using Prism.Services.Dialogs;
using SWS.CAD.Base;
using SWS.Commons;
@ -29,6 +34,17 @@ using Visibility = System.Windows.Visibility;
namespace SWS.Electrical.ViewModels
{
public class MessageModel
{
/// <summary>
/// 信息
/// </summary>
public string Message { get; set; }
/// <summary>
/// 是否成功
/// </summary>
public bool IsSuccess { get; set; } = true;
}
public class DialogAutoArrangeLayoutViewModel : DialogBase, IDialogAware
{
private ObservableCollection<DtoDrawing> _listDrawings;
@ -227,6 +243,15 @@ namespace SWS.Electrical.ViewModels
get { return _ErrTagCount; }
set { _ErrTagCount = value; OnPropertyChanged(nameof(ErrTagCount)); }
}
private bool _isCheckDelete = false;
/// <summary>
/// 删除现有元件再绘制
/// </summary>
public bool isCheckDelete
{
get { return _isCheckDelete; }
set { _isCheckDelete = value; OnPropertyChanged(nameof(isCheckDelete)); }
}
/// <summary>
/// 命令事件
@ -252,8 +277,11 @@ namespace SWS.Electrical.ViewModels
private string dwgName = string.Empty;
private List<string> listLibraryTagName = new List<string>();//元件图纸上的位号属性名称,
private List<KeyValueModel> listDeck = new List<KeyValueModel>();//甲板号值列表
private List<KeyValueModel> listArea = new List<KeyValueModel>();//区域值列表
private List<KeyValueModel> listSystem = new List<KeyValueModel>();//所属系统值列表
private List<KeyValueModel> listSystem = new List<KeyValueModel>();//所属系统值列表
List<ec_enginedata> listEnginedata = new List<ec_enginedata>();//要绘制的多个位号的位号信息
List<ec_objecttype> listObjecttype = new List<ec_objecttype>();//要绘制的多个位号的属性信息列表
List<ec_enginedata> listUpdateEnginedata = new List<ec_enginedata>();//要绘制的多个位号的关联图纸属性列表
IEventAggregator eventAggregator;
public DialogAutoArrangeLayoutViewModel()
{
Command_StartDrawing = new DelegateCommand(onStartDrawing);
@ -270,10 +298,12 @@ namespace SWS.Electrical.ViewModels
_ServiceObjectType = GlobalObject.container.Resolve<ObjectTypeService>();
_ServiceProjectSettings = GlobalObject.container.Resolve<ProjectSettingsService>();
_ServiceDataItem = GlobalObject.container.Resolve<DataItemService>();
eventAggregator = GlobalObject.container.Resolve<IEventAggregator>();
listDrawings = new ObservableCollection<DtoDrawing>();
listBasePoint = new ObservableCollection<DtoAutoPlotLayout>();
listErrBasePoint = new ObservableCollection<DtoAutoPlotLayout>();
listMsg = new ObservableCollection<TextBlock>();
listMsg = new ObservableCollection<TextBlock>();
eventAggregator.GetEvent<sendMessageEvent>().Subscribe(onReceviceMsg, ThreadOption.UIThread, true);
var list = new ObservableCollection<KeyValueModel>();
list.Add(new KeyValueModel { Key = "甲板号", Value = "甲板号" });
//list.Add(new KeyValueModel { Key = "区域", Value = "区域" });
@ -364,11 +394,12 @@ namespace SWS.Electrical.ViewModels
{
AddMsg($"布置图列表加载中...");
var listDwg = await _ServiceDrawing.GetDrawingCatalogue();
if (listDwg == null)
if (listDwg == null || !listDwg.Any())
{
AddMsg($"布置图列表没有数据!");
return;
}
GlobalObject.AllDrawings = listDwg.ToList();
foreach (var model in listDwg)
{
if (model.Text == "布置图")
@ -409,14 +440,14 @@ namespace SWS.Electrical.ViewModels
}
else { listLibraryTagName = settingModel.SettingValue.Split(',').ToList(); }
//区域下拉框对应值列表
var listDetail = await _ServiceDataItem.GetDetails("Area");
if (listDetail != null && listDetail.Any())
{
foreach (var item in listDetail)
{ listArea.Add(new KeyValueModel() { Key = item.DataItemName, Value = item.DataItemName }); }
}
//var listDetail = await _ServiceDataItem.GetDetails("Area");
//if (listDetail != null && listDetail.Any())
//{
// foreach (var item in listDetail)
// { listArea.Add(new KeyValueModel() { Key = item.DataItemName, Value = item.DataItemName }); }
//}
//甲板号下拉框对应值列表
listDetail = await _ServiceDataItem.GetDetails("甲板号");
var listDetail = await _ServiceDataItem.GetDetails("甲板号");
if (listDetail != null && listDetail.Any())
{
foreach (var item in listDetail)
@ -505,7 +536,7 @@ namespace SWS.Electrical.ViewModels
{
string strErr = isBasePointErr ? "基点异常;" : "";
strErr += isTagErr ? "元件异常" : "";
strErr = strErr.Replace(";","");
strErr = strErr.EndsWith(";") ? strErr.Replace(";", "") : strErr;
listErrDto.Add(new DtoAutoPlotLayout()
{
IsSelected = true,
@ -513,6 +544,7 @@ namespace SWS.Electrical.ViewModels
DrawingFileName = dwg.DrawingFileName,
EngineDataID = basePoint.EngineDataID,
BasePointTagNumber = basePoint.TagNumber,
RoomNo = basePoint.RoomNo,
Scale = basePoint.Scale,
FileId = basePoint.FileId,
PixelOnDwg = basePoint.PixelOnDwg,
@ -538,6 +570,7 @@ namespace SWS.Electrical.ViewModels
DrawingFileName = dwg.DrawingFileName,
EngineDataID = basePoint.EngineDataID,
BasePointTagNumber = basePoint.TagNumber,
RoomNo = basePoint.RoomNo,
Scale = basePoint.Scale,
FileId = basePoint.FileId,
PixelOnDwg = basePoint.PixelOnDwg,
@ -588,41 +621,499 @@ namespace SWS.Electrical.ViewModels
MessageBox.Show("请先勾选基点元件信息!");
return;
}
listMsg.Clear();
var progress = new Progress<MessageModel>(UpdateProgress);
await DoWorkAsync(progress, new CancellationTokenSource());
#region back
//try
//{
// isDrawing = true;
// List<ec_library_file> listFile = new List<ec_library_file>();
// List<string> listBlockDwgPath = new List<string>(); //图块下载路径列表,同个异形块下载一次,先下载后删除
// listMsg.Clear();
// listUpdateEnginedata.Clear();
// //获取多个位号属性
// AddMsg($"开始获取全部位号属性...");
// string strTagNumbers = string.Join(",", listDto.Select(a => a.TagNumber).ToList());
// listObjecttype = await _ServiceObjectType.GetTagInfosByTags(strTagNumbers);
// listEnginedata = await _ServiceObjectType.GetEngineDataListByTags(strTagNumbers);
// AddMsg($"获取全部位号类型属性完成,共有{listObjecttype.Count}种类型!");
// //循环画图
// for (int i = 0; i < listDto.Count; i++)
// {
// var basePoint = listDto[i];
// if (basePoint.AutoDrawing == "已绘制")
// {
// AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件");
// continue;
// }
// if (basePoint.AutoDrawing == "已存在" && !isCheckDelete)
// {
// AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件");
// continue;
// }
// msg = OpenDwg(basePoint);
// if (!string.IsNullOrEmpty(msg))
// {
// AddMsg($"图纸打开失败:{msg}", false);
// continue;
// }
// var listTag = listDto.Where(a => a.DrawingFileID == basePoint.DrawingFileID).Select(a => a.TagNumber).ToList();
// var listEntitys = isCheckDelete ? General.GetAllEntity(listTag) : General.GetAllEntity(new List<string>());//获取图纸所有实体
// var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
// if (entity == null)
// {
// AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
// continue;
// }
// var tag = basePoint.Tag;
// var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
// if (tagDto != null)
// {
// AddMsg($"当前元件:{basePoint.TagNumber} 在图上已存在,句柄:{tagDto.Handle},不添加此元件,跳至下一个元件", false);
// basePoint.AutoDrawing = "已存在";
// basePoint.TagPixelOnDwg = tagDto.Handle;
// continue;
// }
// filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
// string blockName = string.Empty;
// if (string.IsNullOrEmpty(tag.FileId))
// {
// //元件ID为空 用本地默认图块图纸
// if (!string.IsNullOrEmpty(tag.TagNumber_Lower))
// {
// var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形两行图块.dwg");
// if (!File.Exists(blockDwgPath))
// {
// AddMsg($"默认图块找不到:{blockDwgPath}", false);
// continue;
// }
// //默认上下图块
// blockName = "常规矩形两行图块";
// File.Copy(blockDwgPath, filePath, true);
// AddMsg($"本地默认常规图块图纸复制成功");
// }
// else
// {
// var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形单行图块.dwg");
// if (!File.Exists(blockDwgPath))
// {
// AddMsg($"默认图块找不到:{blockDwgPath}", false);
// continue;
// }
// //默认图块,只有中间部分
// blockName = "常规矩形单行图块";
// File.Copy(blockDwgPath, filePath, true);
// AddMsg($"本地默认常规图块图纸复制成功");
// }
// }
// else
// {
// string blockDwgPath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.FileId}.dwg");
// if (File.Exists(blockDwgPath))
// {
// File.Copy(blockDwgPath, filePath, true);
// var item = listFile.FirstOrDefault(a => a.LibraryFileID == tag.FileId);
// if (item != null)
// {
// blockName = item.LibraryFileName;
// }
// else { blockName = tag.TagNumber; }
// AddMsg($"元件图纸:{tag.TagNumber},已下载过,复制本地缓存块图纸文件成功");
// }
// else
// {
// //下载元件图纸文件
// var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
// blockName = obj.LibraryFileName;
// AddMsg($"元件图纸:{tag.TagNumber} 开始下载...");
// msg = await _ServiceAnnexes.DownloadFile(blockDwgPath, obj.FolderId);
// if (!string.IsNullOrEmpty(msg))
// {
// AddMsg($"元件图纸下载失败,信息:" + msg, false);
// continue;
// }
// File.Copy(blockDwgPath, filePath, true);
// listBlockDwgPath.Add(blockDwgPath);
// listFile.Add(obj);
// AddMsg($"元件图纸:{tag.TagNumber} 下载成功");
// }
// }
// listBlockDwgPath.Add(filePath);
// //把元件的位号属性改成要绘制的位号值
// var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
// //X轴图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff*比例系数
// //Y轴图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff*比例系数
// double scale = basePoint.Scale;//比例系数
// double x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
// AddMsg($"块X坐标计算{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}");
// double y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
// AddMsg($"块Y坐标计算{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}");
// AddMsg($"块最后坐标:{x}{y}0");
// double z = entity.Z;
// Point3d tagPoint = new Point3d(x, y, z);
// AddMsg($"元件图纸:{tag.TagNumber} 开始添加进布置图中...");
// msg =await AddBlock(basePoint, blockName, filePath, tagPoint);
// if (string.IsNullOrEmpty(msg))
// {
// AddMsg($"布置图:{basePoint.DrawingFileName},成功插入元件:" + tag.TagNumber);
// basePoint.AutoDrawing = "已绘制";
// //当下一个要画元件的图纸和当前图纸不一样时,保存图纸
// if (i + 1 >= listDto.Count)
// { General.SetDrawingReadOnly(dwgName, false); }
// else
// {
// var nextTag = listDto[i + 1];
// if (basePoint.DrawingFileID != nextTag.DrawingFileID)
// { General.SetDrawingReadOnly(dwgName, false); }
// }
// }
// else
// {
// basePoint.AutoDrawing = "已失败";
// AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}", false);
// }
// }
// if (listUpdateEnginedata.Any())
// {
// AddMsg($"开始批量位号关联属性,数量:{listUpdateEnginedata.Count}......");
// msg = await _ServiceObjectType.UpdatePixelAndPropBatch(listUpdateEnginedata);
// if (string.IsNullOrEmpty(msg))
// {
// AddMsg("位号关联属性成功,数量:" + listUpdateEnginedata.Count);
// }
// else
// {
// AddMsg($"位号关联属性失败,数量:{listUpdateEnginedata.Count},异常:{msg}", false);
// }
// }
// foreach (var file in listBlockDwgPath)
// {
// File.Delete(file);//删除缓存图块图纸文件
// File.Delete(file.Replace(".dwg", ".bak"));
// }
// AddMsg("操作已完成!");
// isDrawing = false;
//}
//catch (Exception ex)
//{
// MessageBox.Show("绘图异常:" + ex.Message);
// isDrawing = false;
//}
#endregion
}
#region DoWork
private void UpdateProgress(MessageModel dto)
{
System.Windows.Application.Current.Dispatcher.Invoke(new System.Action(() =>
{
AddMsg(dto.Message, dto.IsSuccess);
}));
}
private async Task DoWorkAsync(IProgress<MessageModel> progress, CancellationTokenSource cts)
{
try
{
int time = 1;
var msg = string.Empty;
var filePath = string.Empty;
var listDto = listBasePoint.Where(a => a.IsSelected == true).ToList();
isDrawing = true;
List<ec_library_file> listFile = new List<ec_library_file>();
List<string> listBlockDwgPath = new List<string>(); //图块下载路径列表,同个异形块下载一次,先下载后删除
listMsg.Clear();
listUpdateEnginedata.Clear();
//获取多个位号属性
AddMsg($"开始获取全部位号属性...");
await Task.Delay(time, cts.Token);
string strTagNumbers = string.Join(",", listDto.Select(a => a.TagNumber).ToList());
listObjecttype = await _ServiceObjectType.GetTagInfosByTags(strTagNumbers);
listEnginedata = await _ServiceObjectType.GetEngineDataListByTags(strTagNumbers);
AddMsg($"获取全部位号类型属性完成,共有{listObjecttype.Count}种类型!");
await Task.Delay(time, cts.Token);
//循环画图
for (int i = 0; i < listDto.Count; i++)
//foreach (var basePoint in listDto)
{
cts.Token.ThrowIfCancellationRequested();
var basePoint = listDto[i];
if (basePoint.AutoDrawing == "已绘制")
if (basePoint.AutoDrawing == "已绘制" && !isCheckDelete)
{
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件", false);
await Task.Delay(time, cts.Token);
continue;
}
if (basePoint.AutoDrawing == "已存在" && !isCheckDelete)
{
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件", false);
await Task.Delay(time, cts.Token);
continue;
}
msg = OpenDwg(basePoint);
if (!string.IsNullOrEmpty(msg))
{
AddMsg($"图纸打开失败:{msg}", false);
await Task.Delay(time, cts.Token);
continue;
}
var listTag = listDto.Where(a => a.DrawingFileID == basePoint.DrawingFileID).Select(a => a.TagNumber).ToList();
var listEntitys = isCheckDelete ? General.GetAllEntity(listTag) : General.GetAllEntity(new List<string>());//获取图纸所有实体
var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
if (entity == null)
{
AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
await Task.Delay(time, cts.Token);
continue;
}
var tag = basePoint.Tag;
var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
if (tagDto != null)
{
AddMsg($"当前元件:{basePoint.TagNumber} 在图上已存在,句柄:{tagDto.Handle},不添加此元件,跳至下一个元件", false);
basePoint.AutoDrawing = "已存在";
basePoint.TagPixelOnDwg = tagDto.Handle;
await Task.Delay(time, cts.Token);
continue;
}
filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
string blockName = string.Empty;
if (string.IsNullOrEmpty(tag.FileId))
{
//元件ID为空 用本地默认图块图纸
if (!string.IsNullOrEmpty(tag.TagNumber_Lower))
{
var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形两行图块.dwg");
if (!File.Exists(blockDwgPath))
{
AddMsg($"默认图块找不到:{blockDwgPath}", false);
await Task.Delay(time, cts.Token);
continue;
}
//默认上下图块
blockName = "常规矩形两行图块";
File.Copy(blockDwgPath, filePath, true);
}
else
{
var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形单行图块.dwg");
if (!File.Exists(blockDwgPath))
{
AddMsg($"默认图块找不到:{blockDwgPath}", false);
await Task.Delay(time, cts.Token);
continue;
}
//默认图块,只有中间部分
blockName = "常规矩形单行图块";
File.Copy(blockDwgPath, filePath, true);
}
}
else
{
string blockDwgPath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.FileId}.dwg");
if (File.Exists(blockDwgPath))
{
File.Copy(blockDwgPath, filePath, true);
var item = listFile.FirstOrDefault(a => a.LibraryFileID == tag.FileId);
if (item != null)
{
blockName = item.LibraryFileName;
}
else { blockName = tag.TagNumber; }
}
else
{
//下载元件图纸文件
var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
blockName = obj.LibraryFileName;
AddMsg($"元件图纸:{tag.TagNumber} 开始下载...");
await Task.Delay(time, cts.Token);
msg = await _ServiceAnnexes.DownloadFile(blockDwgPath, obj.FolderId);
if (!string.IsNullOrEmpty(msg))
{
AddMsg($"元件图纸下载失败,信息:{msg}", false);
await Task.Delay(time, cts.Token);
continue;
}
File.Copy(blockDwgPath, filePath, true);
listBlockDwgPath.Add(blockDwgPath);
listFile.Add(obj);
AddMsg($"元件图纸:{tag.TagNumber} 下载成功");
await Task.Delay(time, cts.Token);
}
}
listBlockDwgPath.Add(filePath);
//把元件的位号属性改成要绘制的位号值
var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
//X轴图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff*比例系数
//Y轴图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff*比例系数
double scale = basePoint.Scale;//比例系数
double x = 0;
double y = 0;
if (tag.X != 0)//肋位号不为0的时候去肋位号相关数据去算坐标
{
x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
msg = $"块X坐标计算{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}";
AddMsg(msg);
y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
msg = $"块Y坐标计算{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}";
AddMsg(msg);
await Task.Delay(time, cts.Token);
}
else
{
if (!string.IsNullOrEmpty(tag.RoomNo))
{
int rnd = new Random().Next(1, 5);
x = entity.X + rnd;
msg = $"块X坐标取房间号基点附近{entity.X}+{rnd}={x}";
AddMsg(msg);
y = entity.Y + rnd;
msg = $"块Y坐标取房间号基点附近{entity.Y}+{rnd}={y}";
AddMsg(msg);
await Task.Delay(time, cts.Token);
}
else
{
x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
msg = $"块X坐标计算{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}";
AddMsg(msg);
y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
msg = $"块Y坐标计算{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}";
AddMsg(msg);
await Task.Delay(time, cts.Token);
}
}
double z = entity.Z;
Point3d tagPoint = new Point3d(x, y, z);
AddMsg($"元件图纸:{tag.TagNumber} 开始添加进布置图中...");
await Task.Delay(time, cts.Token);
msg = await AddBlock(basePoint, blockName, filePath, tagPoint);
if (string.IsNullOrEmpty(msg))
{
AddMsg($"布置图:{basePoint.DrawingFileName},成功插入元件:{tag.TagNumber}");
basePoint.AutoDrawing = "已绘制";
await Task.Delay(time, cts.Token);
//当下一个要画元件的图纸和当前图纸不一样时,保存图纸
if (i + 1 >= listDto.Count)
{
AddMsg($"布置图:{basePoint.DrawingFileName},开始保存...");
await Task.Delay(time, cts.Token);
General.SetDrawingReadOnly(dwgName, false);
msg = $"布置图:{basePoint.DrawingFileName},保存完成";
await Task.Delay(time, cts.Token);
}
else
{
var nextTag = listDto[i + 1];
if (basePoint.DrawingFileID != nextTag.DrawingFileID)
{
AddMsg($"布置图:{basePoint.DrawingFileName},开始保存...");
await Task.Delay(time, cts.Token);
General.SetDrawingReadOnly(dwgName, false);
AddMsg($"布置图:{basePoint.DrawingFileName},保存完成");
await Task.Delay(time, cts.Token);
}
}
}
else
{
basePoint.AutoDrawing = "已失败";
AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}");
await Task.Delay(time, cts.Token);
}
}
if (listUpdateEnginedata.Any())
{
AddMsg($"开始批量位号关联属性,数量:{listUpdateEnginedata.Count}......");
await Task.Delay(time, cts.Token);
msg = await _ServiceObjectType.UpdatePixelAndPropBatch(listUpdateEnginedata);
if (string.IsNullOrEmpty(msg))
{
AddMsg("位号关联属性成功,数量:" + listUpdateEnginedata.Count);
await Task.Delay(time, cts.Token);
}
else
{
AddMsg($"位号关联属性失败,数量:{listUpdateEnginedata.Count},异常:{msg}");
await Task.Delay(time, cts.Token);
}
}
foreach (var file in listBlockDwgPath)
{
File.Delete(file);//删除缓存图块图纸文件
File.Delete(file.Replace(".dwg", ".bak"));
}
AddMsg("操作已完成!");
isDrawing = false;
}
catch (Exception ex)
{
MessageBox.Show("绘图异常:" + ex.Message);
LoggerHelper.Current.Error("绘图异常:" + ex.ToString());
isDrawing = false;
}
}
#endregion
private async void onAutoDrawing()
{
#region back
var msg = string.Empty;
var filePath = string.Empty;
var listDto = listBasePoint.Where(a => a.IsSelected == true).ToList();
if (!listDto.Any())
{
MessageBox.Show("请先勾选基点元件信息!");
return;
}
try
{
List<ec_library_file> listFile = new List<ec_library_file>();
List<string> listBlockDwgPath = new List<string>(); //图块下载路径列表,同个异形块下载一次,先下载后删除
isDrawing = true;
listUpdateEnginedata.Clear();
//获取多个位号属性
AddMsg($"开始获取全部位号属性...");
string strTagNumbers = string.Join(",", listDto.Select(a => a.TagNumber).ToList());
listObjecttype = await _ServiceObjectType.GetTagInfosByTags(strTagNumbers);
listEnginedata = await _ServiceObjectType.GetEngineDataListByTags(strTagNumbers);
AddMsg($"获取全部位号类型属性完成,共有{listObjecttype.Count}种类型!");
//循环画图
for (int i = 0; i < listDto.Count; i++)
{
var basePoint = listDto[i];
if (basePoint.AutoDrawing == "已绘制" && !isCheckDelete)
{
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件");
continue;
}
if (basePoint.AutoDrawing == "已存在")
if (basePoint.AutoDrawing == "已存在" && !isCheckDelete)
{
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件");
continue;
}
msg = await OpenDwg(basePoint.DrawingFileID);
msg = OpenDwg(basePoint);
if (!string.IsNullOrEmpty(msg))
{
AddMsg($"图纸打开失败:{msg}", false);
continue;
}
AddMsg($"打开图纸:{basePoint.DrawingFileName} ");
var listEntitys = General.GetAllEntity();//获取图纸所有实体
var listTag = listDto.Where(a => a.DrawingFileID == basePoint.DrawingFileID).Select(a => a.TagNumber).ToList();
var listEntitys = isCheckDelete ? General.GetAllEntity(listTag) : General.GetAllEntity(new List<string>());//获取图纸所有实体
var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
if (entity == null)
{
AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
continue;
}
var tag = basePoint.Tag;
var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
if (tagDto != null)
@ -632,12 +1123,6 @@ namespace SWS.Electrical.ViewModels
basePoint.TagPixelOnDwg = tagDto.Handle;
continue;
}
//var flag = basePoint.deck == tag.deck && basePoint.area == tag.area;
//if (!flag)
//{
// AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{tag.TagNumber}] 的deck和area不一致不添加此元件跳至下一个元件", false);
// continue;
//}
filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
string blockName = string.Empty;
if (string.IsNullOrEmpty(tag.FileId))
@ -654,6 +1139,7 @@ namespace SWS.Electrical.ViewModels
//默认上下图块
blockName = "常规矩形两行图块";
File.Copy(blockDwgPath, filePath, true);
AddMsg($"本地默认常规图块图纸复制成功");
}
else
{
@ -666,31 +1152,53 @@ namespace SWS.Electrical.ViewModels
//默认图块,只有中间部分
blockName = "常规矩形单行图块";
File.Copy(blockDwgPath, filePath, true);
AddMsg($"本地默认常规图块图纸复制成功");
}
}
else
{
//下载元件图纸文件
var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
blockName = obj.LibraryFileName;
AddMsg($"元件图纸:{tag.TagNumber} 开始下载...");
msg = await _ServiceAnnexes.DownloadFile(filePath, obj.FolderId);
if (!string.IsNullOrEmpty(msg))
string blockDwgPath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.FileId}.dwg");
if (File.Exists(blockDwgPath))
{
AddMsg($"元件图纸下载失败,信息:" + msg, false);
continue;
File.Copy(blockDwgPath, filePath, true);
var item = listFile.FirstOrDefault(a => a.LibraryFileID == tag.FileId);
if (item != null)
{
blockName = item.LibraryFileName;
}
else { blockName = tag.TagNumber; }
AddMsg($"元件图纸:{tag.TagNumber},已下载过,复制本地缓存块图纸文件成功");
}
else
{
//下载元件图纸文件
var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
blockName = obj.LibraryFileName;
AddMsg($"元件图纸:{tag.TagNumber} 开始下载...");
msg = await _ServiceAnnexes.DownloadFile(blockDwgPath, obj.FolderId);
if (!string.IsNullOrEmpty(msg))
{
AddMsg($"元件图纸下载失败,信息:" + msg, false);
continue;
}
File.Copy(blockDwgPath, filePath, true);
listBlockDwgPath.Add(blockDwgPath);
listFile.Add(obj);
AddMsg($"元件图纸:{tag.TagNumber} 下载成功");
}
AddMsg($"元件图纸:{tag.TagNumber} 下载成功");
}
//filePath = "D:\\BricsCAD\\Temp\\测试11.dwg";
listBlockDwgPath.Add(filePath);
//把元件的位号属性改成要绘制的位号值
var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
//X轴图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff*比例系数
//Y轴图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff*比例系数
double scale = 1;//比例系数
double scale = basePoint.Scale;//比例系数
double x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
AddMsg($"块X坐标计算{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}");
double y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
AddMsg($"块Y坐标计算{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}");
AddMsg($"块最后坐标:{x}{y}0");
double z = entity.Z;
Point3d tagPoint = new Point3d(x, y, z);
AddMsg($"元件图纸:{tag.TagNumber} 开始添加进布置图中...");
@ -709,9 +1217,31 @@ namespace SWS.Electrical.ViewModels
{ General.SetDrawingReadOnly(dwgName, false); }
}
}
else { AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}"); }
else
{
basePoint.AutoDrawing = "已失败";
AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}", false);
}
}
if (listUpdateEnginedata.Any())
{
AddMsg($"开始批量位号关联属性,数量:{listUpdateEnginedata.Count}......");
msg = await _ServiceObjectType.UpdatePixelAndPropBatch(listUpdateEnginedata);
if (string.IsNullOrEmpty(msg))
{
AddMsg("位号关联属性成功,数量:" + listUpdateEnginedata.Count);
}
else
{
AddMsg($"位号关联属性失败,数量:{listUpdateEnginedata.Count},异常:{msg}", false);
}
}
foreach (var file in listBlockDwgPath)
{
File.Delete(file);//删除缓存图块图纸文件
File.Delete(file.Replace(".dwg", ".bak"));
}
AddMsg("操作已完成!");
isDrawing = false;
}
@ -720,36 +1250,26 @@ namespace SWS.Electrical.ViewModels
MessageBox.Show("绘图异常:" + ex.Message);
isDrawing = false;
}
#endregion
}
/// <summary>
/// 打开图纸
/// </summary>
/// <returns></returns>
private async Task<string> OpenDwg(string dwgId)
private string OpenDwg(DtoAutoPlotLayout dto)
{
try
{
string res = string.Empty;
string fullpath = string.Empty;
var dwgObj = await _ServiceDrawing.GetDrawingFile(dwgId);
var cate = await _ServiceDrawingCatalogue.GetEntity(dwgObj.DrawingCatalogueID);
if (cate.FullPath != cate.DrawingCatalogueID)
{
foreach (var id in cate.FullPath.Split(',').ToList())
{
cate = await _ServiceDrawingCatalogue.GetEntity(id);
fullpath += $"{cate.DrawingCatalogueName}\\";
}
}
else { fullpath = $"{cate.DrawingCatalogueName}\\"; }
fullpath += dwgObj.DrawingFileName;
fullpath = Path.Combine(GlobalObj.LocalWorkDir, GlobalObject.curProject.ProjectName, fullpath);
string folderpath = GlobalObject.GetDwgPath(dto.DrawingFileID);
fullpath = Path.Combine(GlobalObj.LocalWorkDir, GlobalObject.curProject.ProjectName, folderpath, $"{dto.DrawingFileName}");
if (!File.Exists(fullpath))
{
return dwgObj.DrawingFileName + ",图纸文件不存在,请先检出到本地!";
return dto.DrawingFileName + ",图纸文件不存在,请先检出到本地!";
}
if (dwgObj.DrawingFileName == General.GetDwgName())
if (dto.DrawingFileName == General.GetDwgName())
{
return res;
}
@ -758,12 +1278,14 @@ namespace SWS.Electrical.ViewModels
{
General.OpenDwg(fullpath);
dwgName = fullpath;
AddMsg($"打开图纸:{dto.DrawingFileName} ");
return res;
}
else
{
General.SwitchToDocument(fullpath);
dwgName = fullpath;
AddMsg($"已打开图纸:{dto.DrawingFileName} ");
return res;
}
@ -784,46 +1306,54 @@ namespace SWS.Electrical.ViewModels
string tagNumber = basePoint.Tag.TagNumber;
double scale = basePoint.Scale;
string msg = string.Empty;
string tagNum = string.Empty;
var lsitEnginedata = await _ServiceObjectType.GetEngineDataListByTags(tagNumber);
if (!lsitEnginedata.Any())
//string tagNum = string.Empty;
//var lsitEnginedata = await _ServiceObjectType.GetEngineDataListByTags(tagNumber);
//if (!lsitEnginedata.Any())
//{
// msg = $"元件位号:{tagNumber},属性未绑定,_ServiceObjectType.GetEngineDataListByTags({tagNumber})接口无数据";
// AddMsg(msg, false);
// return msg;
//}
var enginedata = listEnginedata.FirstOrDefault(a => a.TagNumber == tagNumber);
if (enginedata == null)
{
msg = $"元件位号:{tagNumber},属性未绑定,ServiceEnginedata.GetTagPixelsById({enginedataId})接口无数据";
AddMsg(msg, false);
msg = $"元件位号:{tagNumber},找不到位号工程属性,无法关联属性!";
return msg;
}
string objTypeId = lsitEnginedata[0].ObjectTypeID;
string objTypeName = lsitEnginedata[0].ObjectTypeName;
string objTypeId = enginedata.ObjectTypeID;
string objTypeName = enginedata.ObjectTypeName;
var objId = General.AddTagDWG(blockDwg, tagName, tagNumber, objTypeId, scale, tagPoint);
#region
if (!objId.IsNull)
{
AddMsg($"元件已添加至图纸,句柄:{objId.Handle.ToString()}");
AddMsg("开始关联元件属性至图纸...");
var dwgLibrary = await _ServiceLibraryFile.GetEntity(blockDwgId);
//AddMsg($"元件已添加至图纸,句柄:{objId.Handle.ToString()}");
//RefreshUI(999, $"元件已添加至图纸,句柄:{objId.Handle.ToString()}");
//var dwgLibrary = await _ServiceLibraryFile.GetEntity(blockDwgId);
List<ec_enginedata_property> listPro = new List<ec_enginedata_property>();
var handlid = objId.Handle.ToString();//添加图元返回的句柄
ec_enginedata item = new ec_enginedata();
item.EngineDataID = enginedataId;
item.TagNumber = tagNumber;
item.ObjectTypeID = objTypeId;
item.Layout_Block_File = dwgLibrary;
//var result = await _ServiceObjectType.GetObjectTypePById(objTypeId);//添加属性
var res = await _ServiceObjectType.GetTagInfosByTags(tagNumber);
if (res.Any())
//item.Layout_Block_File = dwgLibrary;
var tagInfo = listObjecttype.FirstOrDefault(a => a.ObjectTypeID == enginedata.ObjectTypeID);
if (tagInfo == null)
{
foreach (var dto in res[0].tags[0].EngineDataProperty)
msg = $"元件位号:{tagNumber},找不到位号属性信息,无法关联属性!";
return msg;
}
foreach (var dto in tagInfo.tags[0].EngineDataProperty)
{
listPro.Add(new ec_enginedata_property()
{
listPro.Add(new ec_enginedata_property()
{
EngineDataPropertyID = dto.PropertyID,
PropertyName = dto.PropertyName,
PropertyNameEN = dto.PropertyNameEN,
PropertyValue = dto.PropertyValue,
MeasuringUnit = dto.MeasuringUnit,
PropertyGID = dto.PropertyGID,
PropertyGroupName = dto.PropertyGroupName
});
}
EngineDataPropertyID = dto.PropertyID,
PropertyName = dto.PropertyName,
PropertyNameEN = dto.PropertyNameEN,
PropertyValue = dto.PropertyValue,
MeasuringUnit = dto.MeasuringUnit,
PropertyGID = dto.PropertyGID,
PropertyGroupName = dto.PropertyGroupName
});
}
item.EngineDataProperty = listPro;
List<ec_enginedata_pixel> listPixel = new List<ec_enginedata_pixel>();
@ -831,7 +1361,7 @@ namespace SWS.Electrical.ViewModels
{
TagNumber = tagNumber,
DrawingFileID = dwgId,
LibraryFileID = dwgLibrary == null ? "" : dwgLibrary.LibraryFileID,
LibraryFileID = blockDwgId,// == null ? "" : dwgLibrary.LibraryFileID
PixelCode = handlid,
ObjectTypeID = objTypeId,
ObjectTypeName = objTypeName,
@ -839,25 +1369,13 @@ namespace SWS.Electrical.ViewModels
};
listPixel.Add(pixelDto);
item.EngineDataPixel = listPixel;
msg = await _ServiceObjectType.UpdatePixelAndProp(item);
if (msg != string.Empty)
{
msg = "保存元件属性至图纸异常:" + msg;
AddMsg(msg, false);
return msg;
}
else
{
basePoint.TagPixelOnDwg = handlid;
AddMsg("添加元件属性至图纸成功!");
return "";
}
basePoint.TagPixelOnDwg = handlid;
listUpdateEnginedata.Add(item);
return "";
}
else
{
msg = $"元件:{blockDwg} ,添加失败";
AddMsg(msg, false);
return msg;
}
#endregion
@ -891,11 +1409,14 @@ namespace SWS.Electrical.ViewModels
foreach (var item in listBasePoint)
{
item.IsSelected = IsSelectAll;
}
}
}
string message = string.Empty;
bool isSuccess = false;
/// <summary>
/// 添加提示信息
/// 添加 提示信息
/// </summary>
/// <param name="msg">信息</param>
/// <param name="isSucc">是否成功</param>
@ -903,15 +1424,23 @@ namespace SWS.Electrical.ViewModels
{
try
{
TextBlock tb = new TextBlock();
tb.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") + "==>> " + msg;
tb.Foreground = isSucc ? Brushes.LightSeaGreen : Brushes.Red;
listMsg.Add(tb);
System.Windows.Application.Current.Dispatcher.Invoke((System.Action)(() =>
{
TextBlock tb = new TextBlock();
tb.Text = DateTime.Now.ToString("yyyy-MM-6dd HH:mm:ss:ffff") + "==>> " + msg;
tb.Foreground = isSucc ? Brushes.LightSeaGreen : Brushes.Red;
listMsg.Add(tb);
}));
//Task.Delay(100);
}
catch (Exception ex)
{
MessageBox.Show("添加提示信息异常:" + ex.Message);
}
}
private void onReceviceMsg(MessageModel model)
{
AddMsg(model.Message, model.IsSuccess);
}
}
}

View File

@ -420,7 +420,7 @@ namespace SWS.Electrical.ViewModels
if (dwg.AutoGenerate == "已存在")
{
AddMsg($"当前图纸[{dwg.DrawingFileName}]的材料表已存在,跳至下一个图纸");
//continue;
continue;
}
if (dwg.AutoGenerate == "无材料信息")
{
@ -433,7 +433,7 @@ namespace SWS.Electrical.ViewModels
{
AddMsg($"当前图纸[{dwg.DrawingFileName}]的材料表已存在,跳至下一个图纸", false);
dwg.AutoGenerate = "已存在";
//continue;
continue;
}
var listBomGroup = await _ServicePlotBOM.GetBOMGroupInfo(dwg.DrawingFileID);

View File

@ -217,7 +217,7 @@
Orientation="Horizontal">
<Button
Width="160"
Margin="100,0,0,0"
Margin="80,0,0,0"
Command="{Binding Command_GetBasePoint}"
Content="获取元件信息"
FontSize="16" />
@ -227,6 +227,14 @@
Command="{Binding Command_StartDrawing}"
Content="开始自动绘图"
FontSize="16" />
<CheckBox
Margin="40,0,0,0"
HorizontalAlignment="Right"
VerticalContentAlignment="Bottom"
Content="删除已画元件再绘制"
FontSize="12"
Foreground="Red"
IsChecked="{Binding isCheckDelete, Mode=TwoWay}" />
</StackPanel>
<TabControl
Grid.Row="2"
@ -330,6 +338,9 @@
<DataTrigger Binding="{Binding AutoDrawing}" Value="已存在">
<Setter Property="Background" Value="LightYellow" />
</DataTrigger>
<DataTrigger Binding="{Binding AutoDrawing}" Value="已失败">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,417 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Bcl.AsyncInterfaces</name>
</assembly>
<members>
<member name="T:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1">
<summary>Provides the core logic for implementing a manual-reset <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource"/> or <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource`1"/>.</summary>
<typeparam name="TResult"></typeparam>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation">
<summary>
The callback to invoke when the operation completes if <see cref="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)"/> was called before the operation completed,
or <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.s_sentinel"/> if the operation completed before a callback was supplied,
or null if a callback hasn't yet been provided and the operation hasn't yet completed.
</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuationState">
<summary>State to pass to <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation"/>.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext">
<summary><see cref="T:System.Threading.ExecutionContext"/> to flow to the callback, or null if no flowing is required.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._capturedContext">
<summary>
A "captured" <see cref="T:System.Threading.SynchronizationContext"/> or <see cref="T:System.Threading.Tasks.TaskScheduler"/> with which to invoke the callback,
or null if no special context is required.
</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._completed">
<summary>Whether the current operation has completed.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._result">
<summary>The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._error">
<summary>The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._version">
<summary>The current version of this value, used to help prevent misuse.</summary>
</member>
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.RunContinuationsAsynchronously">
<summary>Gets or sets whether to force continuations to run asynchronously.</summary>
<remarks>Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.</remarks>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Reset">
<summary>Resets to prepare for the next operation.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetResult(`0)">
<summary>Completes with a successful result.</summary>
<param name="result">The result.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetException(System.Exception)">
<summary>Complets with an error.</summary>
<param name="error"></param>
</member>
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Version">
<summary>Gets the operation version.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetStatus(System.Int16)">
<summary>Gets the status of the operation.</summary>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16)">
<summary>Gets the result of the operation.</summary>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)">
<summary>Schedules the continuation action for this operation.</summary>
<param name="continuation">The continuation to invoke when the operation has completed.</param>
<param name="state">The state object to pass to <paramref name="continuation"/> when it's invoked.</param>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
<param name="flags">The flags describing the behavior of the continuation.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ValidateToken(System.Int16)">
<summary>Ensures that the specified token matches the current version.</summary>
<param name="token">The token supplied by <see cref="T:System.Threading.Tasks.ValueTask"/>.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SignalCompletion">
<summary>Signals that the operation has completed. Invoked after the result or error has been set.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.InvokeContinuation">
<summary>
Invokes the continuation with the appropriate captured context / scheduler.
This assumes that if <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext"/> is not null we're already
running within that <see cref="T:System.Threading.ExecutionContext"/>.
</summary>
</member>
<member name="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions">
<summary>Provides a set of static methods for configuring <see cref="T:System.Threading.Tasks.Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
<param name="source">The source async disposable.</param>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured async disposable.</returns>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
<typeparam name="T">The type of the objects being iterated.</typeparam>
<param name="source">The source enumerable being iterated.</param>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured enumerable.</returns>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Threading.CancellationToken)">
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
<typeparam name="T">The type of the objects being iterated.</typeparam>
<param name="source">The source enumerable being iterated.</param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
<returns>The configured enumerable.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder">
<summary>Represents a builder for asynchronous iterators.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create">
<summary>Creates an instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder"/> struct.</summary>
<returns>The initialized instance.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext``1(``0@)">
<summary>Invokes <see cref="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"/> on the state machine while guarding the <see cref="T:System.Threading.ExecutionContext"/>.</summary>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="stateMachine">The state machine instance, passed by reference.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="awaiter">The awaiter.</param>
<param name="stateMachine">The state machine.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="awaiter">The awaiter.</param>
<param name="stateMachine">The state machine.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete">
<summary>Marks iteration as being completed, whether successfully or otherwise.</summary>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger">
<summary>Gets an object that may be used to uniquely identify this builder to the debugger.</summary>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute">
<summary>Indicates whether a method is an asynchronous iterator.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute.#ctor(System.Type)">
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute"/> class.</summary>
<param name="stateMachineType">The type object for the underlying state machine type that's used to implement a state machine method.</param>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable">
<summary>Provides a type that can be used to configure how awaits on an <see cref="T:System.IAsyncDisposable"/> are performed.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredAsyncDisposable.DisposeAsync">
<summary>Asynchronously releases the unmanaged resources used by the <see cref="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable" />.</summary>
<returns>A task that represents the asynchronous dispose operation.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1">
<summary>Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured enumerable.</returns>
<remarks>This will replace any previous value set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)"/> for this iteration.</remarks>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)">
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
<returns>The configured enumerable.</returns>
<remarks>This will replace any previous <see cref="T:System.Threading.CancellationToken"/> set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)"/> for this iteration.</remarks>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator">
<summary>Returns an enumerator that iterates asynchronously through collections that enables cancelable iteration and configured awaits.</summary>
<returns>An enumerator for the <see cref="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1" /> class.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator">
<summary>Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync">
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
<returns>
A <see cref="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1"/> that will complete with a result of <c>true</c>
if the enumerator was successfully advanced to the next element, or <c>false</c> if the enumerator has
passed the end of the collection.
</returns>
</member>
<member name="P:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current">
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.DisposeAsync">
<summary>
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources asynchronously.
</summary>
</member>
<member name="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute">
<summary>Allows users of async-enumerable methods to mark the parameter that should receive the cancellation token value from <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)" />.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.EnumeratorCancellationAttribute.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute" /> class.</summary>
</member>
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
<summary>
Attribute used to indicate a source generator should create a function for marshalling
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
</summary>
<remarks>
This attribute is meaningless if the source generator associated with it is not enabled.
The current built-in source generator only supports C# and only supplies an implementation when
applied to static, partial, non-generic methods.
</remarks>
</member>
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
</summary>
<param name="libraryName">Name of the library containing the import.</param>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
<summary>
Gets the name of the library containing the import.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
<summary>
Gets or sets the name of the entry point to be called.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
<summary>
Gets or sets how to marshal string arguments to the method.
</summary>
<remarks>
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
<summary>
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
</summary>
<remarks>
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
<summary>
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
on other platforms) before returning from the attributed method.
</summary>
</member>
<member name="T:System.Runtime.InteropServices.StringMarshalling">
<summary>
Specifies how strings should be marshalled for generated p/invokes
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
<summary>
Indicates the user is suppling a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
<summary>
Use the platform-provided UTF-8 marshaller.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
<summary>
Use the platform-provided UTF-16 marshaller.
</summary>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
<summary>Exposes an enumerator that provides asynchronous iteration over values of a specified type.</summary>
<typeparam name="T">The type of values to enumerate.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)">
<summary>Returns an enumerator that iterates asynchronously through the collection.</summary>
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that may be used to cancel the asynchronous iteration.</param>
<returns>An enumerator that can be used to iterate asynchronously through the collection.</returns>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
<summary>Supports a simple asynchronous iteration over a generic collection.</summary>
<typeparam name="T">The type of objects to enumerate.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNextAsync">
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
<returns>
A <see cref="T:System.Threading.Tasks.ValueTask`1"/> that will complete with a result of <c>true</c> if the enumerator
was successfully advanced to the next element, or <c>false</c> if the enumerator has passed the end
of the collection.
</returns>
</member>
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
</member>
<member name="T:System.IAsyncDisposable">
<summary>Provides a mechanism for releasing unmanaged resources asynchronously.</summary>
</member>
<member name="M:System.IAsyncDisposable.DisposeAsync">
<summary>
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources asynchronously.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with a field or property member.</summary>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
<summary>Initializes the attribute with the list of field and property members.</summary>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

View File

@ -1,341 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Prism.DryIoc.Wpf</name>
</assembly>
<members>
<member name="T:Prism.DryIoc.PrismApplication">
<summary>
Base application class that uses <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> as it's container.
</summary>
</member>
<member name="M:Prism.DryIoc.PrismApplication.CreateContainerRules">
<summary>
Create <see cref="T:DryIoc.Rules" /> to alter behavior of <see cref="T:DryIoc.IContainer" />
</summary>
<returns>An instance of <see cref="T:DryIoc.Rules" /></returns>
</member>
<member name="M:Prism.DryIoc.PrismApplication.CreateContainerExtension">
<summary>
Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> used by Prism.
</summary>
<returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/>.</returns>
</member>
<member name="M:Prism.DryIoc.PrismApplication.RegisterFrameworkExceptionTypes">
<summary>
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
</summary>
</member>
<member name="T:Prism.DryIoc.PrismBootstrapper">
<summary>
Base bootstrapper class that uses <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> as it's container.
</summary>
</member>
<member name="M:Prism.DryIoc.PrismBootstrapper.CreateContainerRules">
<summary>
Create <see cref="T:DryIoc.Rules" /> to alter behavior of <see cref="T:DryIoc.IContainer" />
</summary>
<returns>An instance of <see cref="T:DryIoc.Rules" /></returns>
</member>
<member name="M:Prism.DryIoc.PrismBootstrapper.CreateContainerExtension">
<summary>
Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> used by Prism.
</summary>
<returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/>.</returns>
</member>
<member name="M:Prism.DryIoc.PrismBootstrapper.RegisterFrameworkExceptionTypes">
<summary>
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
</summary>
</member>
<member name="T:Prism.DryIoc.Properties.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.NotOverwrittenGetModuleEnumeratorException">
<summary>
Looks up a localized string similar to The method &apos;GetModuleEnumerator&apos; of the bootstrapper must be overwritten in order to use the default module initialization logic..
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.NullDryIocContainerBuilderException">
<summary>
Looks up a localized string similar to The ContainerBuilder is required and cannot be null..
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.NullDryIocContainerException">
<summary>
Looks up a localized string similar to The IContainer is required and cannot be null..
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.NullLoggerFacadeException">
<summary>
Looks up a localized string similar to The ILoggerFacade is required and cannot be null..
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.NullModuleCatalogException">
<summary>
Looks up a localized string similar to The IModuleCatalog is required and cannot be null in order to initialize the modules..
</summary>
</member>
<member name="P:Prism.DryIoc.Properties.Resources.TypeMappingAlreadyRegistered">
<summary>
Looks up a localized string similar to Type &apos;{0}&apos; was already registered by the application. Skipping....
</summary>
</member>
<member name="T:Prism.DryIoc.DryIocContainerExtension">
<summary>
The <see cref="T:Prism.Ioc.IContainerExtension" /> Implementation to use with DryIoc
</summary>
</member>
<member name="P:Prism.DryIoc.DryIocContainerExtension.DefaultRules">
<summary>
Gets the Default DryIoc Container Rules used by Prism
</summary>
</member>
<member name="P:Prism.DryIoc.DryIocContainerExtension.Instance">
<summary>
The instance of the wrapped container
</summary>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.#ctor">
<summary>
Constructs a default instance of the <see cref="T:Prism.DryIoc.DryIocContainerExtension" />
</summary>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.#ctor(DryIoc.IContainer)">
<summary>
Constructs a new <see cref="T:Prism.DryIoc.DryIocContainerExtension" />
</summary>
<param name="container">The <see cref="T:DryIoc.IContainer" /> instance to use.</param>
</member>
<member name="P:Prism.DryIoc.DryIocContainerExtension.CurrentScope">
<summary>
Gets the current scope
</summary>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.FinalizeExtension">
<summary>
Used to perform any final steps for configuring the extension that may be required by the container.
</summary>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterInstance(System.Type,System.Object)">
<summary>
Registers an instance of a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterInstance(System.Type,System.Object,System.String)">
<summary>
Registers an instance of a given <see cref="T:System.Type"/> with the specified name or key
</summary>
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
<param name="name">The name or key to register the service</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Type)">
<summary>
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Type,System.String)">
<summary>
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<param name="name">The name or key to register the service</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Func{System.Object})">
<summary>
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
<summary>
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterManySingleton(System.Type,System.Type[])">
<summary>
Registers a Singleton Service which implements service interfaces
</summary>
<param name="type">The implementation <see cref="T:System.Type" />.</param>
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
<remarks>Registers all interfaces if none are specified.</remarks>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Type)">
<summary>
Registers a scoped service
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Func{System.Object})">
<summary>
Registers a scoped service using a delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
<summary>
Registers a scoped service using a delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type"/>.</param>
<param name="factoryMethod">The delegate method using the <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Type)">
<summary>
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Type,System.String)">
<summary>
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<param name="name">The name or key to register the service</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Func{System.Object})">
<summary>
Registers a Transient Service using a delegate method
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
<summary>
Registers a Transient Service using a delegate method
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterMany(System.Type,System.Type[])">
<summary>
Registers a Transient Service which implements service interfaces
</summary>
<param name="type">The implementing <see cref="T:System.Type" />.</param>
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
<remarks>Registers all interfaces if none are specified.</remarks>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type)">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.String)">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.ValueTuple{System.Type,System.Object}[])">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<param name="parameters">Typed parameters to use when resolving the Service</param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.String,System.ValueTuple{System.Type,System.Object}[])">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
<param name="parameters">Typed parameters to use when resolving the Service</param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.IsRegistered(System.Type)">
<summary>
Determines if a given service is registered
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<returns><c>true</c> if the service is registered.</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.IsRegistered(System.Type,System.String)">
<summary>
Determines if a given service is registered with the specified name
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="name">The service name or key used</param>
<returns><c>true</c> if the service is registered.</returns>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.CreateScope">
<summary>
Creates a new Scope
</summary>
</member>
<member name="M:Prism.DryIoc.DryIocContainerExtension.CreateScopeInternal">
<summary>
Creates a new Scope and provides the updated ServiceProvider
</summary>
<returns>The Scoped <see cref="T:DryIoc.IResolverContext" />.</returns>
<remarks>
This should be called by custom implementations that Implement IServiceScopeFactory
</remarks>
</member>
<member name="T:Prism.DryIoc.PrismIocExtensions">
<summary>
Extensions help get the underlying <see cref="T:DryIoc.IContainer" />
</summary>
</member>
<member name="M:Prism.DryIoc.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerProvider)">
<summary>
Gets the <see cref="T:DryIoc.IContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
</summary>
<param name="containerProvider">The current <see cref="T:Prism.Ioc.IContainerProvider" /></param>
<returns>The underlying <see cref="T:DryIoc.IContainer" /></returns>
</member>
<member name="M:Prism.DryIoc.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerRegistry)">
<summary>
Gets the <see cref="T:DryIoc.IContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
</summary>
<param name="containerRegistry">The current <see cref="T:Prism.Ioc.IContainerRegistry" /></param>
<returns>The underlying <see cref="T:DryIoc.IContainer" /></returns>
</member>
</members>
</doc>

View File

@ -1,324 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Prism.Unity.Wpf</name>
</assembly>
<members>
<member name="T:Prism.Unity.PrismApplication">
<summary>
Base application class that uses <see cref="T:Prism.Unity.UnityContainerExtension"/> as it's container.
</summary>
</member>
<member name="M:Prism.Unity.PrismApplication.CreateContainerExtension">
<summary>
Create a new <see cref="T:Prism.Unity.UnityContainerExtension"/> used by Prism.
</summary>
<returns>A new <see cref="T:Prism.Unity.UnityContainerExtension"/>.</returns>
</member>
<member name="M:Prism.Unity.PrismApplication.RegisterFrameworkExceptionTypes">
<summary>
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
</summary>
</member>
<member name="T:Prism.Unity.PrismBootstrapper">
<summary>
Base bootstrapper class that uses <see cref="T:Prism.Unity.UnityContainerExtension"/> as it's container.
</summary>
</member>
<member name="M:Prism.Unity.PrismBootstrapper.CreateContainerExtension">
<summary>
Create a new <see cref="T:Prism.Unity.UnityContainerExtension"/> used by Prism.
</summary>
<returns>A new <see cref="T:Prism.Unity.UnityContainerExtension"/>.</returns>
</member>
<member name="M:Prism.Unity.PrismBootstrapper.RegisterFrameworkExceptionTypes">
<summary>
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
</summary>
</member>
<member name="T:Prism.Unity.Properties.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.NotOverwrittenGetModuleEnumeratorException">
<summary>
Looks up a localized string similar to The method &apos;GetModuleEnumerator&apos; of the bootstrapper must be overwritten in order to use the default module initialization logic..
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.NullLoggerFacadeException">
<summary>
Looks up a localized string similar to The ILoggerFacade is required and cannot be null..
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.NullModuleCatalogException">
<summary>
Looks up a localized string similar to The IModuleCatalog is required and cannot be null in order to initialize the modules..
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.NullUnityContainerException">
<summary>
Looks up a localized string similar to The IUnityContainer is required and cannot be null..
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.SettingTheRegionManager">
<summary>
Looks up a localized string similar to Setting the RegionManager..
</summary>
</member>
<member name="P:Prism.Unity.Properties.Resources.TypeMappingAlreadyRegistered">
<summary>
Looks up a localized string similar to Type &apos;{0}&apos; was already registered by the application. Skipping....
</summary>
</member>
<member name="T:Prism.Unity.PrismIocExtensions">
<summary>
Extensions help get the underlying <see cref="T:Unity.IUnityContainer" />
</summary>
</member>
<member name="M:Prism.Unity.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerProvider)">
<summary>
Gets the <see cref="T:Unity.IUnityContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
</summary>
<param name="containerProvider">The current <see cref="T:Prism.Ioc.IContainerProvider" /></param>
<returns>The underlying <see cref="T:Unity.IUnityContainer" /></returns>
</member>
<member name="M:Prism.Unity.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerRegistry)">
<summary>
Gets the <see cref="T:Unity.IUnityContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
</summary>
<param name="containerRegistry">The current <see cref="T:Prism.Ioc.IContainerRegistry" /></param>
<returns>The underlying <see cref="T:Unity.IUnityContainer" /></returns>
</member>
<member name="T:Prism.Unity.UnityContainerExtension">
<summary>
The Unity implementation of the <see cref="T:Prism.Ioc.IContainerExtension" />
</summary>
</member>
<member name="P:Prism.Unity.UnityContainerExtension.Instance">
<summary>
The instance of the wrapped container
</summary>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.#ctor">
<summary>
Constructs a default <see cref="T:Prism.Unity.UnityContainerExtension" />
</summary>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.#ctor(Unity.IUnityContainer)">
<summary>
Constructs a <see cref="T:Prism.Unity.UnityContainerExtension" /> with the specified <see cref="T:Unity.IUnityContainer" />
</summary>
<param name="container"></param>
</member>
<member name="P:Prism.Unity.UnityContainerExtension.CurrentScope">
<summary>
Gets the current <see cref="T:Prism.Ioc.IScopedProvider"/>
</summary>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.FinalizeExtension">
<summary>
Used to perform any final steps for configuring the extension that may be required by the container.
</summary>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterInstance(System.Type,System.Object)">
<summary>
Registers an instance of a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterInstance(System.Type,System.Object,System.String)">
<summary>
Registers an instance of a given <see cref="T:System.Type"/> with the specified name or key
</summary>
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
<param name="name">The name or key to register the service</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Type)">
<summary>
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Type,System.String)">
<summary>
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<param name="name">The name or key to register the service</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Func{System.Object})">
<summary>
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
<summary>
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterManySingleton(System.Type,System.Type[])">
<summary>
Registers a Singleton Service which implements service interfaces
</summary>
<param name="type">The implementation <see cref="T:System.Type" />.</param>
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
<remarks>Registers all interfaces if none are specified.</remarks>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Type)">
<summary>
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Type,System.String)">
<summary>
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<param name="name">The name or key to register the service</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Func{System.Object})">
<summary>
Registers a Transient Service using a delegate method
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
<summary>
Registers a Transient Service using a delegate method
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterMany(System.Type,System.Type[])">
<summary>
Registers a Transient Service which implements service interfaces
</summary>
<param name="type">The implementing <see cref="T:System.Type" />.</param>
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
<remarks>Registers all interfaces if none are specified.</remarks>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Type)">
<summary>
Registers a scoped service
</summary>
<param name="from">The service <see cref="T:System.Type" /></param>
<param name="to">The implementation <see cref="T:System.Type" /></param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Func{System.Object})">
<summary>
Registers a scoped service using a delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
<summary>
Registers a scoped service using a delegate method.
</summary>
<param name="type">The service <see cref="T:System.Type"/>.</param>
<param name="factoryMethod">The delegate method.</param>
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type)">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.String)">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.ValueTuple{System.Type,System.Object}[])">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<param name="parameters">Typed parameters to use when resolving the Service</param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.String,System.ValueTuple{System.Type,System.Object}[])">
<summary>
Resolves a given <see cref="T:System.Type"/>
</summary>
<param name="type">The service <see cref="T:System.Type"/></param>
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
<param name="parameters">Typed parameters to use when resolving the Service</param>
<returns>The resolved Service <see cref="T:System.Type"/></returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.IsRegistered(System.Type)">
<summary>
Determines if a given service is registered
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<returns><c>true</c> if the service is registered.</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.IsRegistered(System.Type,System.String)">
<summary>
Determines if a given service is registered with the specified name
</summary>
<param name="type">The service <see cref="T:System.Type" /></param>
<param name="name">The service name or key used</param>
<returns><c>true</c> if the service is registered.</returns>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.CreateScope">
<summary>
Creates a new Scope
</summary>
</member>
<member name="M:Prism.Unity.UnityContainerExtension.CreateScopeInternal">
<summary>
Creates a new Scope and provides the updated ServiceProvider
</summary>
<returns>A child <see cref="T:Unity.IUnityContainer" />.</returns>
<remarks>
This should be called by custom implementations that Implement IServiceScopeFactory
</remarks>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Container.DryIoc" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.107.57918" newVersion="9.0.107.57918" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.7.7.0" newVersion="4.7.7.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.88.57754" newVersion="9.0.88.57754" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -1,200 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Runtime.CompilerServices.Unsafe</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.Unsafe">
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
<summary>Adds a byte offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="byteOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
<summary>Determines whether the specified references point to the same location.</summary>
<param name="left">The first reference to compare.</param>
<param name="right">The second reference to compare.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>true if <paramref name="left">left</paramref> and <paramref name="right">right</paramref> point to the same location; otherwise, false.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
<summary>Casts the given object to the specified type.</summary>
<param name="o">The object to cast.</param>
<typeparam name="T">The type which the object will be cast to.</typeparam>
<returns>The original object, casted to the given type.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</summary>
<param name="source">The reference to reinterpret.</param>
<typeparam name="TFrom">The type of reference to reinterpret..</typeparam>
<typeparam name="TTo">The desired type of the reference.</typeparam>
<returns>A reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
<summary>Returns a pointer to the given by-ref parameter.</summary>
<param name="value">The object whose pointer is obtained.</param>
<typeparam name="T">The type of object.</typeparam>
<returns>A pointer to the given value.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T">T</typeparamref>.</summary>
<param name="source">The location of the value to reference.</param>
<typeparam name="T">The type of the interpreted location.</typeparam>
<returns>A reference to a value of type <typeparamref name="T">T</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
<summary>Determines the byte offset from origin to target from the given references.</summary>
<param name="origin">The reference to origin.</param>
<param name="target">The reference to target.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>Byte offset from origin to target i.e. <paramref name="target">target</paramref> - <paramref name="origin">origin</paramref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A reference to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A pointer to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value
without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value
without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
<summary>Returns the size of an object of the given type parameter.</summary>
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
<returns>The size of an object of type <typeparamref name="T">T</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
<summary>Subtracts a byte offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="byteOffset"></param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
</members>
</doc>

View File

@ -1,166 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Threading.Tasks.Extensions</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.ValueTaskAwaiter`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult">
<returns></returns>
</member>
<member name="P:System.Runtime.CompilerServices.ValueTaskAwaiter`1.IsCompleted">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="T:System.Threading.Tasks.ValueTask`1">
<summary>Provides a value type that wraps a <see cref="Task{TResult}"></see> and a <typeparamref name="TResult">TResult</typeparamref>, only one of which is used.</summary>
<typeparam name="TResult">The result.</typeparam>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(System.Threading.Tasks.Task{`0})">
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied task that represents the operation.</summary>
<param name="task">The task.</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="task">task</paramref> argument is null.</exception>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(`0)">
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied result of a successful operation.</summary>
<param name="result">The result.</param>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.AsTask">
<summary>Retrieves a <see cref="Task{TResult}"></see> object that represents this <see cref="ValueTask{TResult}"></see>.</summary>
<returns>The <see cref="Task{TResult}"></see> object that is wrapped in this <see cref="ValueTask{TResult}"></see> if one exists, or a new <see cref="Task{TResult}"></see> object that represents the result.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.ConfigureAwait(System.Boolean)">
<summary>Configures an awaiter for this value.</summary>
<param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the captured context; otherwise, false.</param>
<returns>The configured awaiter.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.CreateAsyncMethodBuilder">
<summary>Creates a method builder for use with an async method.</summary>
<returns>The created builder.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Object)">
<summary>Determines whether the specified object is equal to the current object.</summary>
<param name="obj">The object to compare with the current object.</param>
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Threading.Tasks.ValueTask{`0})">
<summary>Determines whether the specified <see cref="ValueTask{TResult}"></see> object is equal to the current <see cref="ValueTask{TResult}"></see> object.</summary>
<param name="other">The object to compare with the current object.</param>
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.GetAwaiter">
<summary>Creates an awaiter for this value.</summary>
<returns>The awaiter.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.GetHashCode">
<summary>Returns the hash code for this instance.</summary>
<returns>The hash code for the current object.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCanceled">
<summary>Gets a value that indicates whether this object represents a canceled operation.</summary>
<returns>true if this object represents a canceled operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompleted">
<summary>Gets a value that indicates whether this object represents a completed operation.</summary>
<returns>true if this object represents a completed operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompletedSuccessfully">
<summary>Gets a value that indicates whether this object represents a successfully completed operation.</summary>
<returns>true if this object represents a successfully completed operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsFaulted">
<summary>Gets a value that indicates whether this object represents a failed operation.</summary>
<returns>true if this object represents a failed operation; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.op_Equality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
<summary>Compares two values for equality.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The second value to compare.</param>
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are equal; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.op_Inequality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
<summary>Determines whether two <see cref="ValueTask{TResult}"></see> values are unequal.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The seconed value to compare.</param>
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are not equal; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.Result">
<summary>Gets the result.</summary>
<returns>The result.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.ToString">
<summary>Returns a string that represents the current object.</summary>
<returns>A string that represents the current object.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
</member>
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
<param name="builderType"></param>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
<returns></returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
<param name="awaiter"></param>
<param name="stateMachine"></param>
<typeparam name="TAwaiter"></typeparam>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
<param name="awaiter"></param>
<param name="stateMachine"></param>
<typeparam name="TAwaiter"></typeparam>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Create">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetException(System.Exception)">
<param name="exception"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetResult(`0)">
<param name="result"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
<param name="stateMachine"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Start``1(``0@)">
<param name="stateMachine"></param>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task">
<returns></returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult">
<returns></returns>
</member>
<member name="P:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.IsCompleted">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.GetAwaiter">
<returns></returns>
</member>
</members>
</doc>

View File

@ -1,8 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>System.ValueTuple</name>
</assembly>
<members>
</members>
</doc>

Some files were not shown because too many files have changed in this diff Show More