Skip to content

Commit f840635

Browse files
committed
Документировал часть классов
1 parent 65bee9e commit f840635

File tree

11 files changed

+154
-5
lines changed

11 files changed

+154
-5
lines changed

src/OneScript/Application/FormDataCollectionContext.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010

1111
namespace OneScript.WebHost.Application
1212
{
13+
/// <summary>
14+
/// Значения полей формы во входящем запросе.
15+
/// Обращения к полям формы выполняется с помощью оператора [].
16+
/// В качестве индекса используется имя поля.
17+
/// </summary>
1318
[ContextClass("КоллекцияДанныхФормы")]
1419
public class FormDataCollectionContext : AutoContext<FormDataCollectionContext>, ICollectionContext, IEnumerable<KeyAndValueImpl>
1520
{
@@ -35,9 +40,13 @@ public override void SetIndexedValue(IValue index, IValue val)
3540
throw RuntimeException.PropIsNotWritableException("index");
3641
}
3742

43+
/// <summary>
44+
/// Коллекция загружаемых файлов (upload)
45+
/// </summary>
3846
[ContextProperty("Файлы")]
3947
public FormFilesCollectionContext Files => _files;
4048

49+
[ContextMethod("Количество")]
4150
public int Count()
4251
{
4352
return _data.Count;

src/OneScript/Application/FormFileContext.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010

1111
namespace OneScript.WebHost.Application
1212
{
13+
/// <summary>
14+
/// Описание файла формы
15+
/// </summary>
1316
[ContextClass("ФайлФормы")]
1417
public class FormFileContext : AutoContext<FormFileContext>
1518
{
@@ -38,15 +41,28 @@ public FormFileContext(IFormFile realObject)
3841
[ContextProperty("Размер")]
3942
public long Length => _realObject.Length;
4043

44+
/// <summary>
45+
/// Заголовки данного файла.
46+
/// </summary>
4147
[ContextProperty("Заголовки")]
4248
public FixedMapImpl Headers => _headers.Value;
4349

50+
/// <summary>
51+
/// Значение заголовка Content-type для данного файла.
52+
/// </summary>
4453
[ContextProperty("ТипСодержимого")]
4554
public string ContentType => _realObject.ContentType;
4655

56+
/// <summary>
57+
/// Значение заголовка Content-disposition для данного файла.
58+
/// </summary>
4759
[ContextProperty("РасположениеСодержимого")]
4860
public string ContentDisposition => _realObject.ContentDisposition;
4961

62+
/// <summary>
63+
/// Открывает поток для чтения содержимого файла
64+
/// </summary>
65+
/// <returns></returns>
5066
[ContextMethod("ОткрытьПотокДляЧтения")]
5167
public GenericStream OpenReadStream()
5268
{

src/OneScript/Application/FormFilesCollectionContext.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88

99
namespace OneScript.WebHost.Application
1010
{
11+
/// <summary>
12+
/// Коллекция переданных с клиента файлов.
13+
/// Обращение к коллекции возможно по числовому индексу или имени поля-файла.
14+
/// </summary>
1115
[ContextClass("КоллекцияФайловФормы")]
1216
public class FormFilesCollectionContext : AutoContext<FormFilesCollectionContext>, ICollectionContext, IEnumerable<FormFileContext>
1317
{
@@ -48,6 +52,7 @@ public FormFileContext this[string index]
4852
}
4953
}
5054

55+
[ContextMethod("Количество")]
5156
public int Count()
5257
{
5358
return _data.Count;

src/OneScript/Application/HttpRequestImpl.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010

1111
namespace OneScript.WebHost.Application
1212
{
13+
/// <summary>
14+
/// Описание входящего запроса HTTP
15+
/// </summary>
1316
[ContextClass("HTTPЗапросВходящий", "HTTPIncomingRequest")]
1417
public class HttpRequestImpl : AutoContext<HttpRequestImpl>
1518
{
@@ -55,19 +58,31 @@ private void UpdateCookies()
5558
// для внутреннего пользования
5659
public HttpRequest RealObject => _realObject;
5760

58-
61+
/// <summary>
62+
/// ФиксированноеСоответствие. Заголовки входящего запроса
63+
/// </summary>
5964
[ContextProperty("Заголовки")]
6065
public FixedMapImpl Headers { get; private set; }
6166

67+
/// <summary>
68+
/// ФиксированноеСоответствие. Cookies входящего запроса
69+
/// </summary>
6270
[ContextProperty("Cookies")]
6371
public FixedMapImpl Cookies { get; private set; }
6472

73+
/// <summary>
74+
/// Получение тела запроса в виде потока для чтения
75+
/// </summary>
76+
/// <returns>Поток</returns>
6577
[ContextMethod("ПолучитьТелоКакПоток")]
6678
public GenericStream GetBodyAsStream()
6779
{
6880
return new GenericStream(_realObject.Body);
6981
}
7082

83+
/// <summary>
84+
/// Коллекция переменных, переданных в качестве данных формы
85+
/// </summary>
7186
[ContextProperty("ДанныеФормы")]
7287
public FormDataCollectionContext FormData
7388
{
@@ -85,16 +100,22 @@ public FormDataCollectionContext FormData
85100
}
86101
}
87102

103+
/// <summary>
104+
/// Текущий метод HTTP
105+
/// </summary>
88106
[ContextProperty("Метод")]
89107
public string Method => _realObject.Method;
90108

109+
/// <summary>
110+
/// Текущая строка запроса (QueryString)
111+
/// </summary>
91112
[ContextProperty("СтрокаЗапроса")]
92113
public string QueryString => _realObject.QueryString.Value;
93114

115+
/// <summary>
116+
/// Путь текущего ресурса
117+
/// </summary>
94118
[ContextProperty("Путь")]
95119
public string Path => _realObject.Path;
96-
97-
//[ContextProperty("Cookies")]
98-
//public object Cookies
99120
}
100121
}

src/OneScript/Application/HttpResponseImpl.cs

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212

1313
namespace OneScript.WebHost.Application
1414
{
15+
/// <summary>
16+
/// Описание исходящего HTTP-ответа
17+
/// </summary>
1518
[ContextClass("HttpОтветИсходящий","HttpOutgoingResponse")]
1619
public class HttpResponseImpl : AutoContext<HttpResponseImpl>
1720
{
@@ -32,13 +35,23 @@ private void UpdateHeaders()
3235
}
3336
Headers = new FixedMapImpl(mapHdrs);
3437
}
35-
38+
39+
/// <summary>
40+
/// Фиксированное соответствие. Заголовки исходящего запроса.
41+
/// Для установки заголовков см. метод УстановитьЗаголовки.
42+
/// </summary>
3643
[ContextProperty("Заголовки")]
3744
public FixedMapImpl Headers { get; private set; }
3845

46+
/// <summary>
47+
/// Возвращаемый код состояния.
48+
/// </summary>
3949
[ContextProperty("КодСостояния")]
4050
public int StatusCode { get=>_realObject.StatusCode; set => _realObject.StatusCode = value; }
4151

52+
/// <summary>
53+
/// Возвращаемый тип содержимого (Content-type)
54+
/// </summary>
4255
[ContextProperty("ТипСодержимого")]
4356
public string ContentType
4457
{
@@ -54,6 +67,10 @@ public string ContentType
5467
// для внутреннего пользования
5568
public HttpResponse RealObject => _realObject;
5669

70+
/// <summary>
71+
/// Устанавливает заголовки текущего ответа
72+
/// </summary>
73+
/// <param name="headers">Соответствие. Устанавливаемые заголовки</param>
5774
[ContextMethod("УстановитьЗаголовки")]
5875
public void SetHeaders(MapImpl headers)
5976
{
@@ -65,6 +82,12 @@ public void SetHeaders(MapImpl headers)
6582
Headers = new FixedMapImpl(headers);
6683
}
6784

85+
/// <summary>
86+
/// Добавляет значение Cookie в ответ
87+
/// </summary>
88+
/// <param name="key">Имя параметра</param>
89+
/// <param name="value">Значение параметра</param>
90+
/// <param name="options">Опции Cookie</param>
6891
[ContextMethod("УстановитьCookie")]
6992
public void SetCookie(string key, string value, CookieOptionsWraper options = null)
7093
{
@@ -74,6 +97,11 @@ public void SetCookie(string key, string value, CookieOptionsWraper options = nu
7497
_realObject.Cookies.Append(key, value, (CookieOptions)options.UnderlyingObject);
7598
}
7699

100+
/// <summary>
101+
/// Удаление значения Cookie
102+
/// </summary>
103+
/// <param name="key">Имя параметра</param>
104+
/// <param name="options">Опции Cookie</param>
77105
[ContextMethod("УдалитьCookie")]
78106
public void RemoveCookie(string key, CookieOptionsWraper options = null)
79107
{
@@ -83,12 +111,21 @@ public void RemoveCookie(string key, CookieOptionsWraper options = null)
83111
_realObject.Cookies.Delete(key, (CookieOptions)options.UnderlyingObject);
84112
}
85113

114+
/// <summary>
115+
/// Открывает Поток, применяемый для наполнения тела ответа.
116+
/// </summary>
117+
/// <returns>Поток</returns>
86118
[ContextMethod("ПолучитьТелоКакПоток")]
87119
public GenericStream GetBodyAsStream()
88120
{
89121
return new GenericStream(_realObject.Body);
90122
}
91123

124+
/// <summary>
125+
/// Устанавливает тело ответа из строки с заданной кодировкой.
126+
/// </summary>
127+
/// <param name="body">Тело ответа</param>
128+
/// <param name="encoding">Кодировка текста ответа</param>
92129
[ContextMethod("УстановитьТелоИзСтроки")]
93130
public void SetBodyFromString(string body, IValue encoding = null)
94131
{
@@ -100,6 +137,10 @@ public void SetBodyFromString(string body, IValue encoding = null)
100137
}
101138
}
102139

140+
/// <summary>
141+
/// Устанавливает ДвоичныеДанные в качестве тела ответа
142+
/// </summary>
143+
/// <param name="data">Данные</param>
103144
[ContextMethod("УстановитьТелоИзДвоичныхДанных")]
104145
public void SetBodyFromBinaryData(BinaryDataContext data)
105146
{

src/OneScript/Application/ScriptedController.cs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
namespace OneScript.WebHost.Application
1313
{
14+
/// <summary>
15+
/// Главный класс, отвечающий за обработку входящего запроса и генерацию ответа.
16+
/// </summary>
1417
[NonController]
1518
public class ScriptedController : ScriptDrivenObject
1619
{
@@ -79,15 +82,29 @@ public ViewDataDictionary FrameworkViewData
7982
}
8083
}
8184

85+
/// <summary>
86+
/// Входящий запрос HTTP
87+
/// </summary>
8288
[ContextProperty("ЗапросHttp")]
8389
public HttpRequestImpl HttpRequest { get; }
8490

91+
/// <summary>
92+
/// Исходящий ответ HTTP
93+
/// </summary>
8594
[ContextProperty("ОтветHttp")]
8695
public HttpResponseImpl HttpResponse { get; }
8796

97+
/// <summary>
98+
/// Действующие значения маршрута для текущего вызова.
99+
/// Тип: Соответствие или Неопределено.
100+
/// Ключами соответствия являются переменные маршрута.
101+
/// </summary>
88102
[ContextProperty("ЗначенияМаршрута")]
89103
public IValue RouteValues { get; }
90104

105+
/// <summary>
106+
/// Данные http-сессии. Механизм сессий использует Cookies для привязки сессии и InMemory хранилище для данных сессии.
107+
/// </summary>
91108
[ContextProperty("Сессия")]
92109
public SessionImpl Session
93110
{
@@ -99,13 +116,23 @@ public SessionImpl Session
99116
}
100117
}
101118

119+
/// <summary>
120+
/// Специализированный объект, предназначенный для передачи данных в генерируемое Представление.
121+
/// Элементы коллекции доступны в Представлении через свойства ViewBag и ViewData.
122+
/// </summary>
102123
[ContextProperty("ДанныеПредставления")]
103124
public ViewDataDictionaryWrapper ViewData
104125
{
105126
get => _osViewData ?? (_osViewData = new ViewDataDictionaryWrapper());
106127
set => _osViewData = value ?? throw new ArgumentException();
107128
}
108129

130+
/// <summary>
131+
/// Вспомогательный метод генерации ответа в виде представления.
132+
/// </summary>
133+
/// <param name="nameOrModel">Имя представления или объект Модели (если используется представление по умолчанию)</param>
134+
/// <param name="model">Объект модели (произвольный)</param>
135+
/// <returns>РезультатДействияПредставление.</returns>
109136
[ContextMethod("Представление")]
110137
public ViewActionResult View(IValue nameOrModel = null, IValue model = null)
111138
{
@@ -132,6 +159,12 @@ public ViewActionResult View(IValue nameOrModel = null, IValue model = null)
132159
return ViewResultByName(nameOrModel.AsString(), model);
133160
}
134161

162+
/// <summary>
163+
/// Вспомогательный метод генерации ответа в виде текстового содержимого
164+
/// </summary>
165+
/// <param name="content">Содержимое ответа</param>
166+
/// <param name="contentType">Кодировка текста ответа</param>
167+
/// <returns>РезультатДействияСодержимое</returns>
135168
[ContextMethod("Содержимое")]
136169
public ContentActionResult Content(string content, string contentType = null)
137170
{
@@ -144,6 +177,13 @@ public ContentActionResult Content(string content, string contentType = null)
144177
return ctResult;
145178
}
146179

180+
/// <summary>
181+
/// Вспомогательный метод генерации ответа в виде скачиваемого файла.
182+
/// </summary>
183+
/// <param name="data">Данные файла (путь или ДвоичныеДанные)</param>
184+
/// <param name="contentType">Содержимое заголовка Content-type</param>
185+
/// <param name="downloadFileName">Имя скачиваемого файла</param>
186+
/// <returns>РезультатДействияФайл</returns>
147187
[ContextMethod("Файл")]
148188
public FileActionResult File(IValue data, string contentType = null, string downloadFileName = null)
149189
{
@@ -167,12 +207,23 @@ public FileActionResult File(IValue data, string contentType = null, string down
167207
return fileResult;
168208
}
169209

210+
/// <summary>
211+
/// Вспомогательный метод, генерирующий код состояния HTTP
212+
/// </summary>
213+
/// <param name="code">Код состояния</param>
214+
/// <returns>РезультатДействияКодСостояния</returns>
170215
[ContextMethod("КодСостояния")]
171216
public StatusCodeActionResult StatusCode(int code)
172217
{
173218
return StatusCodeActionResult.Constructor(code);
174219
}
175220

221+
/// <summary>
222+
/// Вспомогательный метод, генерирующий ответ в виде http-редиректа
223+
/// </summary>
224+
/// <param name="url">Адрес перенаправления</param>
225+
/// <param name="permanent">Признак постоянного (permanent) перенаправления.</param>
226+
/// <returns>РезультатДействияПеренаправление</returns>
176227
[ContextMethod("Перенаправление")]
177228
public RedirectActionResult Redirect(string url, bool permanent = false)
178229
{

src/OneScript/Application/WebGlobalContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
using ScriptEngine.HostedScript;
77
using ScriptEngine.HostedScript.Library;
88
using ScriptEngine.Machine;
9+
using ScriptEngine.Machine.Contexts;
910

1011
namespace OneScript.WebHost.Application
1112
{
13+
[GlobalContext(Category = "Глобальный контекст", ManualRegistration = true)]
1214
public class WebGlobalContext : IAttachableContext
1315
{
1416
// в вебе не все части SystemGlobalContext должны быть доступны

src/OneScript/Infrastructure/Implementations/OscriptApplicationModelProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Linq;
55
using System.Reflection;
66
using Microsoft.AspNetCore.Mvc.ApplicationModels;
7+
using OneScript.WebHost.Application;
78
using ScriptEngine.Environment;
89
using ScriptEngine.Machine.Contexts;
910

src/OneScript/Infrastructure/Implementations/ScriptedControllerActivator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Linq;
55
using System.Threading.Tasks;
66
using Microsoft.AspNetCore.Mvc;
7+
using OneScript.WebHost.Application;
78
using ScriptEngine;
89
using ScriptEngine.Environment;
910
using ScriptEngine.Machine;

0 commit comments

Comments
 (0)