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