Skip to content

Commit

Permalink
Merge pull request #11 from dmpas/develop
Browse files Browse the repository at this point in the history
Выпуск 1.0.4
  • Loading branch information
dmpas authored Oct 25, 2017
2 parents 239b3c2 + 530a9bf commit a1b5967
Show file tree
Hide file tree
Showing 21 changed files with 819 additions and 19 deletions.
202 changes: 200 additions & 2 deletions MailComponent/Mail/InternetMail.cs
100755 → 100644

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions MailComponent/Mail/InternetMailAddress.cs
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ This Source Code Form is subject to the terms of the

namespace OneScript.InternetMail
{
/// <summary>
/// Адрес для обмена почтовыми сообщениями.
/// </summary>
[ContextClass("ИнтернетПочтовыйАдрес", "InternetMailAddress")]
public class InternetMailAddress : AutoContext<InternetMailAddress>
{
/// <summary>
/// Полный адрес электронной почты в формате "пользователь@сервер".
/// </summary>
[ContextProperty("Адрес", "Address")]
public string Address
{
Expand All @@ -29,15 +35,30 @@ public string Address
}
}

/// <summary>
/// Содержит кодировку для отображаемых имен.
/// Если кодировка не указана, будет использоваться значение кодировки из свойства Кодировка, объекта ИнтернетПочтовоеСообщение.
/// </summary>
[ContextProperty("Кодировка", "Encoding")]
public string Encoding { get; set; }

/// <summary>
/// Содержит представление почтового адреса.
/// Произвольный текст, сопоставляемый почтовому адресу, указанному в свойстве Адрес.
/// Используется почтовыми клиентами при разборе сообщения в качестве отображаемого имени получателя, отправителя и т.д.
/// </summary>
[ContextProperty("ОтображаемоеИмя", "DisplayName")]
public string DisplayName { get; set; }

/// <summary>
/// Часть "пользователь" почтового адреса.
/// </summary>
[ContextProperty("Пользователь", "User")]
public string User { get; set; }

/// <summary>
/// Часть "сервер" почтового адреса.
/// </summary>
[ContextProperty("Сервер", "Server")]
public string Server { get; set; }

Expand Down
25 changes: 25 additions & 0 deletions MailComponent/Mail/InternetMailAddresses.cs
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ This Source Code Form is subject to the terms of the

namespace OneScript.InternetMail
{
/// <summary>
/// Представляет собой коллекцию объектов типа ИнтернетПочтовыйАдрес.
/// </summary>
[ContextClass("ИнтернетПочтовыеАдреса", "InternetMailAddresses")]
public class InternetMailAddresses : AutoContext<InternetMailAddresses>, ICollectionContext, IEnumerable<InternetMailAddress>
{
Expand All @@ -33,6 +36,11 @@ IEnumerator IEnumerable.GetEnumerator()
return GetEnumerator();
}

/// <summary>
/// Добавляет адрес в коллекцию.
/// </summary>
/// <param name="address">Почтовый адрес.</param>
/// <returns></returns>
[ContextMethod("Добавить", "Add")]
public InternetMailAddress Add(string address)
{
Expand All @@ -43,24 +51,41 @@ public InternetMailAddress Add(string address)
return newAddress;
}

/// <summary>
/// Получает количество элементов в коллекции почтовых адресов.
/// </summary>
/// <returns></returns>
[ContextMethod("Количество", "Count")]
public int Count()
{
return _data.Count;
}

/// <summary>
/// Удаляет все элементы коллекции.
/// </summary>
[ContextMethod("Очистить", "Clear")]
public void Clear()
{
_data.Clear();
}

/// <summary>
/// Получает значение по индексу. Работает аналогично оператору [].
/// </summary>
/// <param name="index">Индекс элемента коллекции.</param>
/// <returns></returns>
[ContextMethod("Получить", "Get")]
public InternetMailAddress Get(int index)
{
return _data[index];
}

/// <summary>
/// Удаляет элемент из коллекции.
/// </summary>
/// <param name="element">Индекс элемента коллекции или элемент коллекции.</param>
/// <exception cref="RuntimeException"></exception>
[ContextMethod("Удалить", "Delete")]
public void Delete(IValue element)
{
Expand Down
27 changes: 27 additions & 0 deletions MailComponent/Mail/InternetMailAttachment.cs
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ This Source Code Form is subject to the terms of the

namespace OneScript.InternetMail
{
/// <summary>
/// Вложение в почтовое сообщение представляет собой двоичные данные.
/// </summary>
[ContextClass("ИнтернетПочтовоеВложение", "InternetMailAttachment")]
public class InternetMailAttachment : AutoContext<InternetMailAttachment>
{
Expand All @@ -27,24 +30,48 @@ public InternetMailAttachment(string fileName)
FileName = System.IO.Path.GetFileName(fileName);
}

/// <summary>
/// Содержит данные почтового вложения.
/// </summary>
[ContextProperty("Данные", "Data")]
public IValue Data { get; set; }

/// <summary>
/// Идентификатор вложения.
/// </summary>
[ContextProperty("Идентификатор", "CID")]
public string CID { get; set; }

/// <summary>
/// Наименование вложения в сообщении. Используется в пользовательском интерфейсе.
/// </summary>
[ContextProperty("Имя", "Name")]
public string Name { get; set; }

/// <summary>
/// Имя файла вложения.
/// </summary>
[ContextProperty("ИмяФайла", "FileName")]
public string FileName { get; }

/// <summary>
/// Содержит кодировку для наименования вложения.
/// Если кодировка не указана, будет использоваться значение кодировки из свойства Кодировка, объекта ИнтернетПочтовоеСообщение.
/// </summary>
[ContextProperty("Кодировка", "Encoding")]
public string Encoding { get; set; }

/// <summary>
/// Содержит способ кодирования вложений сообщения. По умолчанию используется метод MIME.
/// </summary>
[ContextProperty("СпособКодирования", "EncodingMode")]
public InternetMailAttachmentEncodingMode EncodingMode { get; set; }

/// <summary>
/// Содержит MIME тип вложения.
/// Если свойство при отправке сообщения не заполнено, то производится попытка автоматически определить MIME тип вложения.
/// Если автоматически определить тип не получилось, для такого вложения используется тип "application/octet-stream".
/// </summary>
[ContextProperty("ТипСодержимого", "MIMEType")]
public string MimeType { get; set; }
}
Expand Down
9 changes: 9 additions & 0 deletions MailComponent/Mail/InternetMailAttachmentEncodingMode.cs
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,22 @@ This Source Code Form is subject to the terms of the

namespace OneScript.InternetMail
{
/// <summary>
/// Описывает способ кодирования вложений почтового сообщения.
/// </summary>
[EnumerationType("СпособКодированияИнтернетПочтовогоСообщения", "InternetMailAttachmentEncodingMode")]
public enum InternetMailAttachmentEncodingMode
{

/// <summary>
/// Кодирование вложений способом MIME.
/// </summary>
[EnumItem("MIME", "МИМЕ")]
Mime,

/// <summary>
/// Кодирование вложений способом UUEncode.
/// </summary>
[EnumItem("UUEncode", "УУЕнкоде")]
Uuencode

Expand Down
27 changes: 27 additions & 0 deletions MailComponent/Mail/InternetMailAttachments.cs
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ This Source Code Form is subject to the terms of the

namespace OneScript.InternetMail
{
/// <summary>
/// Коллекция почтовых вложений.
/// </summary>
[ContextClass("ИнтернетПочтовыеВложения", "InternetMailAttachments")]
public class InternetMailAttachments : AutoContext<InternetMailAttachments>, ICollectionContext, IEnumerable<InternetMailAttachment>
{
Expand All @@ -22,6 +25,10 @@ public InternetMailAttachments()

private readonly List<InternetMailAttachment> _data = new List<InternetMailAttachment>();

/// <summary>
/// Получает размер коллекции почтовых вложений.
/// </summary>
/// <returns></returns>
[ContextMethod("Количество", "Count")]
public int Count()
{
Expand Down Expand Up @@ -70,6 +77,13 @@ public InternetMailAttachment Add(InternetMailMessage data, string attachmentNam
}


/// <summary>
/// Добавляет вложение
/// </summary>
/// <param name="source">Адрес файла-вложения.</param>
/// <param name="attachmentName">Имя вложения, которое отображают почтовые клиенты.</param>
/// <returns></returns>
/// <exception cref="RuntimeException"></exception>
[ContextMethod("Добавить", "Add")]
public InternetMailAttachment Add(IValue source, string attachmentName = "")
{
Expand All @@ -83,18 +97,31 @@ public InternetMailAttachment Add(IValue source, string attachmentName = "")
throw RuntimeException.InvalidArgumentType(nameof(source));
}

/// <summary>
/// Удаляет все элементы коллекции.
/// </summary>
[ContextMethod("Очистить", "Clear")]
public void Clear()
{
_data.Clear();
}

/// <summary>
/// Получает значение по индексу. Работает аналогично оператору [].
/// </summary>
/// <param name="index">Индекс элемента коллекции.</param>
/// <returns></returns>
[ContextMethod("Получить", "Get")]
public InternetMailAttachment Get(int index)
{
return _data[index];
}

/// <summary>
/// Удаляет почтовое вложение из коллекции.
/// </summary>
/// <param name="element">Индекс элемента коллекции или элемент коллекции.</param>
/// <exception cref="RuntimeException"></exception>
[ContextMethod("Удалить", "Delete")]
public void Delete(IValue element)
{
Expand Down
Loading

0 comments on commit a1b5967

Please sign in to comment.