Revert "Попытка реализовать полноценные ответы на письма (неудачаная)"
This reverts commit 8e6c28754790787f2835de3dd83b888e3aa4bd98.
This commit is contained in:
parent
8e6c287547
commit
56781d44db
@ -29,16 +29,7 @@ namespace ConfectioneryBusinessLogic.MailWorker
|
|||||||
objMailMessage.Body = info.Text;
|
objMailMessage.Body = info.Text;
|
||||||
objMailMessage.SubjectEncoding = Encoding.UTF8;
|
objMailMessage.SubjectEncoding = Encoding.UTF8;
|
||||||
objMailMessage.BodyEncoding = Encoding.UTF8;
|
objMailMessage.BodyEncoding = Encoding.UTF8;
|
||||||
if (info.MessageId != null)
|
|
||||||
{
|
|
||||||
objMailMessage.Headers.Add("Message-Id", info.MessageId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info.ReplyMessageId != null)
|
|
||||||
{
|
|
||||||
objMailMessage.Headers.Add("In-Reply-To", info.ReplyMessageId);
|
|
||||||
objMailMessage.Headers.Add("References", info.ReplyMessageId);
|
|
||||||
}
|
|
||||||
objSmtpClient.UseDefaultCredentials = false;
|
objSmtpClient.UseDefaultCredentials = false;
|
||||||
objSmtpClient.EnableSsl = true;
|
objSmtpClient.EnableSsl = true;
|
||||||
objSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
|
objSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
|
||||||
|
@ -25,7 +25,7 @@ namespace ConfectioneryFileImplement.Models
|
|||||||
|
|
||||||
public string Body { get; private set; } = string.Empty;
|
public string Body { get; private set; } = string.Empty;
|
||||||
public bool HasRead { get; private set; }
|
public bool HasRead { get; private set; }
|
||||||
public string? ReplyMessageId { get; private set; }
|
public string? Reply { get; private set; }
|
||||||
|
|
||||||
public static MessageInfo? Create(MessageInfoBindingModel model)
|
public static MessageInfo? Create(MessageInfoBindingModel model)
|
||||||
{
|
{
|
||||||
@ -36,13 +36,13 @@ namespace ConfectioneryFileImplement.Models
|
|||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Body = model.Body,
|
Body = model.Body,
|
||||||
HasRead = model.HasRead,
|
Reply = model.Reply,
|
||||||
|
HasRead = model.HasRead,
|
||||||
Subject = model.Subject,
|
Subject = model.Subject,
|
||||||
ClientId = model.ClientId,
|
ClientId = model.ClientId,
|
||||||
MessageId = model.MessageId,
|
MessageId = model.MessageId,
|
||||||
SenderName = model.SenderName,
|
SenderName = model.SenderName,
|
||||||
DateDelivery = model.DateDelivery,
|
DateDelivery = model.DateDelivery,
|
||||||
ReplyMessageId = model.ReplyMessageId,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,13 +55,13 @@ namespace ConfectioneryFileImplement.Models
|
|||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Body = element.Attribute("Body")!.Value,
|
Body = element.Attribute("Body")!.Value,
|
||||||
|
Reply = element.Attribute("Reply")!.Value,
|
||||||
HasRead = Convert.ToBoolean(element.Attribute("HasRead")!.Value),
|
HasRead = Convert.ToBoolean(element.Attribute("HasRead")!.Value),
|
||||||
Subject = element.Attribute("Subject")!.Value,
|
Subject = element.Attribute("Subject")!.Value,
|
||||||
ClientId = Convert.ToInt32(element.Attribute("ClientId")!.Value),
|
ClientId = Convert.ToInt32(element.Attribute("ClientId")!.Value),
|
||||||
MessageId = element.Attribute("MessageId")!.Value,
|
MessageId = element.Attribute("MessageId")!.Value,
|
||||||
SenderName = element.Attribute("SenderName")!.Value,
|
SenderName = element.Attribute("SenderName")!.Value,
|
||||||
DateDelivery = Convert.ToDateTime(element.Attribute("DateDelivery")!.Value),
|
DateDelivery = Convert.ToDateTime(element.Attribute("DateDelivery")!.Value),
|
||||||
ReplyMessageId = element.Attribute("ReplyMessageId")!.Value,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,28 +71,25 @@ namespace ConfectioneryFileImplement.Models
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ReplyMessageId = model.ReplyMessageId;
|
Reply = model.Reply;
|
||||||
HasRead = model.HasRead;
|
HasRead = model.HasRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageInfoViewModel GetViewModel => new()
|
public MessageInfoViewModel GetViewModel => new()
|
||||||
{
|
{
|
||||||
Body = Body,
|
Body = Body,
|
||||||
|
Reply = Reply,
|
||||||
HasRead = HasRead,
|
HasRead = HasRead,
|
||||||
Subject = Subject,
|
Subject = Subject,
|
||||||
ClientId = ClientId,
|
ClientId = ClientId,
|
||||||
MessageId = MessageId,
|
MessageId = MessageId,
|
||||||
SenderName = SenderName,
|
SenderName = SenderName,
|
||||||
DateDelivery = DateDelivery,
|
DateDelivery = DateDelivery,
|
||||||
ReplyMessageId = ReplyMessageId,
|
|
||||||
ReplyText = DataFileSingleton.GetInstance().Messages
|
|
||||||
.FirstOrDefault(x => ReplyMessageId != null && ReplyMessageId.Equals(x.MessageId))
|
|
||||||
?.Body ?? string.Empty,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public XElement GetXElement => new("MessageInfo",
|
public XElement GetXElement => new("MessageInfo",
|
||||||
new XAttribute("Body", Body),
|
new XAttribute("Body", Body),
|
||||||
new XAttribute("ReplyMessageId", ReplyMessageId),
|
new XAttribute("Reply", Reply),
|
||||||
new XAttribute("HasRead", HasRead),
|
new XAttribute("HasRead", HasRead),
|
||||||
new XAttribute("Subject", Subject),
|
new XAttribute("Subject", Subject),
|
||||||
new XAttribute("ClientId", ClientId),
|
new XAttribute("ClientId", ClientId),
|
||||||
|
@ -24,7 +24,7 @@ namespace ConfectioneryListImplement.Models
|
|||||||
|
|
||||||
public string Body { get; private set; } = string.Empty;
|
public string Body { get; private set; } = string.Empty;
|
||||||
public bool HasRead { get; private set; }
|
public bool HasRead { get; private set; }
|
||||||
public string? ReplyMessageId { get; private set; }
|
public string? Reply { get; private set; }
|
||||||
|
|
||||||
public static MessageInfo? Create(MessageInfoBindingModel model)
|
public static MessageInfo? Create(MessageInfoBindingModel model)
|
||||||
{
|
{
|
||||||
@ -35,13 +35,13 @@ namespace ConfectioneryListImplement.Models
|
|||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Body = model.Body,
|
Body = model.Body,
|
||||||
|
Reply = model.Reply,
|
||||||
HasRead = model.HasRead,
|
HasRead = model.HasRead,
|
||||||
Subject = model.Subject,
|
Subject = model.Subject,
|
||||||
ClientId = model.ClientId,
|
ClientId = model.ClientId,
|
||||||
MessageId = model.MessageId,
|
MessageId = model.MessageId,
|
||||||
SenderName = model.SenderName,
|
SenderName = model.SenderName,
|
||||||
DateDelivery = model.DateDelivery,
|
DateDelivery = model.DateDelivery,
|
||||||
ReplyMessageId = model.ReplyMessageId,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,40 +51,22 @@ namespace ConfectioneryListImplement.Models
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ReplyMessageId = model.MessageId;
|
Reply = model.Reply;
|
||||||
HasRead = model.HasRead;
|
HasRead = model.HasRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageInfoViewModel GetViewModel
|
public MessageInfoViewModel GetViewModel => new()
|
||||||
{
|
{
|
||||||
get
|
Body = Body,
|
||||||
{
|
Reply = Reply,
|
||||||
var res = new MessageInfoViewModel()
|
HasRead = HasRead,
|
||||||
{
|
Subject = Subject,
|
||||||
Body = Body,
|
ClientId = ClientId,
|
||||||
HasRead = HasRead,
|
MessageId = MessageId,
|
||||||
Subject = Subject,
|
SenderName = SenderName,
|
||||||
ClientId = ClientId,
|
DateDelivery = DateDelivery,
|
||||||
MessageId = MessageId,
|
};
|
||||||
SenderName = SenderName,
|
|
||||||
DateDelivery = DateDelivery,
|
|
||||||
ReplyMessageId = ReplyMessageId,
|
|
||||||
};
|
|
||||||
if (ReplyMessageId != null)
|
|
||||||
{
|
|
||||||
foreach (var msg in DataListSingleton.GetInstance().Messages)
|
|
||||||
{
|
|
||||||
if (msg.MessageId.Equals(ReplyMessageId))
|
|
||||||
{
|
|
||||||
res.ReplyText = msg.Body;
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return res;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -40,29 +40,17 @@ namespace ConfectioneryView
|
|||||||
|
|
||||||
private void ButtonSave_Click(object sender, EventArgs e)
|
private void ButtonSave_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var guid = Guid.NewGuid();
|
|
||||||
var newMsgId = $"<{guid.ToString().Replace("-", "")}@f129.i.mail.ru>";
|
|
||||||
_mailWorker.MailSendAsync(new()
|
_mailWorker.MailSendAsync(new()
|
||||||
{
|
{
|
||||||
MessageId = newMsgId,
|
|
||||||
ReplyMessageId = _message.MessageId,
|
|
||||||
MailAddress = _message.SenderName,
|
MailAddress = _message.SenderName,
|
||||||
Subject = _message.Subject,
|
Subject = _message.Subject,
|
||||||
Text = textBoxReply.Text,
|
Text = textBoxReply.Text,
|
||||||
});
|
});
|
||||||
_logic.Create(new()
|
|
||||||
{
|
|
||||||
MessageId = newMsgId,
|
|
||||||
Body = textBoxReply.Text,
|
|
||||||
ClientId = _message.ClientId,
|
|
||||||
HasRead = false,
|
|
||||||
Subject = _message.Subject,
|
|
||||||
});
|
|
||||||
_logic.Update(new()
|
_logic.Update(new()
|
||||||
{
|
{
|
||||||
MessageId = MessageId,
|
MessageId = MessageId,
|
||||||
|
Reply = textBoxReply.Text,
|
||||||
HasRead = true,
|
HasRead = true,
|
||||||
ReplyMessageId = newMsgId,
|
|
||||||
});
|
});
|
||||||
MessageBox.Show("Успешно отправлено письмо", "Отправка письма", MessageBoxButtons.OK);
|
MessageBox.Show("Успешно отправлено письмо", "Отправка письма", MessageBoxButtons.OK);
|
||||||
DialogResult = DialogResult.OK;
|
DialogResult = DialogResult.OK;
|
||||||
|
@ -47,7 +47,7 @@ namespace ConfectioneryView
|
|||||||
{
|
{
|
||||||
dataGridView.DataSource = list;
|
dataGridView.DataSource = list;
|
||||||
dataGridView.Columns["ClientId"].Visible = false;
|
dataGridView.Columns["ClientId"].Visible = false;
|
||||||
|
dataGridView.Columns["MessageId"].Visible = false;
|
||||||
dataGridView.Columns["Body"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
dataGridView.Columns["Body"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
}
|
}
|
||||||
_logger.LogInformation("Загрузка списка писем");
|
_logger.LogInformation("Загрузка списка писем");
|
||||||
|
@ -8,9 +8,6 @@ namespace ConfectioneryContracts.BindingModels
|
|||||||
{
|
{
|
||||||
public class MailSendInfoBindingModel
|
public class MailSendInfoBindingModel
|
||||||
{
|
{
|
||||||
public string? MessageId { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string? ReplyMessageId { get; set; } = string.Empty;
|
|
||||||
public string MailAddress { get; set; } = string.Empty;
|
public string MailAddress { get; set; } = string.Empty;
|
||||||
public string Subject { get; set; } = string.Empty;
|
public string Subject { get; set; } = string.Empty;
|
||||||
public string Text { get; set; } = string.Empty;
|
public string Text { get; set; } = string.Empty;
|
||||||
|
@ -22,6 +22,6 @@ namespace ConfectioneryContracts.BindingModels
|
|||||||
public DateTime DateDelivery { get; set; }
|
public DateTime DateDelivery { get; set; }
|
||||||
|
|
||||||
public bool HasRead { get; set; }
|
public bool HasRead { get; set; }
|
||||||
public string? ReplyMessageId { get; set; }
|
public string? Reply { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,9 +29,7 @@ namespace ConfectioneryContracts.ViewModels
|
|||||||
[DisplayName("Прочитано")]
|
[DisplayName("Прочитано")]
|
||||||
public bool HasRead { get; set; }
|
public bool HasRead { get; set; }
|
||||||
|
|
||||||
[DisplayName("Ответ")]
|
[DisplayName("Ответ")]
|
||||||
public string ReplyText { get; set; } = string.Empty;
|
public string? Reply { get; set; }
|
||||||
|
|
||||||
public string? ReplyMessageId { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,6 @@ namespace ConfectioneryDataModels
|
|||||||
|
|
||||||
public bool HasRead { get; }
|
public bool HasRead { get; }
|
||||||
|
|
||||||
public string? ReplyMessageId { get; }
|
public string? Reply { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,12 +23,8 @@ namespace ConfectioneryDatabaseImplement.Models
|
|||||||
|
|
||||||
public Client? Client { get; private set; }
|
public Client? Client { get; private set; }
|
||||||
|
|
||||||
public MessageInfo? ReplyMessage { get; private set; }
|
|
||||||
|
|
||||||
public List<MessageInfo> Messages { get; private set; } = new();
|
|
||||||
|
|
||||||
public bool HasRead { get; private set; }
|
public bool HasRead { get; private set; }
|
||||||
public string? ReplyMessageId { get; private set; }
|
public string? Reply { get; private set; }
|
||||||
|
|
||||||
public static MessageInfo? Create(MessageInfoBindingModel model)
|
public static MessageInfo? Create(MessageInfoBindingModel model)
|
||||||
{
|
{
|
||||||
@ -39,13 +35,13 @@ namespace ConfectioneryDatabaseImplement.Models
|
|||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Body = model.Body,
|
Body = model.Body,
|
||||||
|
Reply = model.Reply,
|
||||||
HasRead = model.HasRead,
|
HasRead = model.HasRead,
|
||||||
Subject = model.Subject,
|
Subject = model.Subject,
|
||||||
ClientId = model.ClientId,
|
ClientId = model.ClientId,
|
||||||
MessageId = model.MessageId,
|
MessageId = model.MessageId,
|
||||||
SenderName = model.SenderName,
|
SenderName = model.SenderName,
|
||||||
DateDelivery = model.DateDelivery,
|
DateDelivery = model.DateDelivery,
|
||||||
ReplyMessageId = model.ReplyMessageId,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,23 +51,21 @@ namespace ConfectioneryDatabaseImplement.Models
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reply = model.Reply;
|
||||||
ReplyMessageId = ReplyMessageId;
|
|
||||||
HasRead = model.HasRead;
|
HasRead = model.HasRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageInfoViewModel GetViewModel => new()
|
public MessageInfoViewModel GetViewModel => new()
|
||||||
{
|
{
|
||||||
Body = Body,
|
Body = Body,
|
||||||
|
Reply = Reply,
|
||||||
HasRead = HasRead,
|
HasRead = HasRead,
|
||||||
Subject = Subject,
|
Subject = Subject,
|
||||||
ClientId = ClientId,
|
ClientId = ClientId,
|
||||||
MessageId = MessageId,
|
MessageId = MessageId,
|
||||||
SenderName = SenderName,
|
SenderName = SenderName,
|
||||||
DateDelivery = DateDelivery,
|
DateDelivery = DateDelivery,
|
||||||
ReplyMessageId = ReplyMessageId,
|
};
|
||||||
ReplyText = ReplyMessage?.Body ?? string.Empty,
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ using ConfectioneryContracts.SearchModels;
|
|||||||
using ConfectioneryContracts.StoragesContract;
|
using ConfectioneryContracts.StoragesContract;
|
||||||
using ConfectioneryContracts.ViewModels;
|
using ConfectioneryContracts.ViewModels;
|
||||||
using ConfectioneryDatabaseImplement.Models;
|
using ConfectioneryDatabaseImplement.Models;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
|
|
||||||
namespace ConfectioneryDatabaseImplement
|
namespace ConfectioneryDatabaseImplement
|
||||||
{
|
{
|
||||||
@ -15,9 +14,7 @@ namespace ConfectioneryDatabaseImplement
|
|||||||
using var context = new ConfectioneryDatabase();
|
using var context = new ConfectioneryDatabase();
|
||||||
if (model.MessageId != null)
|
if (model.MessageId != null)
|
||||||
{
|
{
|
||||||
return context.Messages
|
return context.Messages.FirstOrDefault(x => x.MessageId == model.MessageId)?.GetViewModel;
|
||||||
.Include(x => x.ReplyMessage)
|
|
||||||
.FirstOrDefault(x => x.MessageId == model.MessageId)?.GetViewModel;
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -26,8 +23,7 @@ namespace ConfectioneryDatabaseImplement
|
|||||||
{
|
{
|
||||||
using var context = new ConfectioneryDatabase();
|
using var context = new ConfectioneryDatabase();
|
||||||
var res = context.Messages
|
var res = context.Messages
|
||||||
.Include(x => x.ReplyMessage)
|
.Where(x => !model.ClientId.HasValue || x.ClientId == model.ClientId)
|
||||||
.Where(x => !model.ClientId.HasValue || x.ClientId == model.ClientId)
|
|
||||||
.Select(x => x.GetViewModel);
|
.Select(x => x.GetViewModel);
|
||||||
if (!(model.Page.HasValue && model.PageSize.HasValue))
|
if (!(model.Page.HasValue && model.PageSize.HasValue))
|
||||||
{
|
{
|
||||||
@ -40,8 +36,7 @@ namespace ConfectioneryDatabaseImplement
|
|||||||
{
|
{
|
||||||
using var context = new ConfectioneryDatabase();
|
using var context = new ConfectioneryDatabase();
|
||||||
return context.Messages
|
return context.Messages
|
||||||
.Include(x => x.ReplyMessage)
|
.Select(x => x.GetViewModel)
|
||||||
.Select(x => x.GetViewModel)
|
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,408 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using System;
|
|
||||||
using ConfectioneryDatabaseImplement;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace ConfectioneryDatabaseImplement.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ConfectioneryDatabase))]
|
|
||||||
[Migration("20230318021140_add_self_reply_message")]
|
|
||||||
partial class add_self_reply_message
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "7.0.3")
|
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
|
||||||
|
|
||||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Client", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<string>("ClientFIO")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<string>("Email")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<string>("Password")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Clients");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Component", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<string>("ComponentName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<double>("Cost")
|
|
||||||
.HasColumnType("float");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Components");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Implementer", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<string>("ImplementerFIO")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<string>("Password")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<int>("Qualification")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("WorkExperience")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Implementers");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.MessageInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("MessageId")
|
|
||||||
.HasColumnType("nvarchar(450)");
|
|
||||||
|
|
||||||
b.Property<string>("Body")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<int?>("ClientId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateDelivery")
|
|
||||||
.HasColumnType("datetime2");
|
|
||||||
|
|
||||||
b.Property<bool>("HasRead")
|
|
||||||
.HasColumnType("bit");
|
|
||||||
|
|
||||||
b.Property<string>("ReplyMessageId")
|
|
||||||
.HasColumnType("nvarchar(450)");
|
|
||||||
|
|
||||||
b.Property<string>("SenderName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<string>("Subject")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.HasKey("MessageId");
|
|
||||||
|
|
||||||
b.HasIndex("ClientId");
|
|
||||||
|
|
||||||
b.HasIndex("ReplyMessageId");
|
|
||||||
|
|
||||||
b.ToTable("Messages");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Order", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<int>("ClientId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("Count")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateCreate")
|
|
||||||
.HasColumnType("datetime2");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateImplement")
|
|
||||||
.HasColumnType("datetime2");
|
|
||||||
|
|
||||||
b.Property<int?>("ImplementerId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("PastryId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("Status")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<double>("Sum")
|
|
||||||
.HasColumnType("float");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ClientId");
|
|
||||||
|
|
||||||
b.HasIndex("ImplementerId");
|
|
||||||
|
|
||||||
b.HasIndex("PastryId");
|
|
||||||
|
|
||||||
b.ToTable("Orders");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Pastry", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<string>("PastryName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<double>("Price")
|
|
||||||
.HasColumnType("float");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Pastries");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.PastryComponent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<int>("ComponentId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("Count")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("PastryId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ComponentId");
|
|
||||||
|
|
||||||
b.HasIndex("PastryId");
|
|
||||||
|
|
||||||
b.ToTable("PastryComponents");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Shop", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<string>("Address")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateOpening")
|
|
||||||
.HasColumnType("datetime2");
|
|
||||||
|
|
||||||
b.Property<int>("MaxCountPastries")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("nvarchar(max)");
|
|
||||||
|
|
||||||
b.Property<int?>("PastryId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PastryId");
|
|
||||||
|
|
||||||
b.ToTable("Shops");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.ShopPastry", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
|
||||||
|
|
||||||
b.Property<int>("Count")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("PastryId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<int>("ShopId")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PastryId");
|
|
||||||
|
|
||||||
b.HasIndex("ShopId");
|
|
||||||
|
|
||||||
b.ToTable("ShopPastries");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.MessageInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Client", "Client")
|
|
||||||
.WithMany("Messages")
|
|
||||||
.HasForeignKey("ClientId");
|
|
||||||
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.MessageInfo", "ReplyMessage")
|
|
||||||
.WithMany("Messages")
|
|
||||||
.HasForeignKey("ReplyMessageId");
|
|
||||||
|
|
||||||
b.Navigation("Client");
|
|
||||||
|
|
||||||
b.Navigation("ReplyMessage");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Order", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Client", "Client")
|
|
||||||
.WithMany("Orders")
|
|
||||||
.HasForeignKey("ClientId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Implementer", "Implementer")
|
|
||||||
.WithMany("Orders")
|
|
||||||
.HasForeignKey("ImplementerId");
|
|
||||||
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Pastry", "Pastry")
|
|
||||||
.WithMany("Orders")
|
|
||||||
.HasForeignKey("PastryId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Client");
|
|
||||||
|
|
||||||
b.Navigation("Implementer");
|
|
||||||
|
|
||||||
b.Navigation("Pastry");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.PastryComponent", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Component", "Component")
|
|
||||||
.WithMany("PastryComponents")
|
|
||||||
.HasForeignKey("ComponentId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Pastry", "Pastry")
|
|
||||||
.WithMany("Components")
|
|
||||||
.HasForeignKey("PastryId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Component");
|
|
||||||
|
|
||||||
b.Navigation("Pastry");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Shop", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Pastry", null)
|
|
||||||
.WithMany("Shops")
|
|
||||||
.HasForeignKey("PastryId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.ShopPastry", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Pastry", "Pastry")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("PastryId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.Shop", "Shop")
|
|
||||||
.WithMany("ShopPastries")
|
|
||||||
.HasForeignKey("ShopId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Pastry");
|
|
||||||
|
|
||||||
b.Navigation("Shop");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Client", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("Messages");
|
|
||||||
|
|
||||||
b.Navigation("Orders");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Component", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PastryComponents");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Implementer", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("Orders");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.MessageInfo", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("Messages");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Pastry", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("Components");
|
|
||||||
|
|
||||||
b.Navigation("Orders");
|
|
||||||
|
|
||||||
b.Navigation("Shops");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Shop", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("ShopPastries");
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace ConfectioneryDatabaseImplement.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class add_self_reply_message : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Reply",
|
|
||||||
table: "Messages");
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "ReplyMessageId",
|
|
||||||
table: "Messages",
|
|
||||||
type: "nvarchar(450)",
|
|
||||||
nullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_Messages_ReplyMessageId",
|
|
||||||
table: "Messages",
|
|
||||||
column: "ReplyMessageId");
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Messages_Messages_ReplyMessageId",
|
|
||||||
table: "Messages",
|
|
||||||
column: "ReplyMessageId",
|
|
||||||
principalTable: "Messages",
|
|
||||||
principalColumn: "MessageId");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Messages_Messages_ReplyMessageId",
|
|
||||||
table: "Messages");
|
|
||||||
|
|
||||||
migrationBuilder.DropIndex(
|
|
||||||
name: "IX_Messages_ReplyMessageId",
|
|
||||||
table: "Messages");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "ReplyMessageId",
|
|
||||||
table: "Messages");
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Reply",
|
|
||||||
table: "Messages",
|
|
||||||
type: "nvarchar(max)",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -112,8 +112,8 @@ namespace ConfectioneryDatabaseImplement.Migrations
|
|||||||
b.Property<bool>("HasRead")
|
b.Property<bool>("HasRead")
|
||||||
.HasColumnType("bit");
|
.HasColumnType("bit");
|
||||||
|
|
||||||
b.Property<string>("ReplyMessageId")
|
b.Property<string>("Reply")
|
||||||
.HasColumnType("nvarchar(450)");
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
b.Property<string>("SenderName")
|
b.Property<string>("SenderName")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
@ -127,8 +127,6 @@ namespace ConfectioneryDatabaseImplement.Migrations
|
|||||||
|
|
||||||
b.HasIndex("ClientId");
|
b.HasIndex("ClientId");
|
||||||
|
|
||||||
b.HasIndex("ReplyMessageId");
|
|
||||||
|
|
||||||
b.ToTable("Messages");
|
b.ToTable("Messages");
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -285,13 +283,7 @@ namespace ConfectioneryDatabaseImplement.Migrations
|
|||||||
.WithMany("Messages")
|
.WithMany("Messages")
|
||||||
.HasForeignKey("ClientId");
|
.HasForeignKey("ClientId");
|
||||||
|
|
||||||
b.HasOne("ConfectioneryDatabaseImplement.Models.MessageInfo", "ReplyMessage")
|
|
||||||
.WithMany("Messages")
|
|
||||||
.HasForeignKey("ReplyMessageId");
|
|
||||||
|
|
||||||
b.Navigation("Client");
|
b.Navigation("Client");
|
||||||
|
|
||||||
b.Navigation("ReplyMessage");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Order", b =>
|
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Order", b =>
|
||||||
@ -381,11 +373,6 @@ namespace ConfectioneryDatabaseImplement.Migrations
|
|||||||
b.Navigation("Orders");
|
b.Navigation("Orders");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.MessageInfo", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("Messages");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Pastry", b =>
|
modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Pastry", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Components");
|
b.Navigation("Components");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user