-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
23 changed files
with
2,815 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio 15 | ||
VisualStudioVersion = 15.0.26430.15 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YandexDiskSharp", "YandexDiskSharp\YandexDiskSharp.csproj", "{FE0B453D-1E3B-4AB6-BBAD-F6F973356897}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{FE0B453D-1E3B-4AB6-BBAD-F6F973356897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{FE0B453D-1E3B-4AB6-BBAD-F6F973356897}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{FE0B453D-1E3B-4AB6-BBAD-F6F973356897}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{FE0B453D-1E3B-4AB6-BBAD-F6F973356897}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
EndGlobal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
using System.Net; | ||
|
||
namespace YandexDiskSharp | ||
{ | ||
public class DiskException : WebException | ||
{ | ||
public DiskException(Models.Exception exception, System.Exception innerException, WebExceptionStatus status, WebResponse response) : base(exception?.Message, innerException, status, response) | ||
{ | ||
Description = exception.Description; | ||
Error = exception.Error; | ||
} | ||
|
||
#region ~Properties~ | ||
|
||
/// <summary> | ||
/// Техническое описание ошибки. | ||
/// </summary> | ||
public string Description { get; } | ||
|
||
/// <summary> | ||
/// Уникальный код ошибки. | ||
/// </summary> | ||
public string Error { get; } | ||
|
||
#endregion | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
namespace YandexDiskSharp | ||
{ | ||
public static class MediaTypes | ||
{ | ||
/// <summary> | ||
/// Аудио-файлы. | ||
/// </summary> | ||
private const string Audio = "audio"; | ||
|
||
/// <summary> | ||
/// Файлы резервных и временных копий. | ||
/// </summary> | ||
public const string Backup = "backup"; | ||
|
||
/// <summary> | ||
/// Электронные книги. | ||
/// </summary> | ||
public const string Book = "book"; | ||
|
||
/// <summary> | ||
/// Сжатые и архивированные файлы. | ||
/// </summary> | ||
public const string Compressed = "compressed"; | ||
|
||
/// <summary> | ||
/// Файлы с базами данных. | ||
/// </summary> | ||
public const string Data = "data"; | ||
|
||
/// <summary> | ||
/// Файлы с кодом (C++, C#, XML и т. п.), а также служебные файлы IDE. | ||
/// </summary> | ||
public const string Development = "development"; | ||
|
||
/// <summary> | ||
/// Образы носителей информации в различных форматах и сопутствующие файлы (например, CUE). | ||
/// </summary> | ||
public const string DiskImage = "diskimage"; | ||
|
||
/// <summary> | ||
/// Документы офисных форматов (Word, OpenOffice и т. п.). | ||
/// </summary> | ||
public const string Document = "document"; | ||
|
||
/// <summary> | ||
/// зашифрованные файлы. | ||
/// </summary> | ||
public const string Encoded = "encoded"; | ||
|
||
/// <summary> | ||
/// Исполняемые файлы. | ||
/// </summary> | ||
public const string Executable = "executable"; | ||
|
||
/// <summary> | ||
/// Файлы с флэш-видео или анимацией. | ||
/// </summary> | ||
public const string Flash = "flash"; | ||
|
||
/// <summary> | ||
/// Файлы шрифтов. | ||
/// </summary> | ||
public const string Font = "font"; | ||
|
||
/// <summary> | ||
/// Изображения. | ||
/// </summary> | ||
public const string Image = "image"; | ||
|
||
/// <summary> | ||
/// Файлы настроек для различных программ. | ||
/// </summary> | ||
public const string Settings = "settings"; | ||
|
||
/// <summary> | ||
/// Файлы офисных таблиц (Numbers, Lotus). | ||
/// </summary> | ||
public const string Spreadsheet = "spreadsheet"; | ||
|
||
/// <summary> | ||
/// Текстовые файлы. | ||
/// </summary> | ||
public const string Text = "text"; | ||
|
||
/// <summary> | ||
/// Неизвестный тип. | ||
/// </summary> | ||
public const string Unknown = "unknown"; | ||
|
||
/// <summary> | ||
/// Видео-файлы. | ||
/// </summary> | ||
public const string Video = "video"; | ||
|
||
/// <summary> | ||
/// Различные файлы, используемые браузерами и сайтами (CSS, сертификаты, файлы закладок). | ||
/// </summary> | ||
public const string Web = "web"; | ||
|
||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
using Newtonsoft.Json; | ||
using System.IO; | ||
|
||
namespace YandexDiskSharp.Models | ||
{ | ||
/// <summary> | ||
/// Идентификаторы комментариев. | ||
/// </summary> | ||
public class CommentIds | ||
{ | ||
#region ~Constructor~ | ||
|
||
internal CommentIds(JsonTextReader jsonReader) | ||
{ | ||
int depth = jsonReader.Depth; | ||
while (jsonReader.Read()) | ||
{ | ||
switch (jsonReader.TokenType) | ||
{ | ||
case JsonToken.PropertyName: | ||
switch (jsonReader.Value.ToString()) | ||
{ | ||
case "private_resource": | ||
PrivateResource = jsonReader.ReadAsString(); | ||
break; | ||
case "public_resource": | ||
PublicResource = jsonReader.ReadAsString(); | ||
break; | ||
} | ||
break; | ||
case JsonToken.EndObject: | ||
if (jsonReader.Depth == depth) | ||
return; | ||
break; | ||
} | ||
} | ||
} | ||
|
||
#endregion | ||
|
||
#region ~Methods~ | ||
|
||
/// <summary> | ||
/// Преобразует строковое представление json ответа в эквивалентный ему класс <see cref="CommentIds"/>. | ||
/// </summary> | ||
/// <param name="s">Строка, содержащая преобразуемый json ответ.</param> | ||
/// <returns>Класс <see cref="CommentIds"/>, эквивалентный json ответу, содержащемуся в параметре s.</returns> | ||
public static CommentIds Parse(string s) | ||
{ | ||
using (var stringReader = new StringReader(s)) | ||
using (var jsonReader = new JsonTextReader(stringReader)) | ||
{ | ||
return new CommentIds(jsonReader); | ||
} | ||
} | ||
|
||
/// <summary> | ||
/// Преобразует строковое представление json ответа в эквивалентный ему класс <see cref="CommentIds"/>. Возвращает значение, указывающее, успешно ли выполнено преобразование. | ||
/// </summary> | ||
/// <param name="s">Строка, содержащая преобразуемый json ответ.</param> | ||
/// <param name="result">При возвращении этим методом содержиткласс <see cref="CommentIds"/>, эквивалентный json ответу, содержащемуся в параметре s, если преобразование выполнено успешно, или null, если оно завершилось сбоем. Преобразование завершается сбоем, если параметр s равен null или <see cref="System.String.Empty"/> или не находится в правильном формате. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в объекте result, будет перезаписано.</param> | ||
/// <returns>Значение true, если параметр s успешно преобразован; в противном случае — значение false.</returns> | ||
public static bool TryParse(string s, out CommentIds result) | ||
{ | ||
try | ||
{ | ||
result = Parse(s); | ||
return true; | ||
} | ||
catch | ||
{ | ||
result = null; | ||
return false; | ||
} | ||
} | ||
|
||
#endregion | ||
|
||
#region ~Properties~ | ||
|
||
/// <summary> | ||
/// Идентификатор комментариев для приватных ресурсов. | ||
/// </summary> | ||
public string PrivateResource { get; } | ||
|
||
/// <summary> | ||
/// Идентификатор комментариев для публичных ресурсов. | ||
/// </summary> | ||
public string PublicResource { get; } | ||
|
||
#endregion | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
using Newtonsoft.Json; | ||
using System.IO; | ||
|
||
namespace YandexDiskSharp.Models | ||
{ | ||
/// <summary> | ||
/// Данные о свободном и занятом пространстве на Диске. | ||
/// </summary> | ||
public class Disk | ||
{ | ||
#region ~Constructor~ | ||
|
||
internal Disk(JsonTextReader jsonReader) | ||
{ | ||
int depth = jsonReader.Depth; | ||
while (jsonReader.Read()) | ||
switch (jsonReader.TokenType) | ||
{ | ||
case JsonToken.PropertyName: | ||
switch (jsonReader.Value.ToString()) | ||
{ | ||
case "max_file_size": | ||
MaxFileSize = long.Parse(jsonReader.ReadAsString()); | ||
break; | ||
case "total_space": | ||
TotalSpace = long.Parse(jsonReader.ReadAsString()); | ||
break; | ||
case "trash_size": | ||
TrashSize = long.Parse(jsonReader.ReadAsString()); | ||
break; | ||
case "is_paid": | ||
IsPaid = jsonReader.ReadAsBoolean().Value; | ||
break; | ||
case "used_space": | ||
UsedSpace = long.Parse(jsonReader.ReadAsString()); | ||
break; | ||
case "system_folders": | ||
SystemFolders = new SystemFolders(jsonReader); | ||
break; | ||
case "revision": | ||
Revision = long.Parse(jsonReader.ReadAsString()); | ||
break; | ||
} | ||
break; | ||
case JsonToken.EndObject: | ||
if (jsonReader.Depth == depth) | ||
return; | ||
break; | ||
} | ||
} | ||
|
||
#endregion | ||
|
||
#region ~Methods~ | ||
|
||
/// <summary> | ||
/// Преобразует строковое представление json ответа в эквивалентный ему класс <see cref="Disk"/>. | ||
/// </summary> | ||
/// <param name="s">Строка, содержащая преобразуемый json ответ.</param> | ||
/// <returns>Класс <see cref="Disk"/>, эквивалентный json ответу, содержащемуся в параметре s.</returns> | ||
public static Disk Parse(string s) | ||
{ | ||
using (var stringReader = new StringReader(s)) | ||
using (var jsonReader = new JsonTextReader(stringReader)) | ||
{ | ||
return new Disk(jsonReader); | ||
} | ||
} | ||
|
||
/// <summary> | ||
/// Преобразует строковое представление json ответа в эквивалентный ему класс <see cref="Disk"/>. Возвращает значение, указывающее, успешно ли выполнено преобразование. | ||
/// </summary> | ||
/// <param name="s">Строка, содержащая преобразуемый json ответ.</param> | ||
/// <param name="result">При возвращении этим методом содержиткласс <see cref="Disk"/>, эквивалентный json ответу, содержащемуся в параметре s, если преобразование выполнено успешно, или null, если оно завершилось сбоем. Преобразование завершается сбоем, если параметр s равен null или <see cref="System.String.Empty"/> или не находится в правильном формате. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в объекте result, будет перезаписано.</param> | ||
/// <returns>Значение true, если параметр s успешно преобразован; в противном случае — значение false.</returns> | ||
public static bool TryParse(string s, out Disk result) | ||
{ | ||
try | ||
{ | ||
result = Parse(s); | ||
return true; | ||
} | ||
catch | ||
{ | ||
result = null; | ||
return false; | ||
} | ||
} | ||
|
||
#endregion | ||
|
||
#region ~Properties~ | ||
|
||
/// <summary> | ||
/// Максимальный поддерживаемый размер файла. | ||
/// </summary> | ||
public long MaxFileSize { get; } | ||
|
||
/// <summary> | ||
/// Общий объем диска (байт). | ||
/// </summary> | ||
public long TotalSpace { get; } | ||
|
||
/// <summary> | ||
/// Общий размер файлов в Корзине (байт). Входит в <see cref="UsedSpace"/>. | ||
/// </summary> | ||
public long TrashSize { get; } | ||
|
||
/// <summary> | ||
/// Признак наличия купленного места. | ||
/// </summary> | ||
public bool IsPaid { get; } | ||
|
||
/// <summary> | ||
/// Используемый объем диска (байт). | ||
/// </summary> | ||
public long UsedSpace { get; } | ||
|
||
/// <summary> | ||
/// Адреса системных папок в Диске пользователя. | ||
/// </summary> | ||
public SystemFolders SystemFolders { get; } | ||
|
||
/// <summary> | ||
/// Текущая ревизия Диска. | ||
/// </summary> | ||
public long Revision { get; } | ||
|
||
#endregion | ||
} | ||
} |
Oops, something went wrong.