SUBD_LAB/SUBD_LABA/View/MainForm.cs
2024-05-21 22:20:17 +04:00

172 lines
4.8 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Commentbase;
using Database;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.DataFormats;
namespace View
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void albumToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormAlbums));
if (service is FormAlbums form)
{
form.ShowDialog();
}
}
private void locationToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormLocations));
if (service is FormLocations form)
{
form.ShowDialog();
}
}
private void authorToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormAuthors));
if (service is FormAuthors form)
{
form.ShowDialog();
}
}
private void photoToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormPhotos));
if (service is FormPhotos form)
{
form.ShowDialog();
}
}
private void commentToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormComments));
if (service is FormComments form)
{
form.ShowDialog();
}
}
private void buttonTest_Click(object sender, EventArgs e)
{
var photo = new Photo()
{
Id = 0,
Title = "photo",
Description = "cool photo",
Privacy = "public",
UploadDate = DateTime.Now,
ImagePath = "Image/312",
AlbumId = 1,
LocationId = 1,
AuthorId = 1,
};
ImplementsPostgres bd = new();
DateTime startTime = DateTime.Now;
bd.DeletePhoto(40);
bd.DeletePhoto(41);
bd.DeletePhoto(42);
bd.DeletePhoto(43);
bd.DeletePhoto(44);
DateTime endTime = DateTime.Now;
// Выводим время выполнения запроса в консоль
textBoxTest.Text = $"Время выполнения запроса в постгресе: {(endTime - startTime).TotalMilliseconds} миллисекунд ";
ImplementsMongoDB bdMongodb = new();
startTime = DateTime.Now;
bdMongodb.DeletePhoto(40);
bdMongodb.DeletePhoto(41);
bdMongodb.DeletePhoto(42);
bdMongodb.DeletePhoto(43);
bdMongodb.DeletePhoto(44);
endTime = DateTime.Now;
textBoxTest.Text += $"Время выполнения запроса в монгоДб: {(endTime - startTime).TotalMilliseconds} миллисекунд";
}
private void trackBarDB_MouseUp(object sender, MouseEventArgs e)
{
if (trackBarDB.Value > 50)
{
trackBarDB.Value = 100;
Program.ChangeDB(false);
}
else
{
trackBarDB.Value = 0;
Program.ChangeDB(true);
}
}
private void buttonTransferDataFromPostgresToMongo_Click(object sender, EventArgs e)
{
ImplementsMongoDB implementsMongoDB = new();
// очищаем всё
foreach (var it in implementsMongoDB.GetAlbums())
implementsMongoDB.DeleteAlbum(it.Id);
foreach (var it in implementsMongoDB.GetLocations())
implementsMongoDB.DeleteLocation(it.Id);
foreach (var it in implementsMongoDB.GetAuthors())
implementsMongoDB.DeleteAuthor(it.Id);
foreach (var it in implementsMongoDB.GetPhotos())
implementsMongoDB.DeletePhoto(it.Id);
foreach (var it in implementsMongoDB.GetComments())
implementsMongoDB.DeleteComment(it.Id);
ImplementsPostgres implementsPostgres = new();
// скачиваем из постгреса
var listAlbums = implementsPostgres.GetAlbums();
var listLocations = implementsPostgres.GetLocations();
var listAuthors = implementsPostgres.GetAuthors();
var listPhotos = implementsPostgres.GetPhotos();
var listComments = implementsPostgres.GetComments();
// вливаем данные монго дб
foreach (var it in listAlbums)
implementsMongoDB.CreateAlbum(it);
foreach (var it in listLocations)
implementsMongoDB.CreateLocation(it);
foreach (var it in listAuthors)
implementsMongoDB.CreateAuthor(it);
foreach (var it in listPhotos)
implementsMongoDB.CreatePhoto(it);
foreach (var it in listComments)
implementsMongoDB.CreateComment(it);
// забираем информацию о последовательностях
var listSequence = implementsPostgres.GetSequences();
foreach (var it in listSequence)
if (it.Id == "Album" ||
it.Id == "Location" ||
it.Id == "Author" ||
it.Id == "Photo" ||
it.Id == "Comment"
)
implementsMongoDB.UpdateSequence(it);
else
throw new Exception("неправильнй id последовательности");
}
}
}