Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- namespace MessageLib
- {
- [System.Runtime.Serialization.DataContract]
- public class Message
- {
- private string _content;
- public Message(string content, DateTime sendDate)
- {
- _content = content;
- SendDate = sendDate;
- }
- [DataMember]
- public string Content
- {
- set
- {
- if (value.Length > 80 || value.Length <= 0)
- throw new ArgumentException("Длина строки не может превышать 80 символов!");
- }
- get =>
- _content;
- }
- [DataMember]
- public DateTime SendDate
- {
- get;
- set;
- }
- [DataMember]
- public DateTime ReceiveDate
- {
- get
- {
- return SendDate.AddSeconds(1);
- }
- private set
- {
- }
- }
- public override string ToString() =>
- $"Mail: Content = {Content}, SendDate = {SendDate}, ReceiveDate = {ReceiveDate}";
- }
- }
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- namespace MessageLib
- {
- [DataContract]
- public class Dmessage : Message
- {
- public Dmessage(string content, DateTime sendDate, int hours) :
- base(content, sendDate) =>
- Hours = hours;
- [DataMember]
- public int Hours
- {
- get;
- set;
- }
- [DataMember]
- public new DateTime ReceiveDate
- {
- get
- {
- return SendDate.AddHours(-Hours);
- }
- private set
- {
- }
- }
- public override string ToString() =>
- $"D-Message: Content = {Content}, SendDate = {SendDate}, Hours = {Hours}, " +
- $"ReceiveData = {ReceiveDate}";
- }
- }
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- namespace MessageLib
- {
- [DataContract]
- public class MessageBox : IEnumerable<Message>
- {
- [DataMember]
- private List<Message> _messages;
- public MessageBox() =>
- _messages = new List<Message>();
- public void ReceiveMail(Message msg) =>
- _messages.Add(msg);
- public void Add(Message msg) =>
- ReceiveMail(msg);
- public IEnumerator<Message> GetEnumerator()
- {
- return _messages.OrderBy(x => x.ReceiveDate).GetEnumerator();
- }
- IEnumerator IEnumerable.GetEnumerator()
- {
- return _messages.OrderBy(x => x.ReceiveDate).GetEnumerator();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment