Владимир Данилов 74adae9fc2 Lab8
2024-05-22 01:47:51 +04:00

205 lines
6.0 KiB
C#

using NewsBlogAbstractions.Models;
using NewsBlogAbstractions.WorkAbstractions;
using NewsBlogMongoDB;
using System.Security.Policy;
namespace NewsBlogView
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void articleToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormArticle));
if (service is FormArticle form)
{
form.ShowDialog();
}
}
private void authorToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormAuthor));
if (service is FormAuthor form)
{
form.ShowDialog();
}
}
private void categoryToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormCategory));
if (service is FormCategory form)
{
form.ShowDialog();
}
}
private void commentToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormComment));
if (service is FormComment form)
{
form.ShowDialog();
}
}
private void tagToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormTag));
if (service is FormTag form)
{
form.ShowDialog();
}
}
private void add1000ToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(IAuthorWork));
if (service is IAuthorWork authorLogic)
{
DateTime startTime = DateTime.Now;
for (int i = 0; i < 1000; i++)
{
Author author = new()
{
Id = i + 1000,
Name = "ÔÈÎ " + i,
Description = "Îïèñàíèå " + i,
Phone = "Íîìåð " + i
};
authorLogic.CreateId(author);
}
DateTime endTime = DateTime.Now;
labelTest.Text = $"Äîáàâëåíèå 1000 ñòðîê âûïîëíåíî çà {(endTime - startTime).TotalMilliseconds} ìèëëèñåêóíä";
}
}
private void get1000ToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(IAuthorWork));
if (service is IAuthorWork authorLogic)
{
DateTime startTime = DateTime.Now;
for (int i = 0; i < 1000; i++)
authorLogic.Get(i + 1000);
DateTime endTime = DateTime.Now;
labelTest.Text = $"Ïîëó÷åíèå 1000 ñòðîê âûïîëíåíî çà {(endTime - startTime).TotalMilliseconds} ìèëëèñåêóíä";
}
}
private void update1000ToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(IAuthorWork));
if (service is IAuthorWork authorLogic)
{
DateTime startTime = DateTime.Now;
for (int i = 0; i < 1000; i++)
{
Author author = new()
{
Id = i + 1000,
Name = "ÔÈÎ " + i + 2000,
Description = "Îïèñàíèå " + i + 2000,
Phone = "Íîìåð " + i + 2000
};
authorLogic.Update(author);
}
DateTime endTime = DateTime.Now;
labelTest.Text = $"Îáíîâëåíèå 1000 ñòðîê âûïîëíåíî çà {(endTime - startTime).TotalMilliseconds} ìèëëèñåêóíä";
}
}
private void delete1000ToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(IAuthorWork));
if (service is IAuthorWork authorLogic)
{
DateTime startTime = DateTime.Now;
for (int i = 0; i < 1000; i++)
{
authorLogic.Delete(i + 1000);
}
DateTime endTime = DateTime.Now;
labelTest.Text = $"Óäàëåíèå 1000 ñòðîê âûïîëíåíî çà {(endTime - startTime).TotalMilliseconds} ìèëëèñåêóíä";
}
}
private void updateMongoDBToolStripMenuItem_Click(object sender, EventArgs e)
{
ImplementationMongoDB implementationMongoDB = new();
// î÷èùàåì âñ¸
foreach (var it in implementationMongoDB.GetArticles())
implementationMongoDB.DeleteArticle(it.Id);
foreach (var it in implementationMongoDB.GetAuthors())
implementationMongoDB.DeleteAuthor(it.Id);
foreach (var it in implementationMongoDB.GetCategorys())
implementationMongoDB.DeleteCategory(it.Id);
foreach (var it in implementationMongoDB.GetComments())
implementationMongoDB.DeleteComment(it.Id);
foreach (var it in implementationMongoDB.GetTags())
implementationMongoDB.DeleteTag(it.Id);
foreach (var it in implementationMongoDB.GetSequence())
implementationMongoDB.DeleteSequence(it.Id);
// ñêà÷èâàåì èç ïîñòãðåñà
List<Article> listArticle = null;
List<Author> listAuthor = null;
List<Category> listCategory = null;
List<Comment> listComment = null;
List<Tag> listTag = null;
var service = Program.ServiceProvider?.GetService(typeof(IArticleWork));
if (service is IArticleWork articleLogic)
listArticle = articleLogic.GetAll();
service = Program.ServiceProvider?.GetService(typeof(IAuthorWork));
if (service is IAuthorWork authorLogic)
listAuthor = authorLogic.GetAll();
service = Program.ServiceProvider?.GetService(typeof(ICategoryWork));
if (service is ICategoryWork categoryLogic)
listCategory = categoryLogic.GetAll();
service = Program.ServiceProvider?.GetService(typeof(ICommentWork));
if (service is ICommentWork commentLogic)
listComment = commentLogic.GetAll();
service = Program.ServiceProvider?.GetService(typeof(ITagWork));
if (service is ITagWork tagLogic)
listTag = tagLogic.GetAll();
// âëèâàåì äàííûå ìîíãî äá
if (listAuthor != null)
foreach (var it in listAuthor)
implementationMongoDB.AddAuthor(it);
if (listCategory != null)
foreach (var it in listCategory)
implementationMongoDB.AddCategory(it);
if (listArticle != null)
foreach (var it in listArticle)
implementationMongoDB.AddArticle(it);
if (listComment != null)
foreach (var it in listComment)
implementationMongoDB.AddComment(it);
if (listTag != null)
foreach (var it in listTag)
implementationMongoDB.AddTag(it);
}
private void MongoDB_CheckedChanged(object sender, EventArgs e)
{
Program.isPostgreSQL = !Program.isPostgreSQL;
}
}
}