PIbd-21_Belianin_N.N._Furni.../FurnitureAssembly/FurnitureAssemblyView/FormAnswerMail.cs
2024-05-22 17:07:35 +04:00

99 lines
2.9 KiB
C#
Raw 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 FurnitureAssemblyBusinessLogic.MailWorker;
using FurnitureAssemblyContracts.BusinessLogicsContracts;
using FurnitureAssemblyContracts.SearchModels;
using FurnitureAssemblyContracts.ViewModels;
using Microsoft.Extensions.Logging;
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 FurnitureAssemblyView
{
public partial class FormAnswerMail : Form
{
private readonly ILogger _logger;
private readonly IMessageInfoLogic _logic;
private readonly AbstractMailWorker _mailWorker;
private MessageInfoViewModel _message;
public string MessageId { get; set; } = string.Empty;
public FormAnswerMail(ILogger<FormAnswerMail> logger, AbstractMailWorker mailWorker, IMessageInfoLogic logic)
{
InitializeComponent();
_logger = logger;
_mailWorker = mailWorker;
_logic = logic;
}
private void FormAnswerMail_Load(object sender, EventArgs e)
{
try
{
_logger.LogInformation("Получение письма");
_message = _logic.ReadElement(new MessageInfoSearchModel { MessageId = MessageId });
if (_message != null)
{
Text += $"для {_message.SenderName}";
textBoxHead.Text = _message.Subject;
textBoxBody.Text = _message.Body;
}
if (_message.IsRead is false)
{
_logic.Update(new() { MessageId = MessageId, IsRead = true, Answer = _message.Answer });
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения письма");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ButtonSave_Click(object sender, EventArgs e)
{
// Отправка письма с ответом
_mailWorker.MailSendAsync(new()
{
MailAddress = _message.SenderName,
Subject = _message.Subject,
Text = textBoxAnswer.Text,
});
_logic.Update(new()
{
MessageId = MessageId,
Answer = textBoxAnswer.Text,
IsRead = true,
});
MessageBox.Show("Успешная отправка письма", "Отправка письма", MessageBoxButtons.OK);
DialogResult = DialogResult.OK;
Close();
}
private void ButtonCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
}
}