Example #1
0
        /// <summary>
        /// Выполняет запрос на сохранение документов.
        /// </summary>
        public Task <ServiceResult <DocumentPostQueryResult> > PostAsync(DocumentPostQueryClient query)
        {
            var requestUri = BuildRequestUri(_basePath);

            var requestContent = new MultipartFormDataContent
            {
                { new StringContent(Serializer.ConvertToString(query.Document)), "\"document\"" }
            };

            if (query.Files != null)
            {
                foreach (var file in query.Files)
                {
                    var fileContent = new StreamContent(file.Value);

                    if (!string.IsNullOrEmpty(file.ContentType))
                    {
                        fileContent.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
                    }

                    requestContent.Add(fileContent, $"\"{file.Key}\"", $"\"{file.Name}\"");
                }
            }

            return(RequestExecutor.PostAsync <ServiceResult <DocumentPostQueryResult> >(requestUri, requestContent));
        }
        /// <summary>
        /// Осуществляет вход пользователя в систему через внутренний провайдер.
        /// </summary>
        /// <param name="userName">Имя пользователя.</param>
        /// <param name="password">Пароль пользователя.</param>
        /// <param name="remember">Запомнить пользователя.</param>
        public async Task SignInAsync(string userName, string password, bool remember = true)
        {
            var requestUri = BuildRequestUri("/Auth/SignInInternal");

            var requestData = new DynamicWrapper
            {
                { "UserName", userName },
                { "Password", password },
                { "Remember", remember }
            };

            var requestContent = new StringContent(Serializer.ConvertToString(requestData), Encoding.UTF8, HttpConstants.JsonContentType);

            var result = await RequestExecutor.PostAsync <DynamicWrapper>(requestUri, requestContent);

            var error = result["Error"] as string;

            if (error != null)
            {
                throw new InvalidOperationException(error);
            }
        }
        /// <summary>
        /// Осуществляет выход пользователя из системы.
        /// </summary>
        public async void SignOutAsync()
        {
            var requestUri = BuildRequestUri("/Auth/SignOut");

            await RequestExecutor.PostAsync <DynamicWrapper>(requestUri);
        }