using DressAtelierContracts.BindingModels; using DressAtelierContracts.ViewModels; using DressAtelierDataModels.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace DressAtelierFileImplement.Models { public class MessageInfo : IMessageInfoModel { public string MessageID { get; set; } = string.Empty; public int? ClientID { get; set; } public string SenderName { get; set; } = string.Empty; public DateTime DeliveryDate { get; set; } public string Subject { get; set; } = string.Empty; public string Body { get; set; } = string.Empty; public int ID { get; set; } public static MessageInfo? Create(MessageInfoBindingModel? model) { if (model == null) { return null; } return new MessageInfo() { MessageID = model.MessageID, ClientID = model.ClientID, SenderName = model.SenderName, DeliveryDate = model.DeliveryDate, Subject = model.Subject, Body = model.Body, }; } public static MessageInfo? Create(XElement element) { if (element == null) { return null; } return new MessageInfo() { MessageID = element.Attribute("MessageID")!.Value, ClientID = Convert.ToInt32(element.Attribute("ClientID")!.Value), SenderName = element.Element("SenderName")!.Value, DeliveryDate = Convert.ToDateTime(element.Element("DeliveryDate")!.Value), Subject = element.Attribute("Subject")!.Value, Body = element.Attribute("Body")!.Value, }; } public MessageInfoViewModel GetViewModel => new() { MessageID = MessageID, ClientID = ClientID, SenderName = SenderName, DeliveryDate = DeliveryDate, Subject = Subject, Body = Body }; public XElement GetXElement => new("MessageInfo", new XAttribute("MessageID", MessageID), new XElement("ClientID", ClientID.ToString()), new XElement("SenderName", SenderName), new XElement("DeliveryDate", DeliveryDate), new XElement("Subject", Subject), new XElement("Body", Body), new XElement("SenderName", SenderName)); } }