Added zak and izv

This commit is contained in:
Georgy Khatuncev 2021-07-16 16:43:55 +05:00
parent 1e0d3819ad
commit b8aa178424
132 changed files with 2706 additions and 63140 deletions

Binary file not shown.

@ -15,7 +15,7 @@ namespace Diplom_B.DB
public DbSet<Zakazchik> Zakazchiki { get; set; } public DbSet<Zakazchik> Zakazchiki { get; set; }
public DbSet<User> Users { get; set; } public DbSet<User> Users { get; set; }
public DbSet<Izdelie> Izdeliya { get; set; } public DbSet<Izdelie> Izdeliya { get; set; }
public DbSet<Izveschenie> Izvescheniya { get; set; }
public MainDB() { public MainDB() {
//Database.Migrate(); //Database.Migrate();
@ -29,7 +29,6 @@ namespace Diplom_B.DB
protected override void OnModelCreating(ModelBuilder modelBuilder) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { }
} }
public class User public class User
{ {
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@ -42,8 +41,9 @@ namespace Diplom_B.DB
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Adres { get; set; } public string Adress { get; set; }
public string Phone { get; set; } public string Phone { get; set; }
public string Email { get; set; }
} }
public class Izdelie public class Izdelie
{ {
@ -58,5 +58,17 @@ namespace Diplom_B.DB
public string Ved { get; set; } public string Ved { get; set; }
public string GlavKonstr { get; set; } public string GlavKonstr { get; set; }
} }
public class Izveschenie
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string IzvNum { get; set; }
public int InvNum { get; set; }
public int IzmNum { get; set; }
public string UkazZad { get; set; }
public string UkazVnedr { get; set; }
public string FileName { get; set; }
public byte[] FileStruct { get; set; }
}
} }

@ -28,6 +28,7 @@ namespace Diplom_B.DB
} }
public static Izdelie[] ListIzdelie(string filter = "") public static Izdelie[] ListIzdelie(string filter = "")
{ {
var f = filter.ToLower();
try try
{ {
using (var db = new MainDB()) using (var db = new MainDB())
@ -42,33 +43,21 @@ namespace Diplom_B.DB
{ {
var tmp = (from a in db.Izdeliya var tmp = (from a in db.Izdeliya
where where
a.Id.ToString().Contains(filter) || a.Id.ToString().ToLower().Contains(f) ||
a.Name.Contains(filter) || a.Name.ToLower().Contains(f) ||
a.DecNum.Contains(filter) || a.DecNum.ToLower().Contains(f) ||
a.Shifr.Contains(filter) || a.Shifr.ToLower().Contains(f) ||
a.Litera.Contains(filter) || a.Litera.ToLower().Contains(f) ||
a.Cena.ToString("F2").Contains(filter) || a.Cena.ToString("F2").ToLower().Contains(f) ||
a.OtdelRazrab.ToString().Contains(filter) || a.OtdelRazrab.ToString().ToLower().Contains(f) ||
a.Ved.Contains(filter) || a.Ved.ToLower().Contains(f) ||
a.GlavKonstr.Contains(filter) a.GlavKonstr.ToLower().Contains(f)
select a).ToArray(); select a).ToArray();
return tmp; return tmp;
} }
} }
} }
catch { throw; } catch { throw; }
}
public static void AddIzdelie(Izdelie izd)
{
try
{
using (var db = new MainDB())
{
db.Izdeliya.Add(izd);
db.SaveChanges();
}
}
catch { throw; }
} }
public static Izdelie GetIzdelie(int id) public static Izdelie GetIzdelie(int id)
{ {
@ -87,5 +76,213 @@ namespace Diplom_B.DB
} }
catch { throw; } catch { throw; }
} }
public static void AddIzdelie(Izdelie izd)
{
try
{
using (var db = new MainDB())
{
db.Izdeliya.Add(izd);
db.SaveChanges();
}
}
catch { throw; }
}
public static void ChangeIzdelie(Izdelie izd)
{
try
{
using (var db = new MainDB())
{
db.Izdeliya.Update(izd);
db.SaveChanges();
}
}
catch { throw; }
}
public static void DeleteIzdelie(Izdelie izd)
{
try
{
using (var db = new MainDB())
{
db.Izdeliya.Remove(izd);
db.SaveChanges();
}
}
catch { throw; }
}
public static Izveschenie[] ListIzveschenie(string filter = "")
{
var f = filter.ToLower();
try
{
using (var db = new MainDB())
{
if (string.IsNullOrEmpty(filter))
{
var tmp = (from a in db.Izvescheniya
select a).ToArray();
return tmp;
}
else
{
var tmp = (from a in db.Izvescheniya
where
a.Id.ToString().ToLower().Contains(f) ||
a.IzvNum.ToLower().Contains(f) ||
a.InvNum.ToString().ToLower().Contains(f) ||
a.IzmNum.ToString().ToLower().Contains(f) ||
a.UkazZad.ToLower().Contains(f) ||
a.UkazVnedr.ToLower().Contains(f) ||
a.FileName.ToLower().Contains(f)
select a).ToArray();
return tmp;
}
}
}
catch { throw; }
}
public static Izveschenie GetIzveschenie(int id)
{
try
{
using (var db = new MainDB())
{
var res = (from a in db.Izvescheniya
where a.Id == id
select a).ToArray();
if (res.Length != 1)
return null;
else
return res[0];
}
}
catch { throw; }
}
public static void AddIzveschenie(Izveschenie izv)
{
try
{
using (var db = new MainDB())
{
db.Izvescheniya.Add(izv);
db.SaveChanges();
}
}
catch { throw; }
}
public static void ChangeIzveschenie(Izveschenie izv)
{
try
{
using (var db = new MainDB())
{
db.Izvescheniya.Update(izv);
db.SaveChanges();
}
}
catch { throw; }
}
public static void DeleteIzdelie(Izveschenie izv)
{
try
{
using (var db = new MainDB())
{
db.Izvescheniya.Remove(izv);
db.SaveChanges();
}
}
catch { throw; }
}
public static Zakazchik[] ListZakazchik(string filter = "")
{
var f = filter.ToLower();
try
{
using (var db = new MainDB())
{
if (string.IsNullOrEmpty(filter))
{
var tmp = (from a in db.Zakazchiki
select a).ToArray();
return tmp;
}
else
{
var tmp = (from a in db.Zakazchiki
where
a.Id.ToString().ToLower().Contains(f) ||
a.Name.ToLower().Contains(f) ||
a.Adress.ToLower().Contains(f) ||
a.Phone.ToLower().Contains(f) ||
a.Email.ToLower().Contains(f)
select a).ToArray();
return tmp;
}
}
}
catch { throw; }
}
public static Zakazchik GetZakazchik(int id)
{
try
{
using (var db = new MainDB())
{
var res = (from a in db.Zakazchiki
where a.Id == id
select a).ToArray();
if (res.Length != 1)
return null;
else
return res[0];
}
}
catch { throw; }
}
public static void AddZakazchik(Zakazchik zak)
{
try
{
using (var db = new MainDB())
{
db.Zakazchiki.Add(zak);
db.SaveChanges();
}
}
catch { throw; }
}
public static void ChangeZakazchik(Zakazchik zak)
{
try
{
using (var db = new MainDB())
{
db.Zakazchiki.Update(zak);
db.SaveChanges();
}
}
catch { throw; }
}
public static void DeleteZakazchik(Zakazchik zak)
{
try
{
using (var db = new MainDB())
{
db.Zakazchiki.Remove(zak);
db.SaveChanges();
}
}
catch { throw; }
}
} }
} }

@ -266,11 +266,35 @@
<ItemGroup> <ItemGroup>
<Compile Include="DB\MainDB.cs" /> <Compile Include="DB\MainDB.cs" />
<Compile Include="DB\WorkDB.cs" /> <Compile Include="DB\WorkDB.cs" />
<Compile Include="FormLogin.cs"> <Compile Include="ZakazchikForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="FormLogin.Designer.cs"> <Compile Include="ZakazchikForm.Designer.cs">
<DependentUpon>FormLogin.cs</DependentUpon> <DependentUpon>ZakazchikForm.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="PostForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PostForm.Designer.cs">
<DependentUpon>PostForm.cs</DependentUpon>
</Compile>
<Compile Include="IzvForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="IzvForm.Designer.cs">
<DependentUpon>IzvForm.cs</DependentUpon>
</Compile>
<Compile Include="LoginForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoginForm.Designer.cs">
<DependentUpon>LoginForm.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="IzdForm.cs"> <Compile Include="IzdForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
@ -281,12 +305,24 @@
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="User.cs" /> <Compile Include="User.cs" />
<EmbeddedResource Include="FormLogin.resx"> <EmbeddedResource Include="PostForm.resx">
<DependentUpon>FormLogin.cs</DependentUpon> <DependentUpon>PostForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ZakazchikForm.resx">
<DependentUpon>ZakazchikForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="IzvForm.resx">
<DependentUpon>IzvForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="LoginForm.resx">
<DependentUpon>LoginForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="IzdForm.resx"> <EmbeddedResource Include="IzdForm.resx">
<DependentUpon>IzdForm.cs</DependentUpon> <DependentUpon>IzdForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx"> <EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput> <LastGenOutput>Resources.Designer.cs</LastGenOutput>
@ -296,7 +332,6 @@
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
</Compile> </Compile>
<None Include="Diplom B_TemporaryKey.pfx" />
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>

Binary file not shown.

91
IzdForm.Designer.cs generated

@ -33,6 +33,8 @@ namespace Diplom_B
this.resetSearchButton = new System.Windows.Forms.Button(); this.resetSearchButton = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.clearButton = new System.Windows.Forms.Button();
this.idLable = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label();
this.nameBox = new System.Windows.Forms.TextBox(); this.nameBox = new System.Windows.Forms.TextBox();
this.errorLable = new System.Windows.Forms.Label(); this.errorLable = new System.Windows.Forms.Label();
@ -55,11 +57,9 @@ namespace Diplom_B
this.shifrBox = new System.Windows.Forms.TextBox(); this.shifrBox = new System.Windows.Forms.TextBox();
this.decBox = new System.Windows.Forms.TextBox(); this.decBox = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.idLable = new System.Windows.Forms.Label(); this.idzGridView = new System.Windows.Forms.DataGridView();
this.clearButton = new System.Windows.Forms.Button();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.idzGridView)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// searchBox // searchBox
@ -68,7 +68,7 @@ namespace Diplom_B
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.searchBox.Location = new System.Drawing.Point(387, 12); this.searchBox.Location = new System.Drawing.Point(387, 12);
this.searchBox.Name = "searchBox"; this.searchBox.Name = "searchBox";
this.searchBox.Size = new System.Drawing.Size(541, 20); this.searchBox.Size = new System.Drawing.Size(561, 20);
this.searchBox.TabIndex = 3; this.searchBox.TabIndex = 3;
this.searchBox.Tag = ""; this.searchBox.Tag = "";
this.searchBox.TextChanged += new System.EventHandler(this.searchBox_TextChanged); this.searchBox.TextChanged += new System.EventHandler(this.searchBox_TextChanged);
@ -76,7 +76,7 @@ namespace Diplom_B
// resetSearchButton // resetSearchButton
// //
this.resetSearchButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.resetSearchButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.resetSearchButton.Location = new System.Drawing.Point(934, 10); this.resetSearchButton.Location = new System.Drawing.Point(954, 10);
this.resetSearchButton.Name = "resetSearchButton"; this.resetSearchButton.Name = "resetSearchButton";
this.resetSearchButton.Size = new System.Drawing.Size(75, 23); this.resetSearchButton.Size = new System.Drawing.Size(75, 23);
this.resetSearchButton.TabIndex = 4; this.resetSearchButton.TabIndex = 4;
@ -123,11 +123,30 @@ namespace Diplom_B
this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Location = new System.Drawing.Point(12, 10); this.groupBox1.Location = new System.Drawing.Point(12, 10);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(324, 412); this.groupBox1.Size = new System.Drawing.Size(324, 319);
this.groupBox1.TabIndex = 6; this.groupBox1.TabIndex = 6;
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.groupBox1.Text = "Информационное окно"; this.groupBox1.Text = "Информационное окно";
// //
// clearButton
//
this.clearButton.Location = new System.Drawing.Point(9, 255);
this.clearButton.Name = "clearButton";
this.clearButton.Size = new System.Drawing.Size(75, 23);
this.clearButton.TabIndex = 24;
this.clearButton.Text = "Сбросить";
this.clearButton.UseVisualStyleBackColor = true;
this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
//
// idLable
//
this.idLable.AutoSize = true;
this.idLable.Location = new System.Drawing.Point(129, 24);
this.idLable.Name = "idLable";
this.idLable.Size = new System.Drawing.Size(69, 13);
this.idLable.TabIndex = 23;
this.idLable.Text = "Номер в БД";
//
// label10 // label10
// //
this.label10.AutoSize = true; this.label10.AutoSize = true;
@ -154,6 +173,7 @@ namespace Diplom_B
this.errorLable.Size = new System.Drawing.Size(149, 13); this.errorLable.Size = new System.Drawing.Size(149, 13);
this.errorLable.TabIndex = 20; this.errorLable.TabIndex = 20;
this.errorLable.Text = "Информация об ошибке"; this.errorLable.Text = "Информация об ошибке";
this.errorLable.Visible = false;
// //
// selectButton // selectButton
// //
@ -163,6 +183,7 @@ namespace Diplom_B
this.selectButton.TabIndex = 19; this.selectButton.TabIndex = 19;
this.selectButton.Text = "Выбрать"; this.selectButton.Text = "Выбрать";
this.selectButton.UseVisualStyleBackColor = true; this.selectButton.UseVisualStyleBackColor = true;
this.selectButton.Visible = false;
// //
// deleteButton // deleteButton
// //
@ -172,6 +193,7 @@ namespace Diplom_B
this.deleteButton.TabIndex = 18; this.deleteButton.TabIndex = 18;
this.deleteButton.Text = "Удалить"; this.deleteButton.Text = "Удалить";
this.deleteButton.UseVisualStyleBackColor = true; this.deleteButton.UseVisualStyleBackColor = true;
this.deleteButton.Click += new System.EventHandler(this.deleteButton_Click);
// //
// changeButton // changeButton
// //
@ -181,6 +203,7 @@ namespace Diplom_B
this.changeButton.TabIndex = 17; this.changeButton.TabIndex = 17;
this.changeButton.Text = "Изменить"; this.changeButton.Text = "Изменить";
this.changeButton.UseVisualStyleBackColor = true; this.changeButton.UseVisualStyleBackColor = true;
this.changeButton.Click += new System.EventHandler(this.changeButton_Click);
// //
// createButton // createButton
// //
@ -313,56 +336,38 @@ namespace Diplom_B
this.label2.TabIndex = 0; this.label2.TabIndex = 0;
this.label2.Text = "№"; this.label2.Text = "№";
// //
// idLable // idzGridView
// //
this.idLable.AutoSize = true; this.idzGridView.AllowUserToAddRows = false;
this.idLable.Location = new System.Drawing.Point(129, 24); this.idzGridView.AllowUserToDeleteRows = false;
this.idLable.Name = "idLable"; this.idzGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.idLable.Size = new System.Drawing.Size(69, 13);
this.idLable.TabIndex = 23;
this.idLable.Text = "Номер в БД";
//
// clearButton
//
this.clearButton.Location = new System.Drawing.Point(9, 255);
this.clearButton.Name = "clearButton";
this.clearButton.Size = new System.Drawing.Size(75, 23);
this.clearButton.TabIndex = 24;
this.clearButton.Text = "Сбросить";
this.clearButton.UseVisualStyleBackColor = true;
this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.idzGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(345, 38); this.idzGridView.Location = new System.Drawing.Point(345, 38);
this.dataGridView1.Name = "dataGridView1"; this.idzGridView.Name = "idzGridView";
this.dataGridView1.RowHeadersVisible = false; this.idzGridView.RowHeadersVisible = false;
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.idzGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridView1.Size = new System.Drawing.Size(664, 384); this.idzGridView.Size = new System.Drawing.Size(684, 291);
this.dataGridView1.TabIndex = 7; this.idzGridView.TabIndex = 7;
this.dataGridView1.CurrentCellChanged += new System.EventHandler(this.dataGridView1_CurrentCellChanged); this.idzGridView.CurrentCellChanged += new System.EventHandler(this.izdGridView_CurrentCellChanged);
// //
// IzdForm // IzdForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1021, 434); this.ClientSize = new System.Drawing.Size(1041, 341);
this.Controls.Add(this.dataGridView1); this.Controls.Add(this.idzGridView);
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label1); this.Controls.Add(this.label1);
this.Controls.Add(this.resetSearchButton); this.Controls.Add(this.resetSearchButton);
this.Controls.Add(this.searchBox); this.Controls.Add(this.searchBox);
this.Name = "IzdForm"; this.Name = "IzdForm";
this.Text = "IzdForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Изделия";
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.idzGridView)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@ -397,6 +402,6 @@ namespace Diplom_B
private System.Windows.Forms.TextBox nameBox; private System.Windows.Forms.TextBox nameBox;
private System.Windows.Forms.Label idLable; private System.Windows.Forms.Label idLable;
private System.Windows.Forms.Button clearButton; private System.Windows.Forms.Button clearButton;
private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.DataGridView idzGridView;
} }
} }

@ -13,74 +13,31 @@ namespace Diplom_B
{ {
public partial class IzdForm : Form public partial class IzdForm : Form
{ {
public IzdForm() private void ClearBoxes()
{ {
InitializeComponent();
errorLable.Visible = false;
idLable.Text = ""; idLable.Text = "";
try nameBox.Text = "";
{ decBox.Text = "";
using (var db = new MainDB()){ shifrBox.Text = "";
var res = WorkDB.ListIzdelie(); literaBox.Text = "";
UpdateTable(res); cenaBox.Text = "";
otdRazBox.Text = "";
vedBox.Text = "";
glavKonstrBox.Text = "";
} }
} private void UpdateTable(Izdelie[] arr, bool reset_cursor = false)
catch
{ {
ShowError(); var selected = (!reset_cursor && idzGridView.SelectedRows.Count > 0) ? idzGridView.SelectedRows[0].Index : -1;
}
}
private void createButton_Click(object sender, EventArgs e)
{ {
try var r = idzGridView.Rows;
{
if (!double.TryParse(cenaBox.Text, out double cena))
{
ShowError("Ошибка цены.");
return;
}
if (!int.TryParse(otdRazBox.Text, out int otdRaz))
{
ShowError("Ошибка отдела-разработчика.");
return;
}
{
var r = new Izdelie()
{
Name = nameBox.Text,
DecNum = decBox.Text,
Shifr = shifrBox.Text,
Litera = literaBox.Text,
Cena = cena,
OtdelRazrab = otdRaz,
Ved = vedBox.Text,
GlavKonstr = glavKonstrBox.Text
};
WorkDB.AddIzdelie(r);
UpdateTable(WorkDB.ListIzdelie());
}
}
catch (Exception ex)
{
ShowError(ex.Message);
}
}
private void UpdateTable(Izdelie[] arr)
{
{
var r = dataGridView1.Rows;
while (r.Count > 0) while (r.Count > 0)
r.Remove(r[0]); r.Remove(r[0]);
var c = dataGridView1.Columns; var c = idzGridView.Columns;
while (c.Count > 0) while (c.Count > 0)
c.Remove(c[0]); c.Remove(c[0]);
} }
{ {
var c = dataGridView1.Columns; var c = idzGridView.Columns;
c.Add("Id", "№"); c.Add("Id", "№");
c["Id"].Width = 40; c["Id"].Width = 40;
c.Add("Name", "Наим."); c.Add("Name", "Наим.");
@ -99,7 +56,7 @@ namespace Diplom_B
c.Add("GlavKonstr", "Глав. констр."); c.Add("GlavKonstr", "Глав. констр.");
} }
{ {
var r = dataGridView1.Rows; var r = idzGridView.Rows;
foreach (var izd in arr) foreach (var izd in arr)
r.Add(new object[] { r.Add(new object[] {
izd.Id, izd.Id,
@ -113,9 +70,12 @@ namespace Diplom_B
izd.GlavKonstr izd.GlavKonstr
}); });
} }
if (dataGridView1.Rows.Count > 0) if (idzGridView.Rows.Count > 0)
dataGridView1.Rows[0].Selected = true; idzGridView.Rows[0].Selected = true;
dataGridView1_CurrentCellChanged(this, new EventArgs()); if (selected != -1 && selected < idzGridView.Rows.Count)
for (var i = 0; i < idzGridView.Rows.Count; i++)
idzGridView.Rows[i].Selected = (i == selected);
izdGridView_CurrentCellChanged(this, new EventArgs());
} }
private Task errDrop; private Task errDrop;
@ -134,44 +94,6 @@ namespace Diplom_B
errDrop.Start(); errDrop.Start();
} }
private void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
ClearBoxes();
if (dataGridView1.SelectedRows.Count != 1)
return;
{
var izd = WorkDB.GetIzdelie((int)dataGridView1.SelectedRows[0].Cells[0].Value);
if (izd == null)
return;
idLable.Text = izd.Id.ToString();
nameBox.Text = izd.Name;
decBox.Text = izd.DecNum;
shifrBox.Text = izd.Shifr;
literaBox.Text = izd.Litera;
cenaBox.Text = izd.Cena.ToString();
otdRazBox.Text = izd.OtdelRazrab.ToString();
vedBox.Text = izd.Ved;
glavKonstrBox.Text = izd.GlavKonstr;
}
}
private void clearButton_Click(object sender, EventArgs e)
{
ClearBoxes();
}
private void ClearBoxes()
{
idLable.Text = "";
nameBox.Text = "";
decBox.Text = "";
shifrBox.Text = "";
literaBox.Text = "";
cenaBox.Text = "";
otdRazBox.Text = "";
vedBox.Text = "";
glavKonstrBox.Text = "";
}
private Task filterDrop; private Task filterDrop;
private void searchBox_TextChanged(object sender, EventArgs e) private void searchBox_TextChanged(object sender, EventArgs e)
{ {
@ -187,11 +109,104 @@ namespace Diplom_B
filterDrop.Start(); filterDrop.Start();
} }
public IzdForm()
{
InitializeComponent();
try
{
UpdateTable(WorkDB.ListIzdelie(searchBox.Text));
}
catch
{
ShowError();
}
}
private void izdGridView_CurrentCellChanged(object sender, EventArgs e)
{
ClearBoxes();
if (idzGridView.SelectedRows.Count != 1)
return;
{
var izd = WorkDB.GetIzdelie((int)idzGridView.SelectedRows[0].Cells[0].Value);
if (izd == null)
return;
idLable.Text = izd.Id.ToString();
nameBox.Text = izd.Name;
decBox.Text = izd.DecNum;
shifrBox.Text = izd.Shifr;
literaBox.Text = izd.Litera;
cenaBox.Text = izd.Cena.ToString();
otdRazBox.Text = izd.OtdelRazrab.ToString();
vedBox.Text = izd.Ved;
glavKonstrBox.Text = izd.GlavKonstr;
}
}
private void createButton_Click(object sender, EventArgs e)
{
if (!double.TryParse(cenaBox.Text, out double cena)) { ShowError("Ошибка цены."); return; }
if (!int.TryParse(otdRazBox.Text, out int otdRaz)) { ShowError("Ошибка отдела-разработчика."); return; }
try
{
var r = new Izdelie()
{
Name = nameBox.Text,
DecNum = decBox.Text,
Shifr = shifrBox.Text,
Litera = literaBox.Text,
Cena = cena,
OtdelRazrab = otdRaz,
Ved = vedBox.Text,
GlavKonstr = glavKonstrBox.Text
};
WorkDB.AddIzdelie(r);
UpdateTable(WorkDB.ListIzdelie(searchBox.Text));
}
catch { ShowError(); }
}
private void clearButton_Click(object sender, EventArgs e)
{
ClearBoxes();
}
private void resetSearchButton_Click(object sender, EventArgs e) private void resetSearchButton_Click(object sender, EventArgs e)
{ {
searchBox.Text = ""; searchBox.Text = "";
filterDrop = new Task(() => { return; }); filterDrop = new Task(() => { return; });
UpdateTable(WorkDB.ListIzdelie()); UpdateTable(WorkDB.ListIzdelie(searchBox.Text));
}
private void changeButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(idLable.Text, out int idRes)) { ShowError("Изделие не выбрано."); return; }
var izd = WorkDB.GetIzdelie(idRes);
if (izd == null) { ShowError("Нет изделия в БД."); return; }
if(!double.TryParse(cenaBox.Text, out double cena)) { ShowError("Ошибка цены."); return; }
if (!int.TryParse(otdRazBox.Text, out int otdRaz)) { ShowError("Ошибка отдела-разраб."); return; }
try
{
izd.Name = nameBox.Text;
izd.DecNum = decBox.Text;
izd.Shifr = shifrBox.Text;
izd.Litera = literaBox.Text;
izd.Cena = cena;
izd.OtdelRazrab = otdRaz;
izd.Ved = vedBox.Text;
izd.GlavKonstr = glavKonstrBox.Text;
WorkDB.ChangeIzdelie(izd);
}
catch { ShowError(); }
UpdateTable(WorkDB.ListIzdelie(searchBox.Text));
}
private void deleteButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(idLable.Text, out int idRes)) { ShowError("Изделие не выбрано."); return; }
var izd = WorkDB.GetIzdelie(idRes);
if (izd == null) { ShowError("Изделия не существует."); return; }
try
{
WorkDB.DeleteIzdelie(izd);
}
catch { ShowError(); }
UpdateTable(WorkDB.ListIzdelie(searchBox.Text));
} }
} }
} }

406
IzvForm.Designer.cs generated Normal file

@ -0,0 +1,406 @@

namespace Diplom_B
{
partial class IzvForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.linkFileLabel = new System.Windows.Forms.LinkLabel();
this.resetFileButton = new System.Windows.Forms.Button();
this.fileLoadButton = new System.Windows.Forms.Button();
this.errorLabel = new System.Windows.Forms.Label();
this.SelectIzvButton = new System.Windows.Forms.Button();
this.createIzvButton = new System.Windows.Forms.Button();
this.changeIzvButton = new System.Windows.Forms.Button();
this.idLabel = new System.Windows.Forms.Label();
this.ResetIzvButton = new System.Windows.Forms.Button();
this.deleteIzvButton = new System.Windows.Forms.Button();
this.ukazVnedrBox = new System.Windows.Forms.TextBox();
this.ukazZadBox = new System.Windows.Forms.TextBox();
this.izmNumBox = new System.Windows.Forms.TextBox();
this.invNumBox = new System.Windows.Forms.TextBox();
this.izvNumBox = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.searchBox = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.resetSearchButton = new System.Windows.Forms.Button();
this.izvGridView = new System.Windows.Forms.DataGridView();
this.selectFileDialog = new System.Windows.Forms.OpenFileDialog();
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.izvGridView)).BeginInit();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox1.Controls.Add(this.groupBox2);
this.groupBox1.Controls.Add(this.errorLabel);
this.groupBox1.Controls.Add(this.SelectIzvButton);
this.groupBox1.Controls.Add(this.createIzvButton);
this.groupBox1.Controls.Add(this.changeIzvButton);
this.groupBox1.Controls.Add(this.idLabel);
this.groupBox1.Controls.Add(this.ResetIzvButton);
this.groupBox1.Controls.Add(this.deleteIzvButton);
this.groupBox1.Controls.Add(this.ukazVnedrBox);
this.groupBox1.Controls.Add(this.ukazZadBox);
this.groupBox1.Controls.Add(this.izmNumBox);
this.groupBox1.Controls.Add(this.invNumBox);
this.groupBox1.Controls.Add(this.izvNumBox);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(303, 283);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Информационное окно";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.linkFileLabel);
this.groupBox2.Controls.Add(this.resetFileButton);
this.groupBox2.Controls.Add(this.fileLoadButton);
this.groupBox2.Location = new System.Drawing.Point(6, 175);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(290, 40);
this.groupBox2.TabIndex = 33;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Файл";
//
// linkFileLabel
//
this.linkFileLabel.AutoSize = true;
this.linkFileLabel.Location = new System.Drawing.Point(6, 16);
this.linkFileLabel.Name = "linkFileLabel";
this.linkFileLabel.Size = new System.Drawing.Size(93, 13);
this.linkFileLabel.TabIndex = 22;
this.linkFileLabel.TabStop = true;
this.linkFileLabel.Text = "Ссылка на файл.";
this.linkFileLabel.Visible = false;
this.linkFileLabel.VisitedLinkColor = System.Drawing.Color.Blue;
this.linkFileLabel.Click += new System.EventHandler(this.linkFileLabel_Click);
//
// resetFileButton
//
this.resetFileButton.Location = new System.Drawing.Point(142, 11);
this.resetFileButton.Name = "resetFileButton";
this.resetFileButton.Size = new System.Drawing.Size(68, 23);
this.resetFileButton.TabIndex = 32;
this.resetFileButton.Text = "Удалить";
this.resetFileButton.UseVisualStyleBackColor = true;
this.resetFileButton.Click += new System.EventHandler(this.resetFileButton_Click);
//
// fileLoadButton
//
this.fileLoadButton.Location = new System.Drawing.Point(216, 11);
this.fileLoadButton.Name = "fileLoadButton";
this.fileLoadButton.Size = new System.Drawing.Size(68, 23);
this.fileLoadButton.TabIndex = 23;
this.fileLoadButton.Text = "Выбрать";
this.fileLoadButton.UseVisualStyleBackColor = true;
this.fileLoadButton.Click += new System.EventHandler(this.fileLoadButton_Click);
//
// errorLabel
//
this.errorLabel.AutoSize = true;
this.errorLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.errorLabel.ForeColor = System.Drawing.Color.Red;
this.errorLabel.Location = new System.Drawing.Point(6, 255);
this.errorLabel.Name = "errorLabel";
this.errorLabel.Size = new System.Drawing.Size(149, 13);
this.errorLabel.TabIndex = 31;
this.errorLabel.Text = "Информация об ошибке";
this.errorLabel.Visible = false;
//
// SelectIzvButton
//
this.SelectIzvButton.Location = new System.Drawing.Point(228, 250);
this.SelectIzvButton.Name = "SelectIzvButton";
this.SelectIzvButton.Size = new System.Drawing.Size(68, 23);
this.SelectIzvButton.TabIndex = 30;
this.SelectIzvButton.Text = "Выбрать";
this.SelectIzvButton.UseVisualStyleBackColor = true;
this.SelectIzvButton.Visible = false;
//
// createIzvButton
//
this.createIzvButton.Location = new System.Drawing.Point(228, 221);
this.createIzvButton.Name = "createIzvButton";
this.createIzvButton.Size = new System.Drawing.Size(68, 23);
this.createIzvButton.TabIndex = 26;
this.createIzvButton.Text = "Создать";
this.createIzvButton.UseVisualStyleBackColor = true;
this.createIzvButton.Click += new System.EventHandler(this.createIzvButton_Click);
//
// changeIzvButton
//
this.changeIzvButton.Location = new System.Drawing.Point(154, 221);
this.changeIzvButton.Name = "changeIzvButton";
this.changeIzvButton.Size = new System.Drawing.Size(68, 23);
this.changeIzvButton.TabIndex = 27;
this.changeIzvButton.Text = "Изменить";
this.changeIzvButton.UseVisualStyleBackColor = true;
this.changeIzvButton.Click += new System.EventHandler(this.changeIzvButton_Click);
//
// idLabel
//
this.idLabel.AutoSize = true;
this.idLabel.Location = new System.Drawing.Point(102, 22);
this.idLabel.Name = "idLabel";
this.idLabel.Size = new System.Drawing.Size(69, 13);
this.idLabel.TabIndex = 24;
this.idLabel.Text = "Номер в БД";
//
// ResetIzvButton
//
this.ResetIzvButton.Location = new System.Drawing.Point(6, 221);
this.ResetIzvButton.Name = "ResetIzvButton";
this.ResetIzvButton.Size = new System.Drawing.Size(68, 23);
this.ResetIzvButton.TabIndex = 29;
this.ResetIzvButton.Text = "Сбросить";
this.ResetIzvButton.UseVisualStyleBackColor = true;
this.ResetIzvButton.Click += new System.EventHandler(this.ResetIzvButton_Click);
//
// deleteIzvButton
//
this.deleteIzvButton.Location = new System.Drawing.Point(80, 221);
this.deleteIzvButton.Name = "deleteIzvButton";
this.deleteIzvButton.Size = new System.Drawing.Size(68, 23);
this.deleteIzvButton.TabIndex = 28;
this.deleteIzvButton.Text = "Удалить";
this.deleteIzvButton.UseVisualStyleBackColor = true;
this.deleteIzvButton.Click += new System.EventHandler(this.deleteIzvButton_Click);
//
// ukazVnedrBox
//
this.ukazVnedrBox.Location = new System.Drawing.Point(102, 149);
this.ukazVnedrBox.Name = "ukazVnedrBox";
this.ukazVnedrBox.Size = new System.Drawing.Size(194, 20);
this.ukazVnedrBox.TabIndex = 21;
//
// ukazZadBox
//
this.ukazZadBox.Location = new System.Drawing.Point(102, 123);
this.ukazZadBox.Name = "ukazZadBox";
this.ukazZadBox.Size = new System.Drawing.Size(194, 20);
this.ukazZadBox.TabIndex = 20;
//
// izmNumBox
//
this.izmNumBox.Location = new System.Drawing.Point(102, 97);
this.izmNumBox.Name = "izmNumBox";
this.izmNumBox.Size = new System.Drawing.Size(194, 20);
this.izmNumBox.TabIndex = 19;
//
// invNumBox
//
this.invNumBox.Location = new System.Drawing.Point(102, 71);
this.invNumBox.Name = "invNumBox";
this.invNumBox.Size = new System.Drawing.Size(194, 20);
this.invNumBox.TabIndex = 18;
//
// izvNumBox
//
this.izvNumBox.Location = new System.Drawing.Point(102, 45);
this.izvNumBox.Name = "izvNumBox";
this.izvNumBox.Size = new System.Drawing.Size(194, 20);
this.izvNumBox.TabIndex = 17;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(15, 152);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(81, 13);
this.label6.TabIndex = 14;
this.label6.Text = "Указ. о внедр.";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(12, 126);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(84, 13);
this.label5.TabIndex = 13;
this.label5.Text = "Указ. о заделе";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(17, 100);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(79, 13);
this.label4.TabIndex = 12;
this.label4.Text = "Изменение №";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 74);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(90, 13);
this.label3.TabIndex = 11;
this.label3.Text = "Инвентарный №";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(16, 48);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(80, 13);
this.label2.TabIndex = 10;
this.label2.Text = "Извещение №";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(78, 22);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(18, 13);
this.label1.TabIndex = 9;
this.label1.Text = "№";
//
// searchBox
//
this.searchBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.searchBox.Location = new System.Drawing.Point(366, 12);
this.searchBox.Name = "searchBox";
this.searchBox.Size = new System.Drawing.Size(410, 20);
this.searchBox.TabIndex = 1;
this.searchBox.TextChanged += new System.EventHandler(this.searchBox_TextChanged);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(321, 15);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(39, 13);
this.label10.TabIndex = 2;
this.label10.Text = "Поиск";
//
// resetSearchButton
//
this.resetSearchButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.resetSearchButton.Location = new System.Drawing.Point(782, 10);
this.resetSearchButton.Name = "resetSearchButton";
this.resetSearchButton.Size = new System.Drawing.Size(75, 23);
this.resetSearchButton.TabIndex = 3;
this.resetSearchButton.Text = "Сбросить";
this.resetSearchButton.UseVisualStyleBackColor = true;
this.resetSearchButton.Click += new System.EventHandler(this.resetSearch_Click);
//
// izvGridView
//
this.izvGridView.AllowUserToAddRows = false;
this.izvGridView.AllowUserToDeleteRows = false;
this.izvGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.izvGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.izvGridView.Location = new System.Drawing.Point(324, 38);
this.izvGridView.Name = "izvGridView";
this.izvGridView.RowHeadersVisible = false;
this.izvGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.izvGridView.Size = new System.Drawing.Size(533, 257);
this.izvGridView.TabIndex = 4;
this.izvGridView.CurrentCellChanged += new System.EventHandler(this.izvGridView_CurrentCellChanged);
//
// selectFileDialog
//
this.selectFileDialog.Title = "Выбор файла для загрузки";
//
// IzvForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(869, 307);
this.Controls.Add(this.izvGridView);
this.Controls.Add(this.resetSearchButton);
this.Controls.Add(this.label10);
this.Controls.Add(this.searchBox);
this.Controls.Add(this.groupBox1);
this.Name = "IzvForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Извещения";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.izvGridView)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label errorLabel;
private System.Windows.Forms.Button SelectIzvButton;
private System.Windows.Forms.Button createIzvButton;
private System.Windows.Forms.Button changeIzvButton;
private System.Windows.Forms.Label idLabel;
private System.Windows.Forms.Button ResetIzvButton;
private System.Windows.Forms.Button fileLoadButton;
private System.Windows.Forms.Button deleteIzvButton;
private System.Windows.Forms.LinkLabel linkFileLabel;
private System.Windows.Forms.TextBox ukazVnedrBox;
private System.Windows.Forms.TextBox ukazZadBox;
private System.Windows.Forms.TextBox izmNumBox;
private System.Windows.Forms.TextBox invNumBox;
private System.Windows.Forms.TextBox izvNumBox;
private System.Windows.Forms.TextBox searchBox;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Button resetSearchButton;
private System.Windows.Forms.DataGridView izvGridView;
private System.Windows.Forms.OpenFileDialog selectFileDialog;
private System.Windows.Forms.SaveFileDialog saveFileDialog;
private System.Windows.Forms.Button resetFileButton;
private System.Windows.Forms.GroupBox groupBox2;
}
}

242
IzvForm.cs Normal file

@ -0,0 +1,242 @@
using System;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
using Diplom_B.DB;
namespace Diplom_B
{
public partial class IzvForm : Form
{
private Task errDrop;
private void ShowError(string msg = null)
{
errorLabel.Text = string.IsNullOrEmpty(msg) ? "Неизвестная ошибка." : msg;
errorLabel.Visible = true;
errDrop = new Task(() =>
{
var fd = errDrop.Id;
Task.Delay(5000).Wait();
if (errDrop.Id == fd)
if (InvokeRequired) Invoke((Action)(() => { errorLabel.Visible = false; }));
else errorLabel.Visible = false;
});
errDrop.Start();
}
private string fileName = "";
private byte[] fileStruct = null;
private void UpdateLink(string name = null, byte[] strct = null)
{
var size = 23;
linkFileLabel.Text = "";
linkFileLabel.Visible = false;
fileName = name;
fileStruct = strct;
if (string.IsNullOrEmpty(fileName) || fileStruct == null || fileStruct.Length <= 0)
return;
linkFileLabel.Text = (fileName.Length > size) ? fileName.Substring(0, size - 3) + "..." : fileName;
linkFileLabel.Visible = true;
}
private void ClearBoxes()
{
idLabel.Text = "";
izvNumBox.Text = "";
invNumBox.Text = "";
izmNumBox.Text = "";
ukazZadBox.Text = "";
ukazVnedrBox.Text = "";
UpdateLink();
}
private void UpdateIzvTable(Izveschenie[] arr, bool reset_cursor = false)
{
var selected = (!reset_cursor && izvGridView.SelectedRows.Count > 0) ? izvGridView.SelectedRows[0].Index : -1;
{
var r = izvGridView.Rows;
while (r.Count > 0)
r.Remove(r[0]);
var c = izvGridView.Columns;
while (c.Count > 0)
c.Remove(c[0]);
}
{
var c = izvGridView.Columns;
c.Add("Id", "№");
c["Id"].Width = 40;
c.Add("IzvNum", "Извещение №");
c["IzvNum"].Width = 90;
c.Add("InvNum", "Инв. №");
c["InvNum"].Width = 60;
c.Add("IzmNum", "Изм. №");
c["IzmNum"].Width = 60;
c.Add("UkazZad", "Указания о заделе");
c["UkazZad"].Width = 130;
c.Add("UkazVnedr", "Указания о внедр.");
c["UkazVnedr"].Width = 130;
}
{
var r = izvGridView.Rows;
foreach (var izv in arr)
r.Add(new object[] {
izv.Id,
izv.IzvNum,
izv.InvNum,
izv.IzmNum,
izv.UkazZad,
izv.UkazVnedr
});
}
if (izvGridView.Rows.Count > 0)
izvGridView.Rows[0].Selected = true;
if (selected != -1 && selected < izvGridView.Rows.Count)
for (var i = 0; i < izvGridView.Rows.Count; i++)
izvGridView.Rows[i].Selected = (i == selected);
izvGridView_CurrentCellChanged(this, new EventArgs());
}
public IzvForm()
{
InitializeComponent();
try { UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text)); }
catch { ShowError(); }
}
private void fileLoadButton_Click(object sender, EventArgs e)
{
if (selectFileDialog.ShowDialog() == DialogResult.Cancel)
{
ShowError("Файл не выбран.");
return;
}
try
{
UpdateLink();
var fn = selectFileDialog.FileName;
if (string.IsNullOrEmpty(fn))
{
ShowError("Ошибка в названии файла.");
return;
}
UpdateLink(Path.GetFileName(fn), File.ReadAllBytes(fn));
}
catch { ShowError(); }
}
private void linkFileLabel_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(fileName) || fileStruct == null || fileStruct.Length <= 0)
{
ShowError("Ошибка файла.");
return;
}
saveFileDialog.FileName = fileName;
if (saveFileDialog.ShowDialog() == DialogResult.Cancel) return;
try { File.WriteAllBytes(saveFileDialog.FileName, fileStruct); }
catch { ShowError("Ошибка сохранения файла."); }
}
private void resetFileButton_Click(object sender, EventArgs e)
{
UpdateLink();
}
private void izvGridView_CurrentCellChanged(object sender, EventArgs e)
{
ClearBoxes();
if (izvGridView.SelectedRows.Count != 1)
return;
{
var izv = WorkDB.GetIzveschenie((int)izvGridView.SelectedRows[0].Cells[0].Value);
if (izv == null)
return;
idLabel.Text = izv.Id.ToString();
izvNumBox.Text = izv.IzvNum;
invNumBox.Text = izv.InvNum.ToString();
izmNumBox.Text = izv.IzmNum.ToString();
ukazZadBox.Text = izv.UkazZad;
ukazVnedrBox.Text = izv.UkazVnedr;
UpdateLink(izv.FileName, izv.FileStruct);
}
}
private Task filterDrop;
private void searchBox_TextChanged(object sender, EventArgs e)
{
filterDrop = new Task(() =>
{
var fd = filterDrop.Id;
Task.Delay(1000).Wait();
if (filterDrop.Id == fd)
if (InvokeRequired) Invoke((Action)(() => { UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text)); }));
else UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text));
});
filterDrop.Start();
}
private void resetSearch_Click(object sender, EventArgs e)
{
searchBox.Text = "";
filterDrop = new Task(() => { return; });
UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text));
}
private void createIzvButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(invNumBox.Text, out int invNum)) { ShowError("Ошибка инвентарный №."); return; }
if (!int.TryParse(izmNumBox.Text, out int izmNum)) { ShowError("Ошибка извещение №."); return; }
try
{
var r = new Izveschenie()
{
IzvNum = izvNumBox.Text,
InvNum = invNum,
IzmNum = izmNum,
UkazZad = ukazZadBox.Text,
UkazVnedr = ukazVnedrBox.Text,
FileName = fileName,
FileStruct = fileStruct
};
WorkDB.AddIzveschenie(r);
UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text));
}
catch { ShowError(); }
}
private void changeIzvButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(idLabel.Text, out int idRes)) { ShowError("Извещение не выбрано."); return; }
var izv = WorkDB.GetIzveschenie(idRes);
if (izv == null) { ShowError("Нет извещения в БД."); return; }
if (!int.TryParse(invNumBox.Text, out int invNum)) { ShowError("Ошибка инвентарный №."); return; }
if (!int.TryParse(izmNumBox.Text, out int izmNum)) { ShowError("Ошибка извещение №."); return; }
try
{
izv.IzvNum = izvNumBox.Text;
izv.InvNum = invNum;
izv.IzmNum = izmNum;
izv.UkazZad = ukazZadBox.Text;
izv.UkazVnedr = ukazVnedrBox.Text;
izv.FileName = fileName;
izv.FileStruct = fileStruct;
WorkDB.ChangeIzveschenie(izv);
}
catch { ShowError(); }
UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text));
}
private void deleteIzvButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(idLabel.Text, out int idRes)) { ShowError("Извещение не выбрано."); return; }
var izv = WorkDB.GetIzveschenie(idRes);
if (izv == null) { ShowError("Извещения не существует."); return; }
try
{
WorkDB.DeleteIzdelie(izv);
}
catch { ShowError(); }
UpdateIzvTable(WorkDB.ListIzveschenie(searchBox.Text));
}
private void ResetIzvButton_Click(object sender, EventArgs e)
{
ClearBoxes();
}
}
}

126
IzvForm.resx Normal file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="selectFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>154, 17</value>
</metadata>
</root>

@ -1,7 +1,7 @@
 
namespace Diplom_B namespace Diplom_B
{ {
partial class FormLogin partial class LoginForm
{ {
/// <summary> /// <summary>
/// Обязательная переменная конструктора. /// Обязательная переменная конструктора.

@ -10,9 +10,9 @@ using System.Windows.Forms;
namespace Diplom_B namespace Diplom_B
{ {
public partial class FormLogin : Form public partial class LoginForm : Form
{ {
public FormLogin() public LoginForm()
{ {
InitializeComponent(); InitializeComponent();
this.CenterToScreen(); this.CenterToScreen();

140
MainForm.Designer.cs generated Normal file

@ -0,0 +1,140 @@

namespace Diplom_B
{
partial class MainForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.button6 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Enabled = false;
this.button1.Location = new System.Drawing.Point(12, 12);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(321, 23);
this.button1.TabIndex = 0;
this.button1.Text = "Договор";
this.button1.UseVisualStyleBackColor = true;
//
// button2
//
this.button2.Location = new System.Drawing.Point(12, 41);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(321, 23);
this.button2.TabIndex = 1;
this.button2.Text = "Заказчик";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.Enabled = false;
this.button3.Location = new System.Drawing.Point(12, 70);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(321, 23);
this.button3.TabIndex = 2;
this.button3.Text = "Поставки";
this.button3.UseVisualStyleBackColor = true;
//
// button4
//
this.button4.Enabled = false;
this.button4.Location = new System.Drawing.Point(12, 99);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(321, 23);
this.button4.TabIndex = 3;
this.button4.Text = "Документы";
this.button4.UseVisualStyleBackColor = true;
//
// button5
//
this.button5.Location = new System.Drawing.Point(12, 128);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(321, 23);
this.button5.TabIndex = 4;
this.button5.Text = "Изделия";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// button6
//
this.button6.Location = new System.Drawing.Point(12, 157);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(321, 23);
this.button6.TabIndex = 5;
this.button6.Text = "Извещения";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// button7
//
this.button7.Enabled = false;
this.button7.Location = new System.Drawing.Point(12, 186);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(321, 23);
this.button7.TabIndex = 6;
this.button7.Text = "Настройки";
this.button7.UseVisualStyleBackColor = true;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(344, 224);
this.Controls.Add(this.button7);
this.Controls.Add(this.button6);
this.Controls.Add(this.button5);
this.Controls.Add(this.button4);
this.Controls.Add(this.button3);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "MainForm";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Button button7;
}
}

44
MainForm.cs Normal file

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Diplom_B
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
this.Hide();
var form = new ZakazchikForm();
form.ShowDialog();
this.Show();
}
private void button5_Click(object sender, EventArgs e)
{
this.Hide();
var form = new IzdForm();
form.ShowDialog();
this.Show();
}
private void button6_Click(object sender, EventArgs e)
{
this.Hide();
var form = new IzvForm();
form.ShowDialog();
this.Show();
}
}
}

120
MainForm.resx Normal file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

48
PostForm.Designer.cs generated Normal file

@ -0,0 +1,48 @@

namespace Diplom_B
{
partial class PostForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// PostForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Name = "PostForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
}
}

20
PostForm.cs Normal file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Diplom_B
{
public partial class PostForm : Form
{
public PostForm()
{
InitializeComponent();
}
}
}

120
PostForm.resx Normal file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -18,8 +18,8 @@ namespace Diplom_B
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
WorkDB.Init(); WorkDB.Init();
//Application.Run(new FormLogin()); //Application.Run(new LoginForm());
Application.Run(new IzdForm()); Application.Run(new MainForm());
} }
} }
} }

321
ZakazchikForm.Designer.cs generated Normal file

@ -0,0 +1,321 @@

namespace Diplom_B
{
partial class ZakazchikForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.zakGridView = new System.Windows.Forms.DataGridView();
this.resetSearchButton = new System.Windows.Forms.Button();
this.label10 = new System.Windows.Forms.Label();
this.searchBox = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.adressBox = new System.Windows.Forms.RichTextBox();
this.errorLabel = new System.Windows.Forms.Label();
this.SelectZakButton = new System.Windows.Forms.Button();
this.createZakButton = new System.Windows.Forms.Button();
this.changeZakButton = new System.Windows.Forms.Button();
this.idLabel = new System.Windows.Forms.Label();
this.resetZakButton = new System.Windows.Forms.Button();
this.deleteZakButton = new System.Windows.Forms.Button();
this.emailBox = new System.Windows.Forms.TextBox();
this.phoneBox = new System.Windows.Forms.TextBox();
this.nameBox = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.zakGridView)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// zakGridView
//
this.zakGridView.AllowUserToAddRows = false;
this.zakGridView.AllowUserToDeleteRows = false;
this.zakGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.zakGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.zakGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.zakGridView.Location = new System.Drawing.Point(324, 38);
this.zakGridView.Name = "zakGridView";
this.zakGridView.RowHeadersVisible = false;
this.zakGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.zakGridView.Size = new System.Drawing.Size(501, 292);
this.zakGridView.TabIndex = 9;
this.zakGridView.CurrentCellChanged += new System.EventHandler(this.zakGridView_CurrentCellChanged);
//
// resetSearchButton
//
this.resetSearchButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.resetSearchButton.Location = new System.Drawing.Point(750, 10);
this.resetSearchButton.Name = "resetSearchButton";
this.resetSearchButton.Size = new System.Drawing.Size(75, 23);
this.resetSearchButton.TabIndex = 8;
this.resetSearchButton.Text = "Сбросить";
this.resetSearchButton.UseVisualStyleBackColor = true;
this.resetSearchButton.Click += new System.EventHandler(this.resetSearchButton_Click);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(321, 15);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(39, 13);
this.label10.TabIndex = 7;
this.label10.Text = "Поиск";
//
// searchBox
//
this.searchBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.searchBox.Location = new System.Drawing.Point(366, 12);
this.searchBox.Name = "searchBox";
this.searchBox.Size = new System.Drawing.Size(378, 20);
this.searchBox.TabIndex = 6;
this.searchBox.TextChanged += new System.EventHandler(this.searchBox_TextChanged);
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox1.Controls.Add(this.adressBox);
this.groupBox1.Controls.Add(this.errorLabel);
this.groupBox1.Controls.Add(this.SelectZakButton);
this.groupBox1.Controls.Add(this.createZakButton);
this.groupBox1.Controls.Add(this.changeZakButton);
this.groupBox1.Controls.Add(this.idLabel);
this.groupBox1.Controls.Add(this.resetZakButton);
this.groupBox1.Controls.Add(this.deleteZakButton);
this.groupBox1.Controls.Add(this.emailBox);
this.groupBox1.Controls.Add(this.phoneBox);
this.groupBox1.Controls.Add(this.nameBox);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(303, 318);
this.groupBox1.TabIndex = 5;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Информационное окно";
//
// adressBox
//
this.adressBox.Location = new System.Drawing.Point(102, 71);
this.adressBox.Name = "adressBox";
this.adressBox.Size = new System.Drawing.Size(194, 124);
this.adressBox.TabIndex = 32;
this.adressBox.Text = "";
//
// errorLabel
//
this.errorLabel.AutoSize = true;
this.errorLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.errorLabel.ForeColor = System.Drawing.Color.Red;
this.errorLabel.Location = new System.Drawing.Point(6, 290);
this.errorLabel.Name = "errorLabel";
this.errorLabel.Size = new System.Drawing.Size(149, 13);
this.errorLabel.TabIndex = 31;
this.errorLabel.Text = "Информация об ошибке";
this.errorLabel.Visible = false;
//
// SelectZakButton
//
this.SelectZakButton.Location = new System.Drawing.Point(228, 285);
this.SelectZakButton.Name = "SelectZakButton";
this.SelectZakButton.Size = new System.Drawing.Size(68, 23);
this.SelectZakButton.TabIndex = 30;
this.SelectZakButton.Text = "Выбрать";
this.SelectZakButton.UseVisualStyleBackColor = true;
this.SelectZakButton.Visible = false;
//
// createZakButton
//
this.createZakButton.Location = new System.Drawing.Point(228, 256);
this.createZakButton.Name = "createZakButton";
this.createZakButton.Size = new System.Drawing.Size(68, 23);
this.createZakButton.TabIndex = 26;
this.createZakButton.Text = "Создать";
this.createZakButton.UseVisualStyleBackColor = true;
this.createZakButton.Click += new System.EventHandler(this.createZakButton_Click);
//
// changeZakButton
//
this.changeZakButton.Location = new System.Drawing.Point(154, 256);
this.changeZakButton.Name = "changeZakButton";
this.changeZakButton.Size = new System.Drawing.Size(68, 23);
this.changeZakButton.TabIndex = 27;
this.changeZakButton.Text = "Изменить";
this.changeZakButton.UseVisualStyleBackColor = true;
this.changeZakButton.Click += new System.EventHandler(this.changeZakButton_Click);
//
// idLabel
//
this.idLabel.AutoSize = true;
this.idLabel.Location = new System.Drawing.Point(102, 22);
this.idLabel.Name = "idLabel";
this.idLabel.Size = new System.Drawing.Size(69, 13);
this.idLabel.TabIndex = 24;
this.idLabel.Text = "Номер в БД";
//
// resetZakButton
//
this.resetZakButton.Location = new System.Drawing.Point(6, 256);
this.resetZakButton.Name = "resetZakButton";
this.resetZakButton.Size = new System.Drawing.Size(68, 23);
this.resetZakButton.TabIndex = 29;
this.resetZakButton.Text = "Сбросить";
this.resetZakButton.UseVisualStyleBackColor = true;
this.resetZakButton.Click += new System.EventHandler(this.resetZakButton_Click);
//
// deleteZakButton
//
this.deleteZakButton.Location = new System.Drawing.Point(80, 256);
this.deleteZakButton.Name = "deleteZakButton";
this.deleteZakButton.Size = new System.Drawing.Size(68, 23);
this.deleteZakButton.TabIndex = 28;
this.deleteZakButton.Text = "Удалить";
this.deleteZakButton.UseVisualStyleBackColor = true;
this.deleteZakButton.Click += new System.EventHandler(this.deleteZakButton_Click);
//
// emailBox
//
this.emailBox.Location = new System.Drawing.Point(102, 227);
this.emailBox.Name = "emailBox";
this.emailBox.Size = new System.Drawing.Size(194, 20);
this.emailBox.TabIndex = 19;
//
// phoneBox
//
this.phoneBox.Location = new System.Drawing.Point(102, 201);
this.phoneBox.Name = "phoneBox";
this.phoneBox.Size = new System.Drawing.Size(194, 20);
this.phoneBox.TabIndex = 18;
//
// nameBox
//
this.nameBox.Location = new System.Drawing.Point(102, 45);
this.nameBox.Name = "nameBox";
this.nameBox.Size = new System.Drawing.Size(194, 20);
this.nameBox.TabIndex = 17;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(35, 230);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(54, 13);
this.label5.TabIndex = 13;
this.label5.Text = "Эл. почта";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(37, 204);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(52, 13);
this.label4.TabIndex = 12;
this.label4.Text = "Телефон";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(51, 74);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(38, 13);
this.label3.TabIndex = 11;
this.label3.Text = "Адрес";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 48);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(83, 13);
this.label2.TabIndex = 10;
this.label2.Text = "Наименование";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(71, 22);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(18, 13);
this.label1.TabIndex = 9;
this.label1.Text = "№";
//
// ZakazchikForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(837, 342);
this.Controls.Add(this.zakGridView);
this.Controls.Add(this.resetSearchButton);
this.Controls.Add(this.label10);
this.Controls.Add(this.searchBox);
this.Controls.Add(this.groupBox1);
this.Name = "ZakazchikForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Заказчики";
((System.ComponentModel.ISupportInitialize)(this.zakGridView)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.DataGridView zakGridView;
private System.Windows.Forms.Button resetSearchButton;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox searchBox;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label errorLabel;
private System.Windows.Forms.Button SelectZakButton;
private System.Windows.Forms.Button createZakButton;
private System.Windows.Forms.Button changeZakButton;
private System.Windows.Forms.Label idLabel;
private System.Windows.Forms.Button resetZakButton;
private System.Windows.Forms.Button deleteZakButton;
private System.Windows.Forms.TextBox emailBox;
private System.Windows.Forms.TextBox phoneBox;
private System.Windows.Forms.TextBox nameBox;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.RichTextBox adressBox;
}
}

174
ZakazchikForm.cs Normal file

@ -0,0 +1,174 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Diplom_B.DB;
namespace Diplom_B
{
public partial class ZakazchikForm : Form
{
private Task errDrop;
private void ShowError(string msg = null)
{
errorLabel.Text = string.IsNullOrEmpty(msg) ? "Неизвестная ошибка." : msg;
errorLabel.Visible = true;
errDrop = new Task(() =>
{
var fd = errDrop.Id;
Task.Delay(5000).Wait();
if (errDrop.Id == fd)
if (InvokeRequired) Invoke((Action)(() => { errorLabel.Visible = false; }));
else errorLabel.Visible = false;
});
errDrop.Start();
}
private void ClearBoxes()
{
idLabel.Text = "";
nameBox.Text = "";
adressBox.Text = "";
phoneBox.Text = "";
emailBox.Text = "";
}
private void UpdateZakTable(Zakazchik[] arr, bool reset_cursor = false)
{
var selected = (!reset_cursor && zakGridView.SelectedRows.Count > 0) ? zakGridView.SelectedRows[0].Index : -1;
{
var r = zakGridView.Rows;
while (r.Count > 0)
r.Remove(r[0]);
var c = zakGridView.Columns;
while (c.Count > 0)
c.Remove(c[0]);
}
{
var c = zakGridView.Columns;
c.Add("Id", "№");
c["Id"].Width = 40;
c.Add("Name", "Наименование");
c["Name"].Width = 120;
c.Add("Adress", "Адрес");
c["Adress"].Width = 120;
c["Adress"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
c.Add("Phone", "Телефон");
c["Phone"].Width = 100;
c.Add("Email", "Эл. почта");
c["Email"].Width = 100;
}
{
var r = zakGridView.Rows;
foreach (var zak in arr)
r.Add(new object[] {
zak.Id,
zak.Name,
zak.Adress,
zak.Phone,
zak.Email
});
}
if (zakGridView.Rows.Count > 0)
zakGridView.Rows[0].Selected = true;
if (selected != -1 && selected < zakGridView.Rows.Count)
for (var i = 0; i < zakGridView.Rows.Count; i++)
zakGridView.Rows[i].Selected = (i == selected);
zakGridView_CurrentCellChanged(this, new EventArgs());
}
public ZakazchikForm()
{
InitializeComponent();
try { UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text)); }
catch { ShowError(); }
}
private void zakGridView_CurrentCellChanged(object sender, EventArgs e)
{
ClearBoxes();
if (zakGridView.SelectedRows.Count != 1)
return;
{
var zak = WorkDB.GetZakazchik((int)zakGridView.SelectedRows[0].Cells[0].Value);
if (zak == null)
return;
idLabel.Text = zak.Id.ToString();
nameBox.Text = zak.Name;
adressBox.Text = zak.Adress;
phoneBox.Text = zak.Phone;
emailBox.Text = zak.Email;
}
}
private Task filterDrop;
private void searchBox_TextChanged(object sender, EventArgs e)
{
filterDrop = new Task(() =>
{
var fd = filterDrop.Id;
Task.Delay(1000).Wait();
if (filterDrop.Id == fd)
if (InvokeRequired) Invoke((Action)(() => { UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text)); }));
else UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text));
});
filterDrop.Start();
}
private void resetSearchButton_Click(object sender, EventArgs e)
{
searchBox.Text = "";
filterDrop = new Task(() => { return; });
UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text));
}
private void createZakButton_Click(object sender, EventArgs e)
{
try
{
var r = new Zakazchik()
{
Name = nameBox.Text,
Adress = adressBox.Text,
Phone = phoneBox.Text,
Email = emailBox.Text
};
WorkDB.AddZakazchik(r);
UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text));
}
catch { ShowError(); }
}
private void changeZakButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(idLabel.Text, out int idRes)) { ShowError("Заказчик не выбран."); return; }
var zak = WorkDB.GetZakazchik(idRes);
if (zak == null) { ShowError("Нет заказчика в БД."); return; }
try
{
zak.Name = nameBox.Text;
zak.Adress = adressBox.Text;
zak.Phone = phoneBox.Text;
zak.Email = emailBox.Text;
WorkDB.ChangeZakazchik(zak);
}
catch { ShowError(); }
UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text));
}
private void deleteZakButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(idLabel.Text, out int idRes)) { ShowError("Заказчик не выбран."); return; }
var zak = WorkDB.GetZakazchik(idRes);
if (zak == null) { ShowError("Заказчик не существует."); return; }
try { WorkDB.DeleteZakazchik(zak); }
catch { ShowError(); }
UpdateZakTable(WorkDB.ListZakazchik(searchBox.Text));
}
private void resetZakButton_Click(object sender, EventArgs e)
{
ClearBoxes();
}
}
}

120
ZakazchikForm.resx Normal file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="Diplom B.application" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="Diplom B" asmv2:product="Diplom B" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" />
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="Diplom B.exe.manifest" size="18124">
<assemblyIdentity name="Diplom B.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>rE/jugvoQMrEt9ohknbuvR2+qaLMyx8m2q2zmChWNos=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
</asmv1:assembly>

Binary file not shown.

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

@ -1,311 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="Diplom B.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<application />
<entryPoint>
<assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<commandLine file="Diplom B.exe" parameters="" />
</entryPoint>
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!--
Параметры манифеста UAC
Если нужно изменить уровень контроля учетных записей Windows, замените
узел requestedExecutionLevel одним из следующих значений.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Если нужно использовать виртуализацию файлов и реестра для обратной
совместимости, удалите узел requestedExecutionLevel.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentOS>
<osVersionInfo>
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
</dependency>
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="28640">
<assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>FfTt+FyJWYbZD0MePnxGXM0cNe7rBzQ76uk7QQJ8Jjs=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Data.Sqlite.dll" size="70136">
<assemblyIdentity name="Microsoft.Data.Sqlite" version="1.1.0.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>NbH55b2iv2DMS6kjNzvR7dSrOGWqQUrU47npsluJZmQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.EntityFrameworkCore.dll" size="908264">
<assemblyIdentity name="Microsoft.EntityFrameworkCore" version="1.1.6.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>zt4G1TcFhn3xwqVVgeRKNuvSDTXihcfVfbDL03zn2+I=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.EntityFrameworkCore.Relational.dll" size="562152">
<assemblyIdentity name="Microsoft.EntityFrameworkCore.Relational" version="1.1.6.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>FnJ3UxXohLiSIeBPF6l9IR4UFDPbSsrPblqjTEmnZAA=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.EntityFrameworkCore.Relational.Design.dll" size="82408">
<assemblyIdentity name="Microsoft.EntityFrameworkCore.Relational.Design" version="1.1.6.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>OHyLB82aaXIqpWDYmmw72cfU/WSp9HV+nPZET1grMhQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.EntityFrameworkCore.Sqlite.dll" size="71656">
<assemblyIdentity name="Microsoft.EntityFrameworkCore.Sqlite" version="1.1.6.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>yLDtoxyEow2MPsy493yRvyuhhuKKpiUe1sVGJ5RYUgo=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.EntityFrameworkCore.Sqlite.Design.dll" size="50152">
<assemblyIdentity name="Microsoft.EntityFrameworkCore.Sqlite.Design" version="1.1.6.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>hKM7uUGpmxM1cS4caUPQLCmMFFns7P6TdrKBfR75GC4=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Caching.Abstractions.dll" size="25600">
<assemblyIdentity name="Microsoft.Extensions.Caching.Abstractions" version="1.1.1.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>EMk5YJNmzJxl6havefvF3TXYn/YImCHGlI3c1fqBpPM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Caching.Memory.dll" size="30200">
<assemblyIdentity name="Microsoft.Extensions.Caching.Memory" version="1.1.1.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ZWf7AZB+1uiXNhHorht9zlnYz4iK3pCcKZV58F3FIGc=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.DependencyInjection.dll" size="45048">
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" version="1.1.0.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>rF525DqztrzKLqGjQ59E5nDllPWYKacwx7TNuXPpIYQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.DependencyInjection.Abstractions.dll" size="35320">
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.1.0.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>MxVDd3tVqduiDlNKTMG4c72T1X/RKozVwNWmdMGBZWo=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Logging.dll" size="18432">
<assemblyIdentity name="Microsoft.Extensions.Logging" version="1.1.1.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ljvFAFGG5dFo5S5+rWLHtTAcv6Mcx8YC2lo8sUbrJ/A=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Logging.Abstractions.dll" size="44032">
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" version="1.1.1.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>L6SX5wIYpcLNXSB0PzYeZeQMx9s1gzatUczSrFLY6X8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Options.dll" size="22016">
<assemblyIdentity name="Microsoft.Extensions.Options" version="1.1.1.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>RcJ917b1kyHaLle4b7HJ9TnAgN497nI5XtguLBnAMg8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Primitives.dll" size="29176">
<assemblyIdentity name="Microsoft.Extensions.Primitives" version="1.1.0.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>z1pWUM0r5+wXvIp8EdSn3ntQmQ7IRnX+WfEFu5KipfM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Remotion.Linq.dll" size="181248">
<assemblyIdentity name="Remotion.Linq" version="2.1.0.0" publicKeyToken="FEE00910D6E5F53B" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>e8SeWV49VhHGKgQPxr5RKceOjbAqeeMKAmGIPSw8BqM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Collections.Immutable.dll" size="180984">
<assemblyIdentity name="System.Collections.Immutable" version="1.2.1.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>NPlUmewZSn+Cv6Hh1JYgSHBSBL0ibs9qzOBE05sdbO8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Diagnostics.DiagnosticSource.dll" size="35760">
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" version="4.0.1.1" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>maRkT0/hR/PYvefftCw+3Y8oNxkm8HnY3xhl11kwoEA=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Interactive.Async.dll" size="185600">
<assemblyIdentity name="System.Interactive.Async" version="3.0.0.0" publicKeyToken="94BC3704CDDFC263" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>DrlvSBaewXYyVEBXNgPUgZLyjdqxs6FlwEgLHSOgPeM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Runtime.CompilerServices.Unsafe.dll" size="20768">
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" version="4.0.2.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>XLdU4oREJRavBdAaO1fyK3GQHeDqOWuSBk/8anC2WfI=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<file name="Diplom B.exe.config" size="189">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>R+Wg8QGvQVHX8T0ta/qbhH1bXkqY0fRnS3wBV3J0bN8=</dsig:DigestValue>
</hash>
</file>
<file name="x64\sqlite3.dll" size="1680384">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>zdbEB7YTcSgOScmis0r07AawGRmT5u3o77kjWZCDeXc=</dsig:DigestValue>
</hash>
</file>
<file name="x86\sqlite3.dll" size="826775">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>bersL5bIocIGmKk93UaNVEe1WsQm3Dge712RsZlTu3s=</dsig:DigestValue>
</hash>
</file>
</asmv1:assembly>

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -1,441 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.EntityFrameworkCore.Relational.Design</name>
</assembly>
<members>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CandidateNamingService">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CandidateNamingService.GenerateCandidateIdentifier(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CandidateNamingService.GetDependentEndCandidateNavigationPropertyName(Microsoft.EntityFrameworkCore.Metadata.IForeignKey)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CandidateNamingService.GetPrincipalEndCandidateNavigationPropertyName(Microsoft.EntityFrameworkCore.Metadata.IForeignKey,System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpNamer`1">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpNamer`1.NameCache">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpNamer`1.#ctor(System.Func{`0,System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpNamer`1.GetName(`0)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUniqueNamer`1">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUniqueNamer`1.#ctor(System.Func{`0,System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUniqueNamer`1.#ctor(System.Func{`0,System.String},System.Collections.Generic.IEnumerable{System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUniqueNamer`1.GetName(`0)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="P:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.Instance">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.DelimitString(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.EscapeString(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.EscapeVerbatimString(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Byte[])">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Boolean)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Int32)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Int64)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Decimal)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Single)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Double)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.TimeSpan)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.DateTime)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.DateTimeOffset)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Guid)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateVerbatimStringLiteral(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateLiteral(System.Object)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.IsCSharpKeyword(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateCSharpIdentifier(System.String,System.Collections.Generic.ICollection{System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GenerateCSharpIdentifier(System.String,System.Collections.Generic.ICollection{System.String},System.Func{System.String,System.Collections.Generic.ICollection{System.String},System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.Uniquifier(System.String,System.Collections.Generic.ICollection{System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.GetTypeName(System.Type)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpUtilities.IsValidIdentifier(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.DbDataReaderExtension">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.DbDataReaderExtension.GetValueOrDefault``1(System.Data.Common.DbDataReader,System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.IInternalDatabaseModelFactory">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.IInternalDatabaseModelFactory.Create(System.Data.Common.DbConnection,Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames.Prefix">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames.UseProviderMethodName">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames.ColumnOrdinal">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames.DependentEndNavigation">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames.PrincipalEndNavigation">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingAnnotationNames.EntityTypeErrors">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.#ctor(System.String)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="P:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.Instance">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.UseProviderMethodName">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.ColumnOrdinal">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.DependentEndNavigation">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.PrincipalEndNavigation">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Scaffolding.Metadata.Internal.ScaffoldingFullAnnotationNames.EntityTypeErrors">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignLoggerExtensions.LogDebug(Microsoft.Extensions.Logging.ILogger,Microsoft.EntityFrameworkCore.Infrastructure.RelationalDesignEventId,System.Func{System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.CannotFindTypeMappingForColumn(System.Object,System.Object)">
<summary>
Could not find type mapping for column '{columnName}' with data type '{dateType}'. Skipping column.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ForeignKeyScaffoldErrorPrincipalKeyNotFound(System.Object,System.Object,System.Object)">
<summary>
Could not scaffold the foreign key '{foreignKeyName}'. A key for '{columnsList}' was not found in the principal entity type '{principalEntityType}'.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ForeignKeyScaffoldErrorPrincipalTableNotFound(System.Object)">
<summary>
Could not scaffold the foreign key '{foreignKeyName}'. The referenced table could not be found. This most likely occurred because the referenced table was excluded from scaffolding.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ForeignKeyScaffoldErrorPrincipalTableScaffoldingError(System.Object,System.Object)">
<summary>
Could not scaffold the foreign key '{foreignKeyName}'. The referenced table '{principalTableName}' could not be scaffolded.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ForeignKeyScaffoldErrorPropertyNotFound(System.Object,System.Object)">
<summary>
Could not scaffold the foreign key '{foreignKeyName}'. The following columns in the foreign key could not be scaffolded: {columnNames}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.PrimaryKeyErrorPropertyNotFound(System.Object,System.Object)">
<summary>
Could not scaffold the primary key for '{tableName}'. The following columns in the primary key could not be scaffolded: {columnNames}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.MissingPrimaryKey(System.Object)">
<summary>
Unable to identify the primary key for table '{tableName}'.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ProviderReturnedNullModel(System.Object)">
<summary>
Metadata model returned should not be null. Provider: {providerTypeName}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ReadOnlyFiles(System.Object,System.Object)">
<summary>
No files generated in directory {outputDirectoryName}. The following file(s) already exist and must be made writeable to continue: {readOnlyFiles}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.UnableToGenerateEntityType(System.Object)">
<summary>
Unable to generate entity type for table '{tableName}'.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.UnableToScaffoldIndexMissingProperty(System.Object,System.Object)">
<summary>
Unable to scaffold the index '{indexName}'. The following columns could not be scaffolded: {columnNames}.
</summary>
</member>
<member name="P:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.MissingUseProviderMethodNameAnnotation">
<summary>
Cannot scaffold the connection string. The "UseProviderMethodName" is missing from the scaffolding model.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.ExistingFiles(System.Object,System.Object)">
<summary>
The following file(s) already exist in directory {outputDirectoryName}: {existingFiles}. Use the Force flag to overwrite these files.
</summary>
</member>
<member name="P:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.SequencesRequireName">
<summary>
Sequence name cannot be null or empty. Entity Framework cannot model a sequence that does not have a name.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.BadSequenceType(System.Object,System.Object)">
<summary>
For sequence '{sequenceName}'. Unable to scaffold because it uses an unsupported type: '{typeName}'.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.MissingSchema(System.Object)">
<summary>
Unable to find a schema in the database matching the selected schema {schema}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.RelationalDesignStrings.MissingTable(System.Object)">
<summary>
Unable to find a table in the database matching the selected table {table}.
</summary>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

@ -1,173 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.EntityFrameworkCore.Sqlite.Design</name>
</assembly>
<members>
<member name="T:Microsoft.EntityFrameworkCore.Infrastructure.SqliteDesignEventId">
<summary>
Values that are used as the eventId when logging messages from the SQLite Design Entity Framework Core
components.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Infrastructure.SqliteDesignEventId.IndexMissingColumnNameWarning">
<summary>
Column name empty on index.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Infrastructure.SqliteDesignEventId.ForeignKeyReferencesMissingColumn">
<summary>
Principal column not found.
</summary>
</member>
<member name="F:Microsoft.EntityFrameworkCore.Infrastructure.SqliteDesignEventId.SchemasNotSupportedWarning">
<summary>
Using schema selections warning.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDatabaseModelFactory">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDatabaseModelFactory.#ctor(Microsoft.Extensions.Logging.ILogger{Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDatabaseModelFactory})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="P:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDatabaseModelFactory.Logger">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDatabaseModelFactory.Create(System.String,Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDatabaseModelFactory.Create(System.Data.Common.DbConnection,Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDesignTimeServices">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteDesignTimeServices.ConfigureDesignTimeServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteScaffoldingModelFactory">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteScaffoldingModelFactory.#ctor(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.EntityFrameworkCore.Storage.IRelationalTypeMapper,Microsoft.EntityFrameworkCore.Scaffolding.IDatabaseModelFactory,Microsoft.EntityFrameworkCore.Scaffolding.Internal.CandidateNamingService)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteScaffoldingModelFactory.Create(System.String,Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet)">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqliteTableSelectionSetExtensions.Allows(Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet,System.String)">
<summary>
Tests whether the table is allowed by the <see cref="T:Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet" /> and
updates the <see cref="T:Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet" />'s <see cref="T:Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet.Selection" />(s)
to mark that they have been matched.
</summary>
<param name="tableSet"> the <see cref="T:Microsoft.EntityFrameworkCore.Scaffolding.TableSelectionSet" /> to test </param>
<param name="tableName"> name of the database table to check </param>
<returns> whether or not the table is allowed </returns>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Internal.SqliteDesignLoggerExtensions">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignLoggerExtensions.LogWarning(Microsoft.Extensions.Logging.ILogger,Microsoft.EntityFrameworkCore.Infrastructure.SqliteDesignEventId,System.Func{System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignLoggerExtensions.LogDebug(Microsoft.Extensions.Logging.ILogger,Microsoft.EntityFrameworkCore.Infrastructure.SqliteDesignEventId,System.Func{System.String})">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="T:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings">
<summary>
This API supports the Entity Framework Core infrastructure and is not intended to be used
directly from your code. This API may change or be removed in future releases.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.ColumnNameEmptyOnIndex(System.Object,System.Object)">
<summary>
Found a column on index {indexName} on table {tableName} with an empty or null name. Not including column in index.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.FoundColumn(System.Object,System.Object,System.Object,System.Object,System.Object,System.Object,System.Object)">
<summary>
Found column on table: {tableName}, column name: {columnName}, data type: {dataType}, ordinal: {ordinal}, not nullable: {isNotNullable}, primary key ordinal: {primaryKeyOrdinal}, default value: {defaultValue}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.FoundForeignKeyColumn(System.Object,System.Object,System.Object,System.Object,System.Object,System.Object,System.Object)">
<summary>
Found foreign key column on table: {tableName}, id: {id}, principal table: {principalTableName}, column name: {columnName}, principal column name: {principalColumnName}, delete action: {deleteAction}, ordinal: {ordinal}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.FoundIndex(System.Object,System.Object,System.Object)">
<summary>
Found index with name: {indexName}, table: {tableName}, is unique: {isUnique}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.FoundIndexColumn(System.Object,System.Object,System.Object,System.Object)">
<summary>
Found index column on index {indexName} on table {tableName}, column name: {columnName}, ordinal: {ordinal}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.FoundTable(System.Object)">
<summary>
Found table with name: {name}.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.PrincipalColumnNotFound(System.Object,System.Object,System.Object,System.Object)">
<summary>
For foreign key with identity {id} on table {tableName}, unable to find the column called {principalColumnName} on the foreign key's principal table, {principalTableName}. Skipping foreign key.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.PrincipalTableNotFound(System.Object,System.Object,System.Object)">
<summary>
For foreign key with identity {id} on table {tableName}, unable to find the principal table {principalTableName}. Either the principal table is missing from the database or it was not included in the selection set. Skipping foreign key.
</summary>
</member>
<member name="M:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.TableNotInSelectionSet(System.Object)">
<summary>
Table {tableName} is not included in the selection set. Skipping.
</summary>
</member>
<member name="P:Microsoft.EntityFrameworkCore.Internal.SqliteDesignStrings.UsingSchemaSelectionsWarning">
<summary>
Scaffolding from a SQLite database will ignore any schema selection arguments.
</summary>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,406 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Caching.Abstractions</name>
</assembly>
<members>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.SetPriority(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.CacheItemPriority)">
<summary>
Sets the priority for keeping the cache entry in the cache during a memory pressure tokened cleanup.
</summary>
<param name="entry"></param>
<param name="priority"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.AddExpirationToken(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken)">
<summary>
Expire the cache entry if the given <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> expires.
</summary>
<param name="entry">The <see cref="T:Microsoft.Extensions.Caching.Memory.ICacheEntry"/>.</param>
<param name="expirationToken">The <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> that causes the cache entry to expire.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.SetAbsoluteExpiration(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan)">
<summary>
Sets an absolute expiration time, relative to now.
</summary>
<param name="entry"></param>
<param name="relative"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.SetAbsoluteExpiration(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset)">
<summary>
Sets an absolute expiration date for the cache entry.
</summary>
<param name="entry"></param>
<param name="absolute"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.SetSlidingExpiration(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan)">
<summary>
Sets how long the cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
<param name="entry"></param>
<param name="offset"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.RegisterPostEvictionCallback(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate)">
<summary>
The given callback will be fired after the cache entry is evicted from the cache.
</summary>
<param name="entry"></param>
<param name="callback"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.RegisterPostEvictionCallback(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object)">
<summary>
The given callback will be fired after the cache entry is evicted from the cache.
</summary>
<param name="entry"></param>
<param name="callback"></param>
<param name="state"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.SetValue(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object)">
<summary>
Sets the value of the cache entry.
</summary>
<param name="entry"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.CacheEntryExtensions.SetOptions(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions)">
<summary>
Applies the values of an existing <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions"/> to the entry.
</summary>
<param name="entry"></param>
<param name="options"></param>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.CacheItemPriority">
<summary>
Specifies how items are prioritized for preservation during a memory pressure triggered cleanup.
</summary>
</member>
<member name="F:Microsoft.Extensions.Caching.Memory.EvictionReason.Removed">
<summary>
Manually
</summary>
</member>
<member name="F:Microsoft.Extensions.Caching.Memory.EvictionReason.Replaced">
<summary>
Overwritten
</summary>
</member>
<member name="F:Microsoft.Extensions.Caching.Memory.EvictionReason.Expired">
<summary>
Timed out
</summary>
</member>
<member name="F:Microsoft.Extensions.Caching.Memory.EvictionReason.TokenExpired">
<summary>
Event
</summary>
</member>
<member name="F:Microsoft.Extensions.Caching.Memory.EvictionReason.Capacity">
<summary>
GC, overflow
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.ICacheEntry">
<summary>
Represents an entry in the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> implementation.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.Key">
<summary>
Gets the key of the cache entry.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.Value">
<summary>
Gets or set the value of the cache entry.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.AbsoluteExpiration">
<summary>
Gets or sets an absolute expiration date for the cache entry.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.AbsoluteExpirationRelativeToNow">
<summary>
Gets or sets an absolute expiration time, relative to now.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.SlidingExpiration">
<summary>
Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.ExpirationTokens">
<summary>
Gets the <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> instances which cause the cache entry to expire.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.PostEvictionCallbacks">
<summary>
Gets or sets the callbacks will be fired after the cache entry is evicted from the cache.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.ICacheEntry.Priority">
<summary>
Gets or sets the priority for keeping the cache entry in the cache during a
memory pressure triggered cleanup. The default is <see cref="F:Microsoft.Extensions.Caching.Memory.CacheItemPriority.Normal"/>.
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.IMemoryCache">
<summary>
Represents a local in-memory cache whose values are not serialized.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.IMemoryCache.TryGetValue(System.Object,System.Object@)">
<summary>
Gets the item associated with this key if present.
</summary>
<param name="key">An object identifying the requested entry.</param>
<param name="value">The located value or null.</param>
<returns>True if the key was found.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.IMemoryCache.CreateEntry(System.Object)">
<summary>
Create or overwrite an entry in the cache.
</summary>
<param name="key">An object identifying the entry.</param>
<returns>The newly created <see cref="T:Microsoft.Extensions.Caching.Memory.ICacheEntry"/> instance.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.IMemoryCache.Remove(System.Object)">
<summary>
Removes the object associated with the given key.
</summary>
<param name="key">An object identifying the entry.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.SetPriority(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.CacheItemPriority)">
<summary>
Sets the priority for keeping the cache entry in the cache during a memory pressure tokened cleanup.
</summary>
<param name="options"></param>
<param name="priority"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.AddExpirationToken(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken)">
<summary>
Expire the cache entry if the given <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> expires.
</summary>
<param name="options">The <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions"/>.</param>
<param name="expirationToken">The <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> that causes the cache entry to expire.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.SetAbsoluteExpiration(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan)">
<summary>
Sets an absolute expiration time, relative to now.
</summary>
<param name="options"></param>
<param name="relative"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.SetAbsoluteExpiration(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset)">
<summary>
Sets an absolute expiration date for the cache entry.
</summary>
<param name="options"></param>
<param name="absolute"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.SetSlidingExpiration(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan)">
<summary>
Sets how long the cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
<param name="options"></param>
<param name="offset"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.RegisterPostEvictionCallback(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate)">
<summary>
The given callback will be fired after the cache entry is evicted from the cache.
</summary>
<param name="options"></param>
<param name="callback"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions.RegisterPostEvictionCallback(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object)">
<summary>
The given callback will be fired after the cache entry is evicted from the cache.
</summary>
<param name="options"></param>
<param name="callback"></param>
<param name="state"></param>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.AbsoluteExpiration">
<summary>
Gets or sets an absolute expiration date for the cache entry.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.AbsoluteExpirationRelativeToNow">
<summary>
Gets or sets an absolute expiration time, relative to now.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.SlidingExpiration">
<summary>
Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.ExpirationTokens">
<summary>
Gets the <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> instances which cause the cache entry to expire.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.PostEvictionCallbacks">
<summary>
Gets or sets the callbacks will be fired after the cache entry is evicted from the cache.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.Priority">
<summary>
Gets or sets the priority for keeping the cache entry in the cache during a
memory pressure triggered cleanup. The default is <see cref="F:Microsoft.Extensions.Caching.Memory.CacheItemPriority.Normal"/>.
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.PostEvictionDelegate">
<summary>
Signature of the callback which gets called when a cache entry expires.
</summary>
<param name="key"></param>
<param name="value"></param>
<param name="reason">The <see cref="T:Microsoft.Extensions.Caching.Memory.EvictionReason"/>.</param>
<param name="state">The information that was passed when registering the callback.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryExtensions.SetAbsoluteExpiration(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan)">
<summary>
Sets an absolute expiration time, relative to now.
</summary>
<param name="options"></param>
<param name="relative"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryExtensions.SetAbsoluteExpiration(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset)">
<summary>
Sets an absolute expiration date for the cache entry.
</summary>
<param name="options"></param>
<param name="absolute"></param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryExtensions.SetSlidingExpiration(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan)">
<summary>
Sets how long the cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
<param name="options"></param>
<param name="offset"></param>
</member>
<member name="P:Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions.AbsoluteExpiration">
<summary>
Gets or sets an absolute expiration date for the cache entry.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions.AbsoluteExpirationRelativeToNow">
<summary>
Gets or sets an absolute expiration time, relative to now.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions.SlidingExpiration">
<summary>
Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions">
<summary>
Extension methods for setting data in an <see cref="T:Microsoft.Extensions.Caching.Distributed.IDistributedCache" />.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.Set(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.Byte[])">
<summary>
Sets a sequence of bytes in the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to store the data in.</param>
<param name="value">The data to store in the cache.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key"/> or <paramref name="value"/> is null.</exception>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.SetAsync(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.Byte[])">
<summary>
Asynchronously sets a sequence of bytes in the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to store the data in.</param>
<param name="value">The data to store in the cache.</param>
<returns>A task that represents the asynchronous set operation.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key"/> or <paramref name="value"/> is null.</exception>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.SetString(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.String)">
<summary>
Sets a string in the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to store the data in.</param>
<param name="value">The data to store in the cache.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key"/> or <paramref name="value"/> is null.</exception>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.SetString(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.String,Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions)">
<summary>
Sets a string in the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to store the data in.</param>
<param name="value">The data to store in the cache.</param>
<param name="options">The cache options for the entry.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key"/> or <paramref name="value"/> is null.</exception>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.SetStringAsync(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.String)">
<summary>
Asynchronously sets a string in the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to store the data in.</param>
<param name="value">The data to store in the cache.</param>
<returns>A task that represents the asynchronous set operation.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key"/> or <paramref name="value"/> is null.</exception>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.SetStringAsync(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.String,Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions)">
<summary>
Asynchronously sets a string in the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to store the data in.</param>
<param name="value">The data to store in the cache.</param>
<param name="options">The cache options for the entry.</param>
<returns>A task that represents the asynchronous set operation.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key"/> or <paramref name="value"/> is null.</exception>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.GetString(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String)">
<summary>
Gets a string from the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to get the stored data for.</param>
<returns>The string value from the stored cache key.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions.GetStringAsync(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String)">
<summary>
Asynchronously gets a string from the specified cache with the specified key.
</summary>
<param name="cache">The cache in which to store the data.</param>
<param name="key">The key to get the stored data for.</param>
<returns>A task that gets the string value from the stored cache key.</returns>
</member>
<member name="T:Microsoft.Extensions.Internal.ISystemClock">
<summary>
Abstracts the system clock to facilitate testing.
</summary>
</member>
<member name="P:Microsoft.Extensions.Internal.ISystemClock.UtcNow">
<summary>
Retrieves the current system time in UTC.
</summary>
</member>
<member name="T:Microsoft.Extensions.Internal.SystemClock">
<summary>
Provides access to the normal system clock.
</summary>
</member>
<member name="P:Microsoft.Extensions.Internal.SystemClock.UtcNow">
<summary>
Retrieves the current system time in UTC.
</summary>
</member>
</members>
</doc>

@ -1,138 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Caching.Memory</name>
</assembly>
<members>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.AbsoluteExpiration">
<summary>
Gets or sets an absolute expiration date for the cache entry.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.AbsoluteExpirationRelativeToNow">
<summary>
Gets or sets an absolute expiration time, relative to now.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.SlidingExpiration">
<summary>
Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.ExpirationTokens">
<summary>
Gets the <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> instances which cause the cache entry to expire.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.PostEvictionCallbacks">
<summary>
Gets or sets the callbacks will be fired after the cache entry is evicted from the cache.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.Priority">
<summary>
Gets or sets the priority for keeping the cache entry in the cache during a
memory pressure triggered cleanup. The default is <see cref="F:Microsoft.Extensions.Caching.Memory.CacheItemPriority.Normal"/>.
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.MemoryCache">
<summary>
An implementation of <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> using a dictionary to
store its entries.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Caching.Memory.MemoryCacheOptions})">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCache"/> instance.
</summary>
<param name="optionsAccessor">The options of the cache.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Finalize">
<summary>
Cleans up the background collection events.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCache.Count">
<summary>
Gets the count of the current entries for diagnostic purposes.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.CreateEntry(System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.TryGetValue(System.Object,System.Object@)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Remove(System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.DoMemoryPreassureCollection(System.Object)">
This is called after a Gen2 garbage collection. We assume this means there was memory pressure.
Remove at least 10% of the total entries (or estimated memory?).
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Compact(System.Double)">
Remove at least the given percentage (0.10 for 10%) of the total entries (or estimated memory?), according to the following policy:
1. Remove all expired items.
2. Bucket by CacheItemPriority.
?. Least recently used objects.
?. Items with the soonest absolute expiration.
?. Items with the soonest sliding expiration.
?. Larger objects - estimated by object graph size, inaccurate.
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.ExpirePriorityBucket(System.Int32,System.Collections.Generic.List{Microsoft.Extensions.Caching.Memory.CacheEntry},System.Collections.Generic.List{Microsoft.Extensions.Caching.Memory.CacheEntry})">
Policy:
?. Least recently used objects.
?. Items with the soonest absolute expiration.
?. Items with the soonest sliding expiration.
?. Larger objects - estimated by object graph size, inaccurate.
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions">
<summary>
Extension methods for setting up memory cache related services in an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a non distributed in memory implementation of <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> to the
<see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{Microsoft.Extensions.Caching.Memory.MemoryCacheOptions})">
<summary>
Adds a non distributed in memory implementation of <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> to the
<see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<param name="setupAction">
The <see cref="T:System.Action`1"/> to configure the provided <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions"/>.
</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a default implementation of <see cref="T:Microsoft.Extensions.Caching.Distributed.IDistributedCache"/> that stores items in memory
to the <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />. Frameworks that require a distributed cache to work
can safely add this dependency as part of their dependency list to ensure that there is at least
one implementation available.
</summary>
<remarks>
<see cref="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)"/> should only be used in single
server scenarios as this cache stores items in memory and doesn't expand across multiple machines.
For those scenarios it is recommended to use a proper distributed cache that can expand across
multiple machines.
</remarks>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="T:Microsoft.Extensions.Internal.GcNotification">
<summary>
Registers a callback that fires each time a Gen2 garbage collection occurs,
presumably due to memory pressure.
For this to work no components can have a reference to the instance.
</summary>
</member>
</members>
</doc>

@ -1,663 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.DependencyInjection.Abstractions</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.DependencyInjection.ActivatorUtilities">
<summary>
Helper code for the various activator services.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(System.IServiceProvider,System.Type,System.Object[])">
<summary>
Instantiate a type with constructor arguments provided directly and/or from an <see cref="T:System.IServiceProvider"/>.
</summary>
<param name="provider">The service provider used to resolve dependencies</param>
<param name="instanceType">The type to activate</param>
<param name="parameters">Constructor arguments not provided by the <paramref name="provider"/>.</param>
<returns>An activated object of type instanceType</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateFactory(System.Type,System.Type[])">
<summary>
Create a delegate that will instantiate a type with constructor arguments provided directly
and/or from an <see cref="T:System.IServiceProvider"/>.
</summary>
<param name="instanceType">The type to activate</param>
<param name="argumentTypes">
The types of objects, in order, that will be passed to the returned function as its second parameter
</param>
<returns>
A factory that will instantiate instanceType using an <see cref="T:System.IServiceProvider"/>
and an argument array containing objects matching the types defined in argumentTypes
</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance``1(System.IServiceProvider,System.Object[])">
<summary>
Instantiate a type with constructor arguments provided directly and/or from an <see cref="T:System.IServiceProvider"/>.
</summary>
<typeparam name="T">The type to activate</typeparam>
<param name="provider">The service provider used to resolve dependencies</param>
<param name="parameters">Constructor arguments not provided by the <paramref name="provider"/>.</param>
<returns>An activated object of type T</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetServiceOrCreateInstance``1(System.IServiceProvider)">
<summary>
Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly.
</summary>
<typeparam name="T">The type of the service</typeparam>
<param name="provider">The service provider used to resolve dependencies</param>
<returns>The resolved service or created instance</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetServiceOrCreateInstance(System.IServiceProvider,System.Type)">
<summary>
Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly.
</summary>
<param name="provider">The service provider</param>
<param name="type">The type of the service</param>
<returns>The resolved service or created instance</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.IServiceCollection">
<summary>
Specifies the contract for a collection of service descriptors.
</summary>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.IServiceProviderFactory`1">
<summary>
Provides an extension point for creating a container specific builder and an <see cref="T:System.IServiceProvider"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.IServiceProviderFactory`1.CreateBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Creates a container builder from an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The collection of services</param>
<returns>A container builder that can be used to create an <see cref="T:System.IServiceProvider"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.IServiceProviderFactory`1.CreateServiceProvider(`0)">
<summary>
Creates an <see cref="T:System.IServiceProvider"/> from the container builder.
</summary>
<param name="containerBuilder">The container builder</param>
<returns>An <see cref="T:System.IServiceProvider"/></returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.IServiceScope">
<summary>
The <see cref="M:System.IDisposable.Dispose"/> method ends the scope lifetime. Once Dispose
is called, any scoped services that have been resolved from
<see cref="P:Microsoft.Extensions.DependencyInjection.IServiceScope.ServiceProvider"/> will be
disposed.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.IServiceScope.ServiceProvider">
<summary>
The <see cref="T:System.IServiceProvider"/> used to resolve dependencies from the scope.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.IServiceScopeFactory.CreateScope">
<summary>
Create an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceScope"/> which
contains an <see cref="T:System.IServiceProvider"/> used to resolve dependencies from a
newly created scope.
</summary>
<returns>
An <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceScope"/> controlling the
lifetime of the scope. Once this is disposed, any scoped services that have been resolved
from the <see cref="P:Microsoft.Extensions.DependencyInjection.IServiceScope.ServiceProvider"/>
will also be disposed.
</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ISupportRequiredService">
<summary>
Optional contract used by <see cref="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService``1(System.IServiceProvider)"/>
to resolve services if supported by <see cref="T:System.IServiceProvider"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ISupportRequiredService.GetRequiredService(System.Type)">
<summary>
Gets service of type <paramref name="serviceType"/> from the <see cref="T:System.IServiceProvider"/> implementing
this interface.
</summary>
<param name="serviceType">An object that specifies the type of service object to get.</param>
<returns>A service object of type <paramref name="serviceType"/>.
Throws an exception if the <see cref="T:System.IServiceProvider"/> cannot create the object.</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ObjectFactory">
<summary>
The result of <see cref="M:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateFactory(System.Type,System.Type[])"/>.
</summary>
<param name="serviceProvider">The <see cref="T:System.IServiceProvider"/> to get service arguments from.</param>
<param name="arguments">Additional constructor arguments.</param>
<returns>The instantiated type.</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions">
<summary>
Extension methods for adding services to an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type)">
<summary>
Adds a transient service of the type specified in <paramref name="serviceType"/> with an
implementation of the type specified in <paramref name="implementationType"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationType">The implementation type of the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func{System.IServiceProvider,System.Object})">
<summary>
Adds a transient service of the type specified in <paramref name="serviceType"/> with a
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient``2(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a transient service of the type specified in <typeparamref name="TService"/> with an
implementation type specified in <typeparamref name="TImplementation"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<typeparam name="TImplementation">The type of the implementation to use.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type)">
<summary>
Adds a transient service of the type specified in <paramref name="serviceType"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register and the implementation to use.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient``1(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a transient service of the type specified in <typeparamref name="TService"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func{System.IServiceProvider,``0})">
<summary>
Adds a transient service of the type specified in <typeparamref name="TService"/> with a
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddTransient``2(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func{System.IServiceProvider,``1})">
<summary>
Adds a transient service of the type specified in <typeparamref name="TService"/> with an
implementation type specified in <typeparamref name="TImplementation" /> using the
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<typeparam name="TImplementation">The type of the implementation to use.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type)">
<summary>
Adds a scoped service of the type specified in <paramref name="serviceType"/> with an
implementation of the type specified in <paramref name="implementationType"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationType">The implementation type of the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func{System.IServiceProvider,System.Object})">
<summary>
Adds a scoped service of the type specified in <paramref name="serviceType"/> with a
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped``2(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a scoped service of the type specified in <typeparamref name="TService"/> with an
implementation type specified in <typeparamref name="TImplementation"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<typeparam name="TImplementation">The type of the implementation to use.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type)">
<summary>
Adds a scoped service of the type specified in <paramref name="serviceType"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register and the implementation to use.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped``1(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a scoped service of the type specified in <typeparamref name="TService"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func{System.IServiceProvider,``0})">
<summary>
Adds a scoped service of the type specified in <typeparamref name="TService"/> with a
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped``2(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func{System.IServiceProvider,``1})">
<summary>
Adds a scoped service of the type specified in <typeparamref name="TService"/> with an
implementation type specified in <typeparamref name="TImplementation" /> using the
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<typeparam name="TImplementation">The type of the implementation to use.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type)">
<summary>
Adds a singleton service of the type specified in <paramref name="serviceType"/> with an
implementation of the type specified in <paramref name="implementationType"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationType">The implementation type of the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func{System.IServiceProvider,System.Object})">
<summary>
Adds a singleton service of the type specified in <paramref name="serviceType"/> with a
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton``2(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a singleton service of the type specified in <typeparamref name="TService"/> with an
implementation type specified in <typeparamref name="TImplementation"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<typeparam name="TImplementation">The type of the implementation to use.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type)">
<summary>
Adds a singleton service of the type specified in <paramref name="serviceType"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register and the implementation to use.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton``1(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a singleton service of the type specified in <typeparamref name="TService"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func{System.IServiceProvider,``0})">
<summary>
Adds a singleton service of the type specified in <typeparamref name="TService"/> with a
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton``2(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func{System.IServiceProvider,``1})">
<summary>
Adds a singleton service of the type specified in <typeparamref name="TService"/> with an
implementation type specified in <typeparamref name="TImplementation" /> using the
factory specified in <paramref name="implementationFactory"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<typeparam name="TService">The type of the service to add.</typeparam>
<typeparam name="TImplementation">The type of the implementation to use.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationFactory">The factory that creates the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object)">
<summary>
Adds a singleton service of the type specified in <paramref name="serviceType"/> with an
instance specified in <paramref name="implementationInstance"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="serviceType">The type of the service to register.</param>
<param name="implementationInstance">The instance of the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,``0)">
<summary>
Adds a singleton service of the type specified in <typeparamref name="TService" /> with an
instance specified in <paramref name="implementationInstance"/> to the
specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the service to.</param>
<param name="implementationInstance">The instance of the service.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<seealso cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.#ctor(System.Type,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLifetime)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> with the specified <paramref name="implementationType"/>.
</summary>
<param name="serviceType">The <see cref="T:System.Type"/> of the service.</param>
<param name="implementationType">The <see cref="T:System.Type"/> implementing the service.</param>
<param name="lifetime">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceLifetime"/> of the service.</param>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.#ctor(System.Type,System.Object)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> with the specified <paramref name="instance"/>
as a <see cref="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton"/>.
</summary>
<param name="serviceType">The <see cref="T:System.Type"/> of the service.</param>
<param name="instance">The instance implementing the service.</param>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.#ctor(System.Type,System.Func{System.IServiceProvider,System.Object},Microsoft.Extensions.DependencyInjection.ServiceLifetime)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> with the specified <paramref name="factory"/>.
</summary>
<param name="serviceType">The <see cref="T:System.Type"/> of the service.</param>
<param name="factory">A factory used for creating service instances.</param>
<param name="lifetime">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceLifetime"/> of the service.</param>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Lifetime">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ServiceType">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ImplementationType">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ImplementationInstance">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ImplementationFactory">
<inheritdoc />
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceLifetime">
<summary>
Specifies the lifetime of a service in an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
</member>
<member name="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton">
<summary>
Specifies that a single instance of the service will be created.
</summary>
</member>
<member name="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped">
<summary>
Specifies that a new instance of the service will be created for each scope.
</summary>
<remarks>
In ASP.NET Core applications a scope is created around each server request.
</remarks>
</member>
<member name="F:Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient">
<summary>
Specifies that a new instance of the service will be created every time it is requested.
</summary>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions">
<summary>
Extension methods for getting services from an <see cref="T:System.IServiceProvider" />.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService``1(System.IServiceProvider)">
<summary>
Get service of type <typeparamref name="T"/> from the <see cref="T:System.IServiceProvider"/>.
</summary>
<typeparam name="T">The type of service object to get.</typeparam>
<param name="provider">The <see cref="T:System.IServiceProvider"/> to retrieve the service object from.</param>
<returns>A service object of type <typeparamref name="T"/> or null if there is no such service.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(System.IServiceProvider,System.Type)">
<summary>
Get service of type <paramref name="serviceType"/> from the <see cref="T:System.IServiceProvider"/>.
</summary>
<param name="provider">The <see cref="T:System.IServiceProvider"/> to retrieve the service object from.</param>
<param name="serviceType">An object that specifies the type of service object to get.</param>
<returns>A service object of type <paramref name="serviceType"/>.</returns>
<exception cref="T:System.InvalidOperationException">There is no service of type <paramref name="serviceType"/>.</exception>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService``1(System.IServiceProvider)">
<summary>
Get service of type <typeparamref name="T"/> from the <see cref="T:System.IServiceProvider"/>.
</summary>
<typeparam name="T">The type of service object to get.</typeparam>
<param name="provider">The <see cref="T:System.IServiceProvider"/> to retrieve the service object from.</param>
<returns>A service object of type <typeparamref name="T"/>.</returns>
<exception cref="T:System.InvalidOperationException">There is no service of type <typeparamref name="T"/>.</exception>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetServices``1(System.IServiceProvider)">
<summary>
Get an enumeration of services of type <typeparamref name="T"/> from the <see cref="T:System.IServiceProvider"/>.
</summary>
<typeparam name="T">The type of service object to get.</typeparam>
<param name="provider">The <see cref="T:System.IServiceProvider"/> to retrieve the services from.</param>
<returns>An enumeration of services of type <typeparamref name="T"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetServices(System.IServiceProvider,System.Type)">
<summary>
Get an enumeration of services of type <paramref name="serviceType"/> from the <see cref="T:System.IServiceProvider"/>.
</summary>
<param name="provider">The <see cref="T:System.IServiceProvider"/> to retrieve the services from.</param>
<param name="serviceType">An object that specifies the type of service object to get.</param>
<returns>An enumeration of services of type <paramref name="serviceType"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.CreateScope(System.IServiceProvider)">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceScope"/> that can be used to resolve scoped services.
</summary>
<param name="provider">The <see cref="T:System.IServiceProvider"/> to create the scope from.</param>
<returns>A <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceScope"/> that can be used to resolve scoped services.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.Add(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)">
<summary>
Adds the specified <paramref name="descriptor"/> to the <paramref name="collection"/>.
</summary>
<param name="collection">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptor">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>.</param>
<returns>A reference to the current instance of <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.Add(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable{Microsoft.Extensions.DependencyInjection.ServiceDescriptor})">
<summary>
Adds a sequence of <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> to the <paramref name="collection"/>.
</summary>
<param name="collection">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptors">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>s to add.</param>
<returns>A reference to the current instance of <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAdd(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)">
<summary>
Adds the specified <paramref name="descriptor"/> to the <paramref name="collection"/> if the
service type hasn't been already registered.
</summary>
<param name="collection">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptor">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>.</param>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAdd(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable{Microsoft.Extensions.DependencyInjection.ServiceDescriptor})">
<summary>
Adds the specified <paramref name="descriptors"/> to the <paramref name="collection"/> if the
service type hasn't been already registered.
</summary>
<param name="collection">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptors">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>s.</param>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddEnumerable(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)">
<summary>
Adds a <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> if an existing descriptor with the same
<see cref="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ServiceType"/> and an implementation that does not already exist
in <paramref name="services.."/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptor">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>.</param>
<remarks>
Use <see cref="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddEnumerable(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)"/> when registing a service implementation of a
service type that
supports multiple registrations of the same service type. Using
<see cref="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.Add(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)"/> is not idempotent and can add
duplicate
<see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> instances if called twice. Using
<see cref="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddEnumerable(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)"/> will prevent registration
of multiple implementation types.
</remarks>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddEnumerable(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable{Microsoft.Extensions.DependencyInjection.ServiceDescriptor})">
<summary>
Adds the specified <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>s if an existing descriptor with the same
<see cref="P:Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ServiceType"/> and an implementation that does not already exist
in <paramref name="services.."/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptors">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/>s.</param>
<remarks>
Use <see cref="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddEnumerable(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)"/> when registing a service
implementation of a service type that
supports multiple registrations of the same service type. Using
<see cref="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.Add(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)"/> is not idempotent and can add
duplicate
<see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> instances if called twice. Using
<see cref="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddEnumerable(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)"/> will prevent registration
of multiple implementation types.
</remarks>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.Replace(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor)">
<summary>
Removes the first service in <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> with the same service type
as <paramref name="descriptor"/> and adds <paramef name="descriptor"/> to the collection.
</summary>
<param name="collection">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
<param name="descriptor">The <see cref="T:Microsoft.Extensions.DependencyInjection.ServiceDescriptor"/> to replace with.</param>
<returns></returns>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.AmbiguousConstructorMatch">
<summary>
Multiple constructors accepting all given argument types have been found in type '{0}'. There should only be one applicable constructor.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.FormatAmbiguousConstructorMatch(System.Object)">
<summary>
Multiple constructors accepting all given argument types have been found in type '{0}'. There should only be one applicable constructor.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.CannotLocateImplementation">
<summary>
Unable to locate implementation '{0}' for service '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.FormatCannotLocateImplementation(System.Object,System.Object)">
<summary>
Unable to locate implementation '{0}' for service '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.CannotResolveService">
<summary>
Unable to resolve service for type '{0}' while attempting to activate '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.FormatCannotResolveService(System.Object,System.Object)">
<summary>
Unable to resolve service for type '{0}' while attempting to activate '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.NoConstructorMatch">
<summary>
A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.FormatNoConstructorMatch(System.Object)">
<summary>
A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.NoServiceRegistered">
<summary>
No service for type '{0}' has been registered.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.FormatNoServiceRegistered(System.Object)">
<summary>
No service for type '{0}' has been registered.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.TryAddIndistinguishableTypeToEnumerable">
<summary>
Implementation type cannot be '{0}' because it is indistinguishable from other services registered for '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Abstractions.Resources.FormatTryAddIndistinguishableTypeToEnumerable(System.Object,System.Object)">
<summary>
Implementation type cannot be '{0}' because it is indistinguishable from other services registered for '{1}'.
</summary>
</member>
</members>
</doc>

@ -1,174 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.DependencyInjection</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceCollection">
<summary>
Default implementation of <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceCollection.Count">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.ServiceCollection.IsReadOnly">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollection.Clear">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollection.Contains(Microsoft.Extensions.DependencyInjection.ServiceDescriptor)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollection.CopyTo(Microsoft.Extensions.DependencyInjection.ServiceDescriptor[],System.Int32)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollection.Remove(Microsoft.Extensions.DependencyInjection.ServiceDescriptor)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollection.GetEnumerator">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Creates an <see cref="T:System.IServiceProvider"/> containing services from the provided <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> containing service descriptors.</param>
<returns>The<see cref="T:System.IServiceProvider"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Boolean)">
<summary>
Creates an <see cref="T:System.IServiceProvider"/> containing services from the provided <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>
optionaly enabling scope validation.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> containing service descriptors.</param>
<param name="validateScopes">
<c>true</c> to perform check verifying that scoped services never gets resolved from root provider; otherwise <c>false</c>.
</param>
<returns>The<see cref="T:System.IServiceProvider"/>.</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceProvider">
<summary>
The default IServiceProvider.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(System.Type)">
<summary>
Gets the service object of the specified type.
</summary>
<param name="serviceType"></param>
<returns></returns>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.AmbigiousConstructorException">
<summary>
Unable to activate type '{0}'. The following constructors are ambigious:
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatAmbigiousConstructorException(System.Object)">
<summary>
Unable to activate type '{0}'. The following constructors are ambigious:
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.CannotResolveService">
<summary>
Unable to resolve service for type '{0}' while attempting to activate '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatCannotResolveService(System.Object,System.Object)">
<summary>
Unable to resolve service for type '{0}' while attempting to activate '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.CircularDependencyException">
<summary>
A circular dependency was detected for the service of type '{0}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatCircularDependencyException(System.Object)">
<summary>
A circular dependency was detected for the service of type '{0}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.UnableToActivateTypeException">
<summary>
No constructor for type '{0}' can be instantiated using services from the service container and default values.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatUnableToActivateTypeException(System.Object)">
<summary>
No constructor for type '{0}' can be instantiated using services from the service container and default values.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.OpenGenericServiceRequiresOpenGenericImplementation">
<summary>
Open generic service type '{0}' requires registering an open generic implementation type.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatOpenGenericServiceRequiresOpenGenericImplementation(System.Object)">
<summary>
Open generic service type '{0}' requires registering an open generic implementation type.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.TypeCannotBeActivated">
<summary>
Cannot instantiate implementation type '{0}' for service type '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatTypeCannotBeActivated(System.Object,System.Object)">
<summary>
Cannot instantiate implementation type '{0}' for service type '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.NoConstructorMatch">
<summary>
A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatNoConstructorMatch(System.Object)">
<summary>
A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.ScopedInSingletonException">
<summary>
Cannot consume {2} service '{0}' from {3} '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatScopedInSingletonException(System.Object,System.Object,System.Object,System.Object)">
<summary>
Cannot consume {2} service '{0}' from {3} '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.ScopedResolvedFromRootException">
<summary>
Cannot resolve '{0}' from root provider because it requires {2} service '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatScopedResolvedFromRootException(System.Object,System.Object,System.Object)">
<summary>
Cannot resolve '{0}' from root provider because it requires {2} service '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.DependencyInjection.Resources.DirectScopedResolvedFromRootException">
<summary>
Cannot resolve {1} service '{0}' from root provider.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.Resources.FormatDirectScopedResolvedFromRootException(System.Object,System.Object)">
<summary>
Cannot resolve {1} service '{0}' from root provider.
</summary>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceLookup.InstanceService">
<summary>
Summary description for InstanceService
</summary>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceLookup.IServiceCallSite">
<summary>
Summary description for IServiceCallSite
</summary>
</member>
</members>
</doc>

@ -1,507 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Logging.Abstractions</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Logging.ILogger">
<summary>
Represents a type used to perform logging.
</summary>
<remarks>Aggregates most logging patterns to a single method.</remarks>
</member>
<member name="M:Microsoft.Extensions.Logging.ILogger.Log``1(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,``0,System.Exception,System.Func{``0,System.Exception,System.String})">
<summary>
Writes a log entry.
</summary>
<param name="logLevel">Entry will be written on this level.</param>
<param name="eventId">Id of the event.</param>
<param name="state">The entry to be written. Can be also an object.</param>
<param name="exception">The exception related to this entry.</param>
<param name="formatter">Function to create a <c>string</c> message of the <paramref name="state"/> and <paramref name="exception"/>.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.ILogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel)">
<summary>
Checks if the given <paramref name="logLevel"/> is enabled.
</summary>
<param name="logLevel">level to be checked.</param>
<returns><c>true</c> if enabled.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.ILogger.BeginScope``1(``0)">
<summary>
Begins a logical operation scope.
</summary>
<param name="state">The identifier for the scope.</param>
<returns>An IDisposable that ends the logical operation scope on dispose.</returns>
</member>
<member name="T:Microsoft.Extensions.Logging.ILoggerFactory">
<summary>
Represents a type used to configure the logging system and create instances of <see cref="T:Microsoft.Extensions.Logging.ILogger"/> from
the registered <see cref="T:Microsoft.Extensions.Logging.ILoggerProvider"/>s.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.ILoggerFactory.CreateLogger(System.String)">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Logging.ILogger"/> instance.
</summary>
<param name="categoryName">The category name for messages produced by the logger.</param>
<returns>The <see cref="T:Microsoft.Extensions.Logging.ILogger"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.ILoggerFactory.AddProvider(Microsoft.Extensions.Logging.ILoggerProvider)">
<summary>
Adds an <see cref="T:Microsoft.Extensions.Logging.ILoggerProvider"/> to the logging system.
</summary>
<param name="provider">The <see cref="T:Microsoft.Extensions.Logging.ILoggerProvider"/>.</param>
</member>
<member name="T:Microsoft.Extensions.Logging.ILogger`1">
<summary>
A generic interface for logging where the category name is derived from the specified
<typeparamref name="TCategoryName"/> type name.
Generally used to enable activation of a named <see cref="T:Microsoft.Extensions.Logging.ILogger"/> from dependency injection.
</summary>
<typeparam name="TCategoryName">The type who's name is used for the logger category name.</typeparam>
</member>
<member name="T:Microsoft.Extensions.Logging.ILoggerProvider">
<summary>
Represents a type that can create instances of <see cref="T:Microsoft.Extensions.Logging.ILogger"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.ILoggerProvider.CreateLogger(System.String)">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Logging.ILogger"/> instance.
</summary>
<param name="categoryName">The category name for messages produced by the logger.</param>
<returns></returns>
</member>
<member name="T:Microsoft.Extensions.Logging.LoggerExtensions">
<summary>
ILogger extension methods for common scenarios.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogDebug(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.Exception,System.String,System.Object[])">
<summary>
Formats and writes a debug log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="exception">The exception to log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogDebug(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.String,System.Object[])">
<summary>
Formats and writes a debug log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogDebug(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats and writes a debug log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogTrace(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.Exception,System.String,System.Object[])">
<summary>
Formats and writes a trace log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="exception">The exception to log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogTrace(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.String,System.Object[])">
<summary>
Formats and writes a trace log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogTrace(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats and writes a trace log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogInformation(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.Exception,System.String,System.Object[])">
<summary>
Formats and writes an informational log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="exception">The exception to log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogInformation(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.String,System.Object[])">
<summary>
Formats and writes an informational log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogInformation(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats and writes an informational log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogWarning(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.Exception,System.String,System.Object[])">
<summary>
Formats and writes a warning log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="exception">The exception to log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogWarning(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.String,System.Object[])">
<summary>
Formats and writes a warning log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogWarning(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats and writes a warning log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogError(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.Exception,System.String,System.Object[])">
<summary>
Formats and writes an error log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="exception">The exception to log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogError(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.String,System.Object[])">
<summary>
Formats and writes an error log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogError(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats and writes an error log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogCritical(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.Exception,System.String,System.Object[])">
<summary>
Formats and writes a critical log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="exception">The exception to log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogCritical(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Logging.EventId,System.String,System.Object[])">
<summary>
Formats and writes a critical log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="eventId">The event id associated with the log.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.LogCritical(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats and writes a critical log message.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to write to.</param>
<param name="message">Format string of the log message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerExtensions.BeginScope(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[])">
<summary>
Formats the message and creates a scope.
</summary>
<param name="logger">The <see cref="T:Microsoft.Extensions.Logging.ILogger"/> to create the scope in.</param>
<param name="messageFormat">Format string of the scope message.</param>
<param name="args">An object array that contains zero or more objects to format.</param>
<returns>A disposable scope object. Can be null.</returns>
</member>
<member name="T:Microsoft.Extensions.Logging.LoggerFactoryExtensions">
<summary>
ILoggerFactory extension methods for common scenarios.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerFactoryExtensions.CreateLogger``1(Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Creates a new ILogger instance using the full name of the given type.
</summary>
<typeparam name="T">The type.</typeparam>
<param name="factory">The factory.</param>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerFactoryExtensions.CreateLogger(Microsoft.Extensions.Logging.ILoggerFactory,System.Type)">
<summary>
Creates a new ILogger instance using the full name of the given type.
</summary>
<param name="factory">The factory.</param>
<param name="type">The type.</param>
</member>
<member name="T:Microsoft.Extensions.Logging.LoggerMessage">
<summary>
Creates delegates which can be later cached to log messages in a performant way.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.DefineScope(System.String)">
<summary>
Creates a delegate which can be invoked to create a log scope.
</summary>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log scope.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.DefineScope``1(System.String)">
<summary>
Creates a delegate which can be invoked to create a log scope.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log scope.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.DefineScope``2(System.String)">
<summary>
Creates a delegate which can be invoked to create a log scope.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log scope.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.DefineScope``3(System.String)">
<summary>
Creates a delegate which can be invoked to create a log scope.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<typeparam name="T3">The type of the third parameter passed to the named format string.</typeparam>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log scope.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define``1(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define``2(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define``3(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<typeparam name="T3">The type of the third parameter passed to the named format string.</typeparam>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define``4(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<typeparam name="T3">The type of the third parameter passed to the named format string.</typeparam>
<typeparam name="T4">The type of the fourth parameter passed to the named format string.</typeparam>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define``5(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<typeparam name="T3">The type of the third parameter passed to the named format string.</typeparam>
<typeparam name="T4">The type of the fourth parameter passed to the named format string.</typeparam>
<typeparam name="T5">The type of the fifth parameter passed to the named format string.</typeparam>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerMessage.Define``6(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,System.String)">
<summary>
Creates a delegate which can be invoked for logging a message.
</summary>
<typeparam name="T1">The type of the first parameter passed to the named format string.</typeparam>
<typeparam name="T2">The type of the second parameter passed to the named format string.</typeparam>
<typeparam name="T3">The type of the third parameter passed to the named format string.</typeparam>
<typeparam name="T4">The type of the fourth parameter passed to the named format string.</typeparam>
<typeparam name="T5">The type of the fifth parameter passed to the named format string.</typeparam>
<typeparam name="T6">The type of the sixth parameter passed to the named format string.</typeparam>
<param name="logLevel">The <see cref="T:Microsoft.Extensions.Logging.LogLevel"/></param>
<param name="eventId">The event id</param>
<param name="formatString">The named format string</param>
<returns>A delegate which when invoked creates a log message.</returns>
</member>
<member name="T:Microsoft.Extensions.Logging.Logger`1">
<summary>
Delegates to a new <see cref="T:Microsoft.Extensions.Logging.ILogger"/> instance using the full name of the given type, created by the
provided <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/>.
</summary>
<typeparam name="T">The type.</typeparam>
</member>
<member name="M:Microsoft.Extensions.Logging.Logger`1.#ctor(Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Logging.Logger`1"/>.
</summary>
<param name="factory">The factory.</param>
</member>
<member name="T:Microsoft.Extensions.Logging.LogLevel">
<summary>
Defines logging severity levels.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.Trace">
<summary>
Logs that contain the most detailed messages. These messages may contain sensitive application data.
These messages are disabled by default and should never be enabled in a production environment.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.Debug">
<summary>
Logs that are used for interactive investigation during development. These logs should primarily contain
information useful for debugging and have no long-term value.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.Information">
<summary>
Logs that track the general flow of the application. These logs should have long-term value.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.Warning">
<summary>
Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the
application execution to stop.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.Error">
<summary>
Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a
failure in the current activity, not an application-wide failure.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.Critical">
<summary>
Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires
immediate attention.
</summary>
</member>
<member name="F:Microsoft.Extensions.Logging.LogLevel.None">
<summary>
Not used for writing log messages. Specifies that a logging category should not write any messages.
</summary>
</member>
<member name="T:Microsoft.Extensions.Logging.Abstractions.NullLogger">
<summary>
Minimalistic logger that does nothing.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.NullLogger.BeginScope``1(``0)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.NullLogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.NullLogger.Log``1(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,``0,System.Exception,System.Func{``0,System.Exception,System.String})">
<inheritdoc />
</member>
<member name="T:Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider">
<summary>
Provider for the <see cref="T:Microsoft.Extensions.Logging.Abstractions.NullLogger"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider.CreateLogger(System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider.Dispose">
<inheritdoc />
</member>
<member name="T:Microsoft.Extensions.Logging.Abstractions.Internal.NullScope">
<summary>
An empty scope without any logic
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.Internal.NullScope.Dispose">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.Logging.Abstractions.Resource.UnexpectedNumberOfNamedParameters">
<summary>
The format string '{0}' does not have the expected number of named parameters. Expected {1} parameter(s) but found {2} parameter(s).
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.Abstractions.Resource.FormatUnexpectedNumberOfNamedParameters(System.Object,System.Object,System.Object)">
<summary>
The format string '{0}' does not have the expected number of named parameters. Expected {1} parameter(s) but found {2} parameter(s).
</summary>
</member>
<member name="T:Microsoft.Extensions.Logging.Internal.FormattedLogValues">
<summary>
LogValues to enable formatting options supported by <see cref="M:string.Format"/>.
This also enables using {NamedformatItem} in the format string.
</summary>
</member>
<member name="T:Microsoft.Extensions.Logging.Internal.LogValuesFormatter">
<summary>
Formatter to convert the named format items like {NamedformatItem} to <see cref="M:string.Format"/> format.
</summary>
</member>
</members>
</doc>

@ -1,31 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Logging</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Logging.LoggerFactory">
<summary>
Summary description for LoggerFactory
</summary>
</member>
<member name="M:Microsoft.Extensions.Logging.LoggerFactory.CheckDisposed">
<summary>
Check if the factory has been disposed.
</summary>
<returns>True when <see cref="M:Microsoft.Extensions.Logging.LoggerFactory.Dispose"/> as been called</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions">
<summary>
Extension methods for setting up logging services in an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions.AddLogging(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds logging services to the specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
</members>
</doc>

@ -1,246 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Options</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Options.ConfigureOptions`1">
<summary>
Implementation of IConfigureOptions.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.ConfigureOptions`1.#ctor(System.Action{`0})">
<summary>
Constructor.
</summary>
<param name="action">The action to register.</param>
</member>
<member name="P:Microsoft.Extensions.Options.ConfigureOptions`1.Action">
<summary>
The configuration action.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.ConfigureOptions`1.Configure(`0)">
<summary>
Invokes the registered configure Action.
</summary>
<param name="options"></param>
</member>
<member name="T:Microsoft.Extensions.Options.IConfigureOptions`1">
<summary>
Represents something that configures the TOptions type.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.IConfigureOptions`1.Configure(`0)">
<summary>
Invoked to configure a TOptions instance.
</summary>
<param name="options">The options instance to configure.</param>
</member>
<member name="T:Microsoft.Extensions.Options.IOptions`1">
<summary>
Used to retreive configured TOptions instances.
</summary>
<typeparam name="TOptions">The type of options being requested.</typeparam>
</member>
<member name="P:Microsoft.Extensions.Options.IOptions`1.Value">
<summary>
The configured TOptions instance.
</summary>
</member>
<member name="T:Microsoft.Extensions.Options.IOptionsChangeTokenSource`1">
<summary>
Used to fetch IChangeTokens used for tracking options changes.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.IOptionsChangeTokenSource`1.GetChangeToken">
<summary>
Returns a IChangeToken which can be used to register a change notification callback.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.Extensions.Options.IOptionsMonitor`1">
<summary>
Used for notifications when TOptions instances change.
</summary>
<typeparam name="TOptions">The options type.</typeparam>
</member>
<member name="P:Microsoft.Extensions.Options.IOptionsMonitor`1.CurrentValue">
<summary>
Returns the current TOptions instance.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.IOptionsMonitor`1.OnChange(System.Action{`0})">
<summary>
Registers a listener to be called whenever TOptions changes.
</summary>
<param name="listener">The action to be invoked when TOptions has changed.</param>
<returns>An IDisposable which should be disposed to stop listening for changes.</returns>
</member>
<member name="T:Microsoft.Extensions.Options.IOptionsSnapshot`1">
<summary>
Used to access the value of TOptions for the lifetime of a request.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="P:Microsoft.Extensions.Options.IOptionsSnapshot`1.Value">
<summary>
Returns the value of the TOptions which will be computed once
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.Extensions.Options.Options">
<summary>
Helper class.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.Options.Create``1(``0)">
<summary>
Creates a wrapper around an instance of TOptions to return itself as an IOptions.
</summary>
<typeparam name="TOptions"></typeparam>
<param name="options"></param>
<returns></returns>
</member>
<member name="T:Microsoft.Extensions.Options.OptionsManager`1">
<summary>
Implementation of IOptions.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.OptionsManager`1.#ctor(System.Collections.Generic.IEnumerable{Microsoft.Extensions.Options.IConfigureOptions{`0}})">
<summary>
Initializes a new instance with the specified options configurations.
</summary>
<param name="setups">The configuration actions to run.</param>
</member>
<member name="P:Microsoft.Extensions.Options.OptionsManager`1.Value">
<summary>
The configured options instance.
</summary>
</member>
<member name="T:Microsoft.Extensions.Options.OptionsMonitor`1">
<summary>
Implementation of IOptionsMonitor.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.OptionsMonitor`1.#ctor(System.Collections.Generic.IEnumerable{Microsoft.Extensions.Options.IConfigureOptions{`0}},System.Collections.Generic.IEnumerable{Microsoft.Extensions.Options.IOptionsChangeTokenSource{`0}})">
<summary>
Constructor.
</summary>
<param name="setups">The configuration actions to run on an options instance.</param>
<param name="sources">The sources used to listen for changes to the options instance.</param>
</member>
<member name="P:Microsoft.Extensions.Options.OptionsMonitor`1.CurrentValue">
<summary>
The present value of the options.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.OptionsMonitor`1.OnChange(System.Action{`0})">
<summary>
Registers a listener to be called whenever TOptions changes.
</summary>
<param name="listener">The action to be invoked when TOptions has changed.</param>
<returns>An IDisposable which should be disposed to stop listening for changes.</returns>
</member>
<member name="T:Microsoft.Extensions.Options.OptionsSnapshot`1">
<summary>
Implementation of IOptionsSnapshot.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.OptionsSnapshot`1.#ctor(Microsoft.Extensions.Options.IOptionsMonitor{`0})">
<summary>
Initializes a new instance.
</summary>
<param name="monitor">The monitor to fetch the options value from.</param>
</member>
<member name="P:Microsoft.Extensions.Options.OptionsSnapshot`1.Value">
<summary>
The configured options instance.
</summary>
</member>
<member name="T:Microsoft.Extensions.Options.OptionsWrapper`1">
<summary>
IOptions wrapper that returns the options instance.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.OptionsWrapper`1.#ctor(`0)">
<summary>
Intializes the wrapper with the options instance to return.
</summary>
<param name="options">The options instance to return.</param>
</member>
<member name="P:Microsoft.Extensions.Options.OptionsWrapper`1.Value">
<summary>
The options instance.
</summary>
</member>
<member name="P:Microsoft.Extensions.Options.Resources.Error_CannotActivateAbstractOrInterface">
<summary>
Cannot create instance of type '{0}' because it is either abstract or an interface.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.Resources.FormatError_CannotActivateAbstractOrInterface(System.Object)">
<summary>
Cannot create instance of type '{0}' because it is either abstract or an interface.
</summary>
</member>
<member name="P:Microsoft.Extensions.Options.Resources.Error_FailedBinding">
<summary>
Failed to convert '{0}' to type '{1}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.Resources.FormatError_FailedBinding(System.Object,System.Object)">
<summary>
Failed to convert '{0}' to type '{1}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.Options.Resources.Error_FailedToActivate">
<summary>
Failed to create instance of type '{0}'.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.Resources.FormatError_FailedToActivate(System.Object)">
<summary>
Failed to create instance of type '{0}'.
</summary>
</member>
<member name="P:Microsoft.Extensions.Options.Resources.Error_MissingParameterlessConstructor">
<summary>
Cannot create instance of type '{0}' because it is missing a public parameterless constructor.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.Resources.FormatError_MissingParameterlessConstructor(System.Object)">
<summary>
Cannot create instance of type '{0}' because it is missing a public parameterless constructor.
</summary>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions">
<summary>
Extension methods for adding options services to the DI container.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.AddOptions(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds services required for using options.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the services to.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{``0})">
<summary>
Registers an action used to configure a particular type of options.
</summary>
<typeparam name="TOptions">The options type to be configured.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the services to.</param>
<param name="configureOptions">The action used to configure the options.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
</members>
</doc>

@ -1,299 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Primitives</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Primitives.CancellationChangeToken">
<summary>
A <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> implementation using <see cref="T:System.Threading.CancellationToken"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Primitives.CancellationChangeToken.#ctor(System.Threading.CancellationToken)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.Primitives.CancellationChangeToken"/>.
</summary>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/>.</param>
</member>
<member name="P:Microsoft.Extensions.Primitives.CancellationChangeToken.ActiveChangeCallbacks">
<inheritdoc />
</member>
<member name="P:Microsoft.Extensions.Primitives.CancellationChangeToken.HasChanged">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Primitives.CancellationChangeToken.RegisterChangeCallback(System.Action{System.Object},System.Object)">
<inheritdoc />
</member>
<member name="T:Microsoft.Extensions.Primitives.ChangeToken">
<summary>
Propagates notifications that a change has occured.
</summary>
</member>
<member name="M:Microsoft.Extensions.Primitives.ChangeToken.OnChange(System.Func{Microsoft.Extensions.Primitives.IChangeToken},System.Action)">
<summary>
Registers the <paramref name="changeTokenConsumer"/> action to be called whenever the token produced changes.
</summary>
<param name="changeTokenProducer">Produces the change token.</param>
<param name="changeTokenConsumer">Action called when the token changes.</param>
<returns></returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.ChangeToken.OnChange``1(System.Func{Microsoft.Extensions.Primitives.IChangeToken},System.Action{``0},``0)">
<summary>
Registers the <paramref name="changeTokenConsumer"/> action to be called whenever the token produced changes.
</summary>
<param name="changeTokenProducer">Produces the change token.</param>
<param name="changeTokenConsumer">Action called when the token changes.</param>
<param name="state">state for the consumer.</param>
<returns></returns>
</member>
<member name="T:Microsoft.Extensions.Primitives.IChangeToken">
<summary>
Propagates notifications that a change has occured.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.IChangeToken.HasChanged">
<summary>
Gets a value that indicates if a change has occured.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.IChangeToken.ActiveChangeCallbacks">
<summary>
Indicates if this token will pro-actively raise callbacks. Callbacks are still guaranteed to fire, eventually.
</summary>
</member>
<member name="M:Microsoft.Extensions.Primitives.IChangeToken.RegisterChangeCallback(System.Action{System.Object},System.Object)">
<summary>
Registers for a callback that will be invoked when the entry has changed.
<see cref="P:Microsoft.Extensions.Primitives.IChangeToken.HasChanged"/> MUST be set before the callback is invoked.
</summary>
<param name="callback">The <see cref="T:System.Action`1"/> to invoke.</param>
<param name="state">State to be passed into the callback.</param>
<returns>An <see cref="T:System.IDisposable"/> that is used to unregister the callback.</returns>
</member>
<member name="T:Microsoft.Extensions.Primitives.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.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:Microsoft.Extensions.Primitives.Resources.Argument_InvalidOffsetLength">
<summary>
Looks up a localized string similar to Offset and length are out of bounds for the string or length is greater than the number of characters from index to the end of the string..
</summary>
</member>
<member name="T:Microsoft.Extensions.Primitives.StringSegment">
<summary>
An optimized representation of a substring.
</summary>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.#ctor(System.String)">
<summary>
Initializes an instance of the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> struct.
</summary>
<param name="buffer">
The original <see cref="T:System.String"/>. The <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> includes the whole <see cref="T:System.String"/>.
</param>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.#ctor(System.String,System.Int32,System.Int32)">
<summary>
Initializes an instance of the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> struct.
</summary>
<param name="buffer">The original <see cref="T:System.String"/> used as buffer.</param>
<param name="offset">The offset of the segment within the <paramref name="buffer"/>.</param>
<param name="length">The length of the segment.</param>
</member>
<member name="P:Microsoft.Extensions.Primitives.StringSegment.Buffer">
<summary>
Gets the <see cref="T:System.String"/> buffer for this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.StringSegment.Offset">
<summary>
Gets the offset within the buffer for this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.StringSegment.Length">
<summary>
Gets the length of this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.StringSegment.Value">
<summary>
Gets the value of this segment as a <see cref="T:System.String"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Primitives.StringSegment.HasValue">
<summary>
Gets whether or not this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> contains a valid value.
</summary>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Equals(System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Equals(Microsoft.Extensions.Primitives.StringSegment)">
<summary>
Indicates whether the current object is equal to another object of the same type.
</summary>
<param name="other">An object to compare with this object.</param>
<returns><code>true</code> if the current object is equal to the other parameter; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Equals(Microsoft.Extensions.Primitives.StringSegment,System.StringComparison)">
<summary>
Indicates whether the current object is equal to another object of the same type.
</summary>
<param name="other">An object to compare with this object.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules to use in the comparison.</param>
<returns><code>true</code> if the current object is equal to the other parameter; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Equals(System.String)">
<summary>
Checks if the specified <see cref="T:System.String"/> is equal to the current <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
</summary>
<param name="text">The <see cref="T:System.String"/> to compare with the current <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</param>
<returns><code>true</code> if the specified <see cref="T:System.String"/> is equal to the current <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Equals(System.String,System.StringComparison)">
<summary>
Checks if the specified <see cref="T:System.String"/> is equal to the current <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
</summary>
<param name="text">The <see cref="T:System.String"/> to compare with the current <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules to use in the comparison.</param>
<returns><code>true</code> if the specified <see cref="T:System.String"/> is equal to the current <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.GetHashCode">
<inheritdoc />
<remarks>
This GetHashCode is expensive since it allocates on every call.
However this is required to ensure we retain any behavior (such as hash code randomization) that
string.GetHashCode has.
</remarks>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.op_Equality(Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegment)">
<summary>
Checks if two specified <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> have the same value.
</summary>
<param name="left">The first <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> to compare, or <code>null</code>.</param>
<param name="right">The second <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> to compare, or <code>null</code>.</param>
<returns><code>true</code> if the value of <paramref name="left"/> is the same as the value of <paramref name="right"/>; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.op_Inequality(Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegment)">
<summary>
Checks if two specified <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> have different values.
</summary>
<param name="left">The first <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> to compare, or <code>null</code>.</param>
<param name="right">The second <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> to compare, or <code>null</code>.</param>
<returns><code>true</code> if the value of <paramref name="left"/> is different from the value of <paramref name="right"/>; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.StartsWith(System.String,System.StringComparison)">
<summary>
Checks if the beginning of this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> matches the specified <see cref="T:System.String"/> when compared using the specified <paramref name="comparisonType"/>.
</summary>
<param name="text">The <see cref="T:System.String"/>to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules to use in the comparison.</param>
<returns><code>true</code> if <paramref name="text"/> matches the beginning of this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.EndsWith(System.String,System.StringComparison)">
<summary>
Checks if the end of this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> matches the specified <see cref="T:System.String"/> when compared using the specified <paramref name="comparisonType"/>.
</summary>
<param name="text">The <see cref="T:System.String"/>to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules to use in the comparison.</param>
<returns><code>true</code> if <paramref name="text"/> matches the end of this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>; otherwise, <code>false</code>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Substring(System.Int32,System.Int32)">
<summary>
Retrieves a substring from this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
The substring starts at the position specified by <paramref name="offset"/> and has the specified <paramref name="length"/>.
</summary>
<param name="offset">The zero-based starting character position of a substring in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</param>
<param name="length">The number of characters in the substring.</param>
<returns>A <see cref="T:System.String"/> that is equivalent to the substring of length <paramref name="length"/> that begins at <paramref name="offset"/> in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/></returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Subsegment(System.Int32,System.Int32)">
<summary>
Retrieves a <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> that represents a substring from this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
The <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> starts at the position specified by <paramref name="offset"/> and has the specified <paramref name="length"/>.
</summary>
<param name="offset">The zero-based starting character position of a substring in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</param>
<param name="length">The number of characters in the substring.</param>
<returns>A <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> that is equivalent to the substring of length <paramref name="length"/> that begins at <paramref name="offset"/> in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/></returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.IndexOf(System.Char,System.Int32,System.Int32)">
<summary>
Gets the zero-based index of the first occurrence of the character <paramref name="c"/> in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
The search starts at <paramref name="start"/> and examines a specified number of <paramref name="count"/> character positions.
</summary>
<param name="c">The Unicode character to seek.</param>
<param name="start">The zero-based index position at which the search starts. </param>
<param name="count">The number of characters to examine.</param>
<returns>The zero-based index position of <paramref name="c"/> from the beginning of the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> if that character is found, or -1 if it is not.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.IndexOf(System.Char,System.Int32)">
<summary>
Gets the zero-based index of the first occurrence of the character <paramref name="c"/> in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
The search starts at <paramref name="start"/>.
</summary>
<param name="c">The Unicode character to seek.</param>
<param name="start">The zero-based index position at which the search starts. </param>
<returns>The zero-based index position of <paramref name="c"/> from the beginning of the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> if that character is found, or -1 if it is not.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.IndexOf(System.Char)">
<summary>
Gets the zero-based index of the first occurrence of the character <paramref name="c"/> in this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.
</summary>
<param name="c">The Unicode character to seek.</param>
<returns>The zero-based index position of <paramref name="c"/> from the beginning of the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> if that character is found, or -1 if it is not.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.Trim">
<summary>
Removes all leading and trailing whitespaces.
</summary>
<returns>The trimmed <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.TrimStart">
<summary>
Removes all leading whitespaces.
</summary>
<returns>The trimmed <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.TrimEnd">
<summary>
Removes all trailing whitespaces.
</summary>
<returns>The trimmed <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringSegment.ToString">
<summary>
Returns the <see cref="T:System.String"/> represented by this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> or <code>String.Empty</code> if the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> does not contain a value.
</summary>
<returns>The <see cref="T:System.String"/> represented by this <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> or <code>String.Empty</code> if the <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/> does not contain a value.</returns>
</member>
<member name="T:Microsoft.Extensions.Primitives.StringTokenizer">
<summary>
Tokenizes a <c>string</c> into <see cref="T:Microsoft.Extensions.Primitives.StringSegment"/>s.
</summary>
</member>
<member name="M:Microsoft.Extensions.Primitives.StringTokenizer.#ctor(System.String,System.Char[])">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.Primitives.StringTokenizer"/>.
</summary>
<param name="value">The <c>string</c> to tokenize.</param>
<param name="separators">The characters to tokenize by.</param>
</member>
<member name="T:Microsoft.Extensions.Primitives.StringValues">
<summary>
Represents zero/null, one, or many strings in an efficient way.
</summary>
</member>
</members>
</doc>

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,464 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>System.Diagnostics.DiagnosticSource</name>
</assembly>
<members>
<member name="T:System.Diagnostics.DiagnosticSource">
<summary>
This is the basic API to 'hook' parts of the framework. It is like an EventSource
(which can also write object), but is intended to log complex objects that can't be serialized.
Please See the DiagnosticSource Users Guide
https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md
for instructions on its use.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSource.Write(System.String,System.Object)">
<summary>
Write is a generic way of logging complex payloads. Each notification
is given a name, which identifies it as well as a object (typically an anonymous type)
that gives the information to pass to the notification, which is arbitrary.
The name should be short (so don't use fully qualified names unless you have to
to avoid ambiguity), but you want the name to be globally unique. Typically your componentName.eventName
where componentName and eventName are strings less than 10 characters are a good compromise.
notification names should NOT have '.' in them because component names have dots and for them both
to have dots would lead to ambiguity. The suggestion is to use _ instead. It is assumed
that listeners will use string prefixing to filter groups, thus having hierarchy in component
names is good.
</summary>
<param name="name">The name of the event being written.</param>
<param name="value">An object that represent the value being passed as a payload for the event.
This is often a anonymous type which contains several sub-values.</param>
</member>
<member name="M:System.Diagnostics.DiagnosticSource.IsEnabled(System.String)">
<summary>
Optional: if there is expensive setup for the notification, you can call IsEnabled
before doing this setup. Consumers should not be assuming that they only get notifications
for which IsEnabled is true however, it is optional for producers to call this API.
The name should be the same as what is passed to Write.
</summary>
<param name="name">The name of the event being written.</param>
</member>
<member name="T:System.Diagnostics.DiagnosticListener">
<summary>
A DiagnosticListener is something that forwards on events written with DiagnosticSource.
It is an IObservable (has Subscribe method), and it also has a Subscribe overload that
lets you specify a 'IsEnabled' predicate that users of DiagnosticSource will use for
'quick checks'.
The item in the stream is a KeyValuePair[string, object] where the string is the name
of the diagnostic item and the object is the payload (typically an anonymous type).
There may be many DiagnosticListeners in the system, but we encourage the use of
The DiagnosticSource.DefaultSource which goes to the DiagnosticListener.DefaultListener.
If you need to see 'everything' you can subscribe to the 'AllListeners' event that
will fire for every live DiagnosticListener in the appdomain (past or present).
Please See the DiagnosticSource Users Guide
https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md
for instructions on its use.
</summary>
</member>
<member name="P:System.Diagnostics.DiagnosticListener.AllListeners">
<summary>
When you subscribe to this you get callbacks for all NotificationListeners in the appdomain
as well as those that occurred in the past, and all future Listeners created in the future.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.Subscribe(System.IObserver{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Predicate{System.String})">
<summary>
Add a subscriber (Observer). If 'IsEnabled' == null (or not present), then the Source's IsEnabled
will always return true.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.Subscribe(System.IObserver{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Same as other Subscribe overload where the predicate is assumed to always return true.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.#ctor(System.String)">
<summary>
Make a new DiagnosticListener, it is a NotificationSource, which means the returned result can be used to
log notifications, but it also has a Subscribe method so notifications can be forwarded
arbitrarily. Thus its job is to forward things from the producer to all the listeners
(multi-casting). Generally you should not be making your own DiagnosticListener but use the
DiagnosticListener.Default, so that notifications are as 'public' as possible.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.Dispose">
<summary>
Clean up the NotificationListeners. Notification listeners do NOT DIE ON THEIR OWN
because they are in a global list (for discoverability). You must dispose them explicitly.
Note that we do not do the Dispose(bool) pattern because we frankly don't want to support
subclasses that have non-managed state.
</summary>
</member>
<member name="P:System.Diagnostics.DiagnosticListener.Name">
<summary>
When a DiagnosticListener is created it is given a name. Return this.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.ToString">
<summary>
Return the name for the ToString() to aid in debugging.
</summary>
<returns></returns>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.IsEnabled(System.String)">
<summary>
Override abstract method
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.Write(System.String,System.Object)">
<summary>
Override abstract method
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticListener.AllListenerObservable">
<summary>
Logically AllListenerObservable has a very simple task. It has a linked list of subscribers that want
a callback when a new listener gets created. When a new DiagnosticListener gets created it should call
OnNewDiagnosticListener so that AllListenerObservable can forward it on to all the subscribers.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.AllListenerObservable.OnNewDiagnosticListener(System.Diagnostics.DiagnosticListener)">
<summary>
Called when a new DiagnosticListener gets created to tell anyone who subscribed that this happened.
</summary>
<param name="diagnosticListener"></param>
</member>
<member name="M:System.Diagnostics.DiagnosticListener.AllListenerObservable.Remove(System.Diagnostics.DiagnosticListener.AllListenerObservable.AllListenerSubscription)">
<summary>
Remove 'subscription from the list of subscriptions that the observable has. Called when
subscriptions are disposed. Returns true if the subscription was removed.
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticListener.AllListenerObservable.AllListenerSubscription">
<summary>
One node in the linked list of subscriptions that AllListenerObservable keeps. It is
IDisposable, and when that is called it removes itself from the list.
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticSourceEventSource">
<summary>
DiagnosticSourceEventSource serves two purposes
1) It allows debuggers to inject code via Function evaluation. This is the purpose of the
BreakPointWithDebuggerFuncEval function in the 'OnEventCommand' method. Basically even in
release code, debuggers can place a breakpoint in this method and then trigger the
DiagnosticSourceEventSource via ETW. Thus from outside the process you can get a hook that
is guaranteed to happen BEFORE any DiangosticSource events (if the process is just starting)
or as soon as possible afterward if it is on attach.
2) It provides a 'bridge' that allows DiagnosticSource messages to be forwarded to EventListers
or ETW. You can do this by enabling the Microsoft-Diagnostics-DiagnosticSource with the
'Events' keyword (for diagnostics purposes, you should also turn on the 'Messages' keyword.
This EventSource defines a EventSource argument called 'FilterAndPayloadSpecs' that defines
what DiagnsoticSources to enable and what parts of the payload to serialize into the key-value
list that will be forwarded to the EventSource. If it is empty, all serializable parts of
every DiagnosticSource event will be forwarded (this is NOT recommended for monitoring but
can be useful for discovery).
The FilterAndPayloadSpecs is one long string with the following structures
* It is a newline separated list of FILTER_AND_PAYLOAD_SPEC
* a FILTER_AND_PAYLOAD_SPEC can be
* EVENT_NAME : TRANSFORM_SPECS
* EMPTY - turns on all sources with implicit payload elements.
* an EVENTNAME can be
* DIAGNOSTIC_SOURCE_NAME / DIAGNOSTC_EVENT_NAME @ EVENT_SOURCE_EVENTNAME - give the name as well as the EventSource event to log it under.
* DIAGNOSTIC_SOURCE_NAME / DIAGNOSTC_EVENT_NAME
* DIAGNOSTIC_SOURCE_NAME - which wildcards every event in the Diagnostic source or
* EMPTY - which turns on all sources
* TRANSFORM_SPEC is a semicolon separated list of TRANSFORM_SPEC, which can be
* - TRANSFORM_SPEC - the '-' indicates that implicit payload elements should be suppressed
* VARIABLE_NAME = PROPERTY_SPEC - indicates that a payload element 'VARIABLE_NAME' is created from PROPERTY_SPEC
* PROPERTY_SPEC - This is a shortcut where VARIABLE_NAME is the LAST property name
* a PROPERTY_SPEC is basically a list of names separated by '.'
* PROPERTY_NAME - fetches a property from the DiagnosticSource payload object
* PROPERTY_NAME . PROPERTY NAME - fetches a sub-property of the object.
Example1:
"BridgeTestSource1/TestEvent1:cls_Point_X=cls.Point.X;cls_Point_Y=cls.Point.Y\r\n" +
"BridgeTestSource2/TestEvent2:-cls.Url"
This indicates that two events should be turned on, The 'TestEvent1' event in BridgeTestSource1 and the
'TestEvent2' in BridgeTestSource2. In the first case, because the transform did not begin with a -
any primitive type/string of 'TestEvent1's payload will be serialized into the output. In addition if
there a property of the payload object called 'cls' which in turn has a property 'Point' which in turn
has a property 'X' then that data is also put in the output with the name cls_Point_X. Similarly
if cls.Point.Y exists, then that value will also be put in the output with the name cls_Point_Y.
For the 'BridgeTestSource2/TestEvent2' event, because the - was specified NO implicit fields will be
generated, but if there is a property call 'cls' which has a property 'Url' then that will be placed in
the output with the name 'Url' (since that was the last property name used and no Variable= clause was
specified.
Example:
"BridgeTestSource1\r\n" +
"BridgeTestSource2"
This will enable all events for the BridgeTestSource1 and BridgeTestSource2 sources. Any string/primitive
properties of any of the events will be serialized into the output.
Example:
""
This turns on all DiagnosticSources Any string/primitive properties of any of the events will be serialized
into the output. This is not likely to be a good idea as it will be very verbose, but is useful to quickly
discover what is available.
* How data is logged in the EventSource
By default all data from Diagnostic sources is logged to the the DiagnosticEventSouce event called 'Event'
which has three fields
string SourceName,
string EventName,
IEnumerable[KeyValuePair[string, string]] Argument
However to support start-stop activity tracking, there are six other events that can be used
Activity1Start
Activity1Stop
Activity2Start
Activity2Stop
RecursiveActivity1Start
RecursiveActivity1Stop
By using the SourceName/EventName@EventSourceName syntax, you can force particular DiagnosticSource events to
be logged with one of these EventSource events. This is useful because the events above have start-stop semantics
which means that they create activity IDs that are attached to all logging messages between the start and
the stop (see https://blogs.msdn.microsoft.com/vancem/2015/09/14/exploring-eventsource-activity-correlation-and-causation-features/)
For example the specification
"MyDiagnosticSource/RequestStart@Activity1Start\r\n" +
"MyDiagnosticSource/RequestStop@Activity1Stop\r\n" +
"MyDiagnosticSource/SecurityStart@Activity2Start\r\n" +
"MyDiagnosticSource/SecurityStop@Activity2Stop\r\n"
Defines that RequestStart will be logged with the EventSource Event Activity1Start (and the cooresponding stop) which
means that all events caused between these two markers will have an activity ID assocatied with this start event.
Simmilarly SecurityStart is mapped to Activity2Start.
Note you can map many DiangosticSource events to the same EventSource Event (e.g. Activity1Start). As long as the
activities don't nest, you can reuse the same event name (since the payloads have the DiagnosticSource name which can
disambiguate). However if they nest you need to use another EventSource event because the rules of EventSource
activities state that a start of the same event terminates any existing activity of the same name.
As its name suggests RecursiveActivity1Start, is marked as recursive and thus can be used when the activity can nest with
itself. This should not be a 'top most' activity because it is not 'self healing' (if you miss a stop, then the
activity NEVER ends).
See the DiagnosticSourceEventSourceBridgeTest.cs for more explicit examples of using this bridge.
</summary>
</member>
<member name="F:System.Diagnostics.DiagnosticSourceEventSource.Keywords.Messages">
<summary>
Indicates diagnostics messages from DiagnosticSourceEventSource should be included.
</summary>
</member>
<member name="F:System.Diagnostics.DiagnosticSourceEventSource.Keywords.Events">
<summary>
Indicates that all events from all diagnostic sources should be forwarded to the EventSource using the 'Event' event.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.Message(System.String)">
<summary>
Used to send ad-hoc diagnostics to humans.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.Event(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Events from DiagnosticSource can be forwarded to EventSource using this event.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.EventJson(System.String,System.String,System.String)">
<summary>
This is only used on V4.5 systems that don't have the ability to log KeyValuePairs directly.
It will eventually go away, but we should always reserve the ID for this.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.Activity1Start(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Used to mark the beginning of an activity
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.Activity1Stop(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Used to mark the end of an activity
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.Activity2Start(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Used to mark the beginning of an activity
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.Activity2Stop(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Used to mark the end of an activity that can be recursive.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.RecursiveActivity1Start(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Used to mark the beginning of an activity
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.RecursiveActivity1Stop(System.String,System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Used to mark the end of an activity that can be recursive.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.NewDiagnosticListener(System.String)">
<summary>
Fires when a new DiagnosticSource becomes available.
</summary>
<param name="SourceName"></param>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.#ctor">
<summary>
This constructor uses EventSourceSettings which is only available on V4.6 and above
systems. We use the EventSourceSettings to turn on support for complex types.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs)">
<summary>
Called when the EventSource gets a command from a EventListener or ETW.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.BreakPointWithDebuggerFuncEval">
<summary>
A function which is fully interruptible even in release code so we can stop here and
do function evaluation in the debugger. Thus this is just a place that is useful
for the debugger to place a breakpoint where it can inject code with function evaluation
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform">
<summary>
FilterAndTransform represents on transformation specification from a DiagnosticsSource
to EventSource's 'Event' method. (e.g. MySource/MyEvent:out=prop1.prop2.prop3).
Its main method is 'Morph' which takes a DiagnosticSource object and morphs it into
a list of string,string key value pairs.
This method also contains that static 'Create/Destroy FilterAndTransformList, which
simply parse a series of transformation specifications.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform.CreateFilterAndTransformList(System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform@,System.String,System.Diagnostics.DiagnosticSourceEventSource)">
<summary>
Parses filterAndPayloadSpecs which is a list of lines each of which has the from
DiagnosticSourceName/EventName:PAYLOAD_SPEC
where PAYLOADSPEC is a semicolon separated list of specifications of the form
OutputName=Prop1.Prop2.PropN
Into linked list of FilterAndTransform that together forward events from the given
DiagnosticSource's to 'eventSource'. Sets the 'specList' variable to this value
(destroying anything that was there previously).
By default any serializable properties of the payload object are also included
in the output payload, however this feature and be tuned off by prefixing the
PAYLOADSPEC with a '-'.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform.DestroyFilterAndTransformList(System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform@)">
<summary>
This destroys (turns off) the FilterAndTransform stopping the forwarding started with CreateFilterAndTransformList
</summary>
<param name="specList"></param>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform.#ctor(System.String,System.Int32,System.Int32,System.Diagnostics.DiagnosticSourceEventSource,System.Diagnostics.DiagnosticSourceEventSource.FilterAndTransform)">
<summary>
Creates one FilterAndTransform specification from filterAndPayloadSpec starting at 'startIdx' and ending just before 'endIdx'.
This FilterAndTransform will subscribe to DiagnosticSources specified by the specification and forward them to 'eventSource.
For convenience, the 'Next' field is set to the 'next' parameter, so you can easily form linked lists.
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec">
<summary>
Transform spec represents a string that describes how to extract a piece of data from
the DiagnosticSource payload. An example string is OUTSTR=EVENT_VALUE.PROP1.PROP2.PROP3
It has a Next field so they can be chained together in a linked list.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.#ctor(System.String,System.Int32,System.Int32,System.Diagnostics.DiagnosticSourceEventSource.TransformSpec)">
<summary>
parse the strings 'spec' from startIdx to endIdx (points just beyond the last considered char)
The syntax is ID1=ID2.ID3.ID4 .... Where ID1= is optional.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.Morph(System.Object)">
<summary>
Given the DiagnosticSourcePayload 'obj', compute a key-value pair from it. For example
if the spec is OUTSTR=EVENT_VALUE.PROP1.PROP2.PROP3 and the ultimate value of PROP3 is
10 then the return key value pair is KeyValuePair("OUTSTR","10")
</summary>
</member>
<member name="F:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.Next">
<summary>
A public field that can be used to form a linked list.
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec">
<summary>
A PropertySpec represents information needed to fetch a property from
and efficiently. Thus it represents a '.PROP' in a TransformSpec
(and a transformSpec has a list of these).
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec.#ctor(System.String,System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec)">
<summary>
Make a new PropertySpec for a property named 'propertyName'.
For convenience you can set he 'next' field to form a linked
list of PropertySpecs.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec.Fetch(System.Object)">
<summary>
Given an object fetch the property that this PropertySpec represents.
</summary>
</member>
<member name="F:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec.Next">
<summary>
A public field that can be used to form a linked list.
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec.PropertyFetch">
<summary>
PropertyFetch is a helper class. It takes a PropertyInfo and then knows how
to efficiently fetch that property from a .NET object (See Fetch method).
It hides some slightly complex generic code.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec.PropertyFetch.FetcherForProperty(System.Reflection.PropertyInfo)">
<summary>
Create a property fetcher from a .NET Reflection PropertyInfo class that
represents a property of a particular type.
</summary>
</member>
<member name="M:System.Diagnostics.DiagnosticSourceEventSource.TransformSpec.PropertySpec.PropertyFetch.Fetch(System.Object)">
<summary>
Given an object, fetch the property that this propertyFech represents.
</summary>
</member>
<member name="T:System.Diagnostics.DiagnosticSourceEventSource.CallbackObserver`1">
<summary>
CallbackObserver is a adapter class that creates an observer (which you can pass
to IObservable.Subscribe), and calls the given callback every time the 'next'
operation on the IObserver happens.
</summary>
<typeparam name="T"></typeparam>
</member>
</members>
</doc>

@ -1,52 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>System.Interactive.Async</name>
</assembly>
<members>
<member name="M:System.Collections.Generic.AsyncEnumerator.MoveNext``1(System.Collections.Generic.IAsyncEnumerator{``0})">
<summary>
Advances the enumerator to the next element in the sequence, returning the result asynchronously.
</summary>
<returns>
Task containing the result of the operation: true if the enumerator was successfully advanced
to the next element; false if the enumerator has passed the end of the sequence.
</returns>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
<summary>
Asynchronous version of the IEnumerable&lt;T&gt; interface, allowing elements of the
enumerable sequence to be retrieved asynchronously.
</summary>
<typeparam name="T">Element type.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetEnumerator">
<summary>
Gets an asynchronous enumerator over the sequence.
</summary>
<returns>Enumerator for asynchronous enumeration over the sequence.</returns>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
<summary>
Asynchronous version of the IEnumerator&lt;T&gt; interface, allowing elements to be
retrieved asynchronously.
</summary>
<typeparam name="T">Element type.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNext(System.Threading.CancellationToken)">
<summary>
Advances the enumerator to the next element in the sequence, returning the result asynchronously.
</summary>
<param name="cancellationToken">Cancellation token that can be used to cancel the operation.</param>
<returns>
Task containing the result of the operation: true if the enumerator was successfully advanced
to the next element; false if the enumerator has passed the end of the sequence.
</returns>
</member>
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
<summary>
Gets the current element in the iteration.
</summary>
</member>
</members>
</doc>

@ -1,127 +0,0 @@
<?xml version="1.0"?>
<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.Read``1(System.Void*)">
<summary>
Reads a value of type <typeparamref name="T"/> from the given location.
</summary>
<typeparam name="T">The type to read.</typeparam>
<param name="source">The location to read from.</param>
<returns>An object of type <typeparamref name="T"/> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
<summary>
Writes a value of type <typeparamref name="T"/> to the given location.
</summary>
<typeparam name="T">The type of value to write.</typeparam>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
<summary>
Copies a value of type <typeparamref name="T"/> to the given location.
</summary>
<typeparam name="T">The type of value to copy.</typeparam>
<param name="destination">The location to copy to.</param>
<param name="source">A reference to the value to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
<summary>
Copies a value of type <typeparamref name="T"/> to the given location.
</summary>
<typeparam name="T">The type of value to copy.</typeparam>
<param name="destination">The location to copy to.</param>
<param name="source">A pointer to the value to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
<summary>
Returns a pointer to the given by-ref parameter.
</summary>
<typeparam name="T">The type of object.</typeparam>
<param name="value">The object whose pointer is obtained.</param>
<returns>A pointer to the given value.</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"/>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
<summary>
Casts the given object to the specified type.
</summary>
<typeparam name="T">The type which the object will be cast to.</typeparam>
<param name="o">The object to cast.</param>
<returns>The original object, casted to the given type.</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"/>.
</summary>
<typeparam name="T">The type of the interpreted location.</typeparam>
<param name="source">The location of the value to reference.</param>
<returns>A reference to a value of type <typeparamref name="T"/>.</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"/>.
</summary>
<typeparam name="TFrom">The type of reference to reinterpret.</typeparam>
<typeparam name="TTo">The desired type of the reference.</typeparam>
<param name="source">The reference to reinterpret.</param>
<returns>A reference to a value of type <typeparamref name="TTo"/>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
<summary>
Adds an element offset to the given reference.
</summary>
<typeparam name="T">The type of reference.</typeparam>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
<summary>
Subtracts an element offset from the given reference.
</summary>
<typeparam name="T">The type of reference.</typeparam>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<returns>A new reference that reflects the subraction of offset from 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>
<returns><c>true</c> if <paramref name="left"/> and <paramref name="right"/> point to the same location; otherwise <c>false</c>.</returns>
</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.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>
</members>
</doc>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -14,7 +14,7 @@
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>/qyaWk792djibogBFvY0EDp7pSmv6fcnXeHiCBghiDk=</dsig:DigestValue> <dsig:DigestValue>++GWbjtF1CaF5ugYGC+UUJeSyl7Xy5g/EVE06sLJ8XA=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

Binary file not shown.

@ -42,14 +42,14 @@
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<dependency> <dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="24032"> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="54240">
<assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>RFhKgkdj2T4ru6BVf7fosF1DLTu1ti/YRT/qJZgn5Y0=</dsig:DigestValue> <dsig:DigestValue>8H4LiM6kw+2ElHuLdTLUDVU8g6mzjv6/9jjAisSl1LA=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -14,7 +14,7 @@
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>rE/jugvoQMrEt9ohknbuvR2+qaLMyx8m2q2zmChWNos=</dsig:DigestValue> <dsig:DigestValue>A2YboMO/VKXNvGEoR5VQUBq28eBktUVpKjdMd1W/uM8=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

@ -1 +1 @@
1d9b487694eb6e1438cf8c596690c17962d81081 2a0f0db696b73bf5e703b98de8fd281e959b9f8c

@ -48,7 +48,6 @@ D:\GIT\Diplom B\obj\Debug\Diplom B.csproj.CoreCompileInputs.cache
D:\GIT\Diplom B\obj\Debug\Diplom B.csproj.CopyComplete D:\GIT\Diplom B\obj\Debug\Diplom B.csproj.CopyComplete
D:\GIT\Diplom B\obj\Debug\Diplom B.exe D:\GIT\Diplom B\obj\Debug\Diplom B.exe
D:\GIT\Diplom B\obj\Debug\Diplom B.pdb D:\GIT\Diplom B\obj\Debug\Diplom B.pdb
D:\GIT\Diplom B\obj\Debug\Diplom_B.FormLogin.resources
D:\GIT\Diplom B\obj\Debug\Diplom_B.IzdForm.resources D:\GIT\Diplom B\obj\Debug\Diplom_B.IzdForm.resources
F:\GIT\Diplom_B\bin\Debug\x86\sqlite3.dll F:\GIT\Diplom_B\bin\Debug\x86\sqlite3.dll
F:\GIT\Diplom_B\bin\Debug\x64\sqlite3.dll F:\GIT\Diplom_B\bin\Debug\x64\sqlite3.dll
@ -106,3 +105,12 @@ F:\GIT\Diplom_B\bin\Debug\Diplom B.exe.manifest
F:\GIT\Diplom_B\bin\Debug\Diplom B.application F:\GIT\Diplom_B\bin\Debug\Diplom B.application
F:\GIT\Diplom_B\obj\Debug\Diplom B.exe.manifest F:\GIT\Diplom_B\obj\Debug\Diplom B.exe.manifest
F:\GIT\Diplom_B\obj\Debug\Diplom B.application F:\GIT\Diplom_B\obj\Debug\Diplom B.application
D:\GIT\Diplom B\bin\Debug\Diplom B.exe.manifest
D:\GIT\Diplom B\bin\Debug\Diplom B.application
D:\GIT\Diplom B\obj\Debug\Diplom B.exe.manifest
D:\GIT\Diplom B\obj\Debug\Diplom B.application
D:\GIT\Diplom B\obj\Debug\Diplom_B.IzvForm.resources
D:\GIT\Diplom B\obj\Debug\Diplom_B.LoginForm.resources
D:\GIT\Diplom B\obj\Debug\Diplom_B.ZakazchikForm.resources
D:\GIT\Diplom B\obj\Debug\Diplom_B.MainForm.resources
D:\GIT\Diplom B\obj\Debug\Diplom_B.PostForm.resources

Binary file not shown.

@ -42,14 +42,14 @@
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<dependency> <dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="28640"> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="56800">
<assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>FfTt+FyJWYbZD0MePnxGXM0cNe7rBzQ76uk7QQJ8Jjs=</dsig:DigestValue> <dsig:DigestValue>xggF3+EhBudMrcPEhZtjIsmSeRC5BRtVf0FBIlSMsjw=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -14,7 +14,7 @@
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>/qyaWk792djibogBFvY0EDp7pSmv6fcnXeHiCBghiDk=</dsig:DigestValue> <dsig:DigestValue>++GWbjtF1CaF5ugYGC+UUJeSyl7Xy5g/EVE06sLJ8XA=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

@ -1 +1 @@
626c54f217165dcf7f4d1fed33b48d9495588cdc 6c7778e3dd037a6b96cceb0ce48d3c56d9b0ab12

@ -54,3 +54,63 @@ F:\GIT\Diplom_B\obj\Release\Diplom B.application
F:\GIT\Diplom_B\obj\Release\Diplom B.csproj.CopyComplete F:\GIT\Diplom_B\obj\Release\Diplom B.csproj.CopyComplete
F:\GIT\Diplom_B\obj\Release\Diplom B.exe F:\GIT\Diplom_B\obj\Release\Diplom B.exe
F:\GIT\Diplom_B\obj\Release\Diplom B.pdb F:\GIT\Diplom_B\obj\Release\Diplom B.pdb
D:\GIT\Diplom B\bin\Release\x86\sqlite3.dll
D:\GIT\Diplom B\bin\Release\x64\sqlite3.dll
D:\GIT\Diplom B\bin\Release\Diplom B.exe.config
D:\GIT\Diplom B\bin\Release\Diplom B.exe.manifest
D:\GIT\Diplom B\bin\Release\Diplom B.application
D:\GIT\Diplom B\bin\Release\Diplom B.exe
D:\GIT\Diplom B\bin\Release\Diplom B.pdb
D:\GIT\Diplom B\bin\Release\Microsoft.Data.Sqlite.dll
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.dll
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Relational.Design.dll
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Relational.dll
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Sqlite.Design.dll
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Sqlite.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Caching.Abstractions.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Caching.Memory.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.DependencyInjection.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Logging.Abstractions.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Logging.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Options.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Primitives.dll
D:\GIT\Diplom B\bin\Release\Remotion.Linq.dll
D:\GIT\Diplom B\bin\Release\System.Collections.Immutable.dll
D:\GIT\Diplom B\bin\Release\System.Diagnostics.DiagnosticSource.dll
D:\GIT\Diplom B\bin\Release\System.Interactive.Async.dll
D:\GIT\Diplom B\bin\Release\System.Runtime.CompilerServices.Unsafe.dll
D:\GIT\Diplom B\bin\Release\Microsoft.Data.Sqlite.xml
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.xml
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Relational.xml
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Relational.Design.xml
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Sqlite.xml
D:\GIT\Diplom B\bin\Release\Microsoft.EntityFrameworkCore.Sqlite.Design.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Caching.Abstractions.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Caching.Memory.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.DependencyInjection.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Logging.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Logging.Abstractions.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Options.xml
D:\GIT\Diplom B\bin\Release\Microsoft.Extensions.Primitives.xml
D:\GIT\Diplom B\bin\Release\Remotion.Linq.xml
D:\GIT\Diplom B\bin\Release\System.Collections.Immutable.xml
D:\GIT\Diplom B\bin\Release\System.Diagnostics.DiagnosticSource.xml
D:\GIT\Diplom B\bin\Release\System.Interactive.Async.xml
D:\GIT\Diplom B\bin\Release\System.Runtime.CompilerServices.Unsafe.xml
D:\GIT\Diplom B\obj\Release\Diplom B.csproj.AssemblyReference.cache
D:\GIT\Diplom B\obj\Release\Diplom_B.IzdForm.resources
D:\GIT\Diplom B\obj\Release\Diplom_B.Properties.Resources.resources
D:\GIT\Diplom B\obj\Release\Diplom B.csproj.GenerateResource.cache
D:\GIT\Diplom B\obj\Release\Diplom B.csproj.CoreCompileInputs.cache
D:\GIT\Diplom B\obj\Release\Diplom B.exe.manifest
D:\GIT\Diplom B\obj\Release\Diplom B.application
D:\GIT\Diplom B\obj\Release\Diplom B.csproj.CopyComplete
D:\GIT\Diplom B\obj\Release\Diplom B.exe
D:\GIT\Diplom B\obj\Release\Diplom B.pdb
D:\GIT\Diplom B\obj\Release\Diplom_B.IzvForm.resources
D:\GIT\Diplom B\obj\Release\Diplom_B.LoginForm.resources
D:\GIT\Diplom B\obj\Release\Diplom_B.PostForm.resources
D:\GIT\Diplom B\obj\Release\Diplom_B.ZakazchikForm.resources
D:\GIT\Diplom B\obj\Release\Diplom_B.MainForm.resources

Binary file not shown.

@ -42,14 +42,14 @@
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<dependency> <dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="24032"> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Diplom B.exe" size="54240">
<assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="Diplom B" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>RFhKgkdj2T4ru6BVf7fosF1DLTu1ti/YRT/qJZgn5Y0=</dsig:DigestValue> <dsig:DigestValue>8H4LiM6kw+2ElHuLdTLUDVU8g6mzjv6/9jjAisSl1LA=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

Binary file not shown.

Binary file not shown.

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