コード例 #1
0
        /// <summary>
        /// Добавить удаленное Апи
        /// </summary>
        /// <param name="remoteApi"></param>
        /// <returns></returns>
        public JsExecutorBuilder AddRemoteApi(RemoteJsOpenApi remoteApi)
        {
            if (_remoteApis.ContainsKey(remoteApi.Name))
            {
                throw new InvalidOperationException(string.Format(ExceptionTexts.RemoteApiWithNameAlreadyRegisteredFormat, remoteApi.Name));
            }

            _remoteApis.Add(remoteApi.Name, remoteApi);
            return(this);
        }
コード例 #2
0
        /// <summary>
        /// Отредактировать удаленное апи
        /// </summary>
        /// <param name="remoteApi"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> EditRemoteApi(RemoteJsOpenApi remoteApi)
        {
            var remoteApis = Components.RemoteApis;

            var hostName = remoteApi.Name;

            if (!await remoteApis.ContainsKeyAsync(hostName))
            {
                return(new BaseApiResponse(false, $"Хост не найден по названию '{hostName}'"));
            }

            await remoteApis.SetValueAsync(hostName, remoteApi);

            return(new BaseApiResponse(true, $"Данные хоста '{hostName}' обновлены"));
        }
コード例 #3
0
        /// <summary>
        /// Добавить удаленное Апи
        /// </summary>
        /// <param name="remoteApi"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> AddRemoteApi(RemoteJsOpenApi remoteApi)
        {
            var error = string.Format(ExceptionTexts.RemoteApiWithNameAlreadyRegisteredFormat, remoteApi.Name);

            var remoteApis = Components.RemoteApis;
            var key        = remoteApi.Name;

            if (await remoteApis.ContainsKeyAsync(key))
            {
                return(new BaseApiResponse(false, error));
            }

            await remoteApis.SetValueAsync(key, remoteApi);

            return(new BaseApiResponse(true, "Добавлено"));
        }
コード例 #4
0
        internal static async Task <RemoteJsOpenApiDocs> GetRemoteDocsViaHttpRequest(this IServerJsHttpClient httpClient, RemoteJsOpenApi remoteApi)
        {
            var response = await httpClient.GetAsync(remoteApi.HostUrl, remoteApi.Name, HttpPaths.GetDocs);

            var docsRecord = new RemoteJsOpenApiDocs
            {
                Description        = remoteApi,
                ReceivingException = response.ExcepionData,
                DocsReceivedOnUtc  = DateTime.UtcNow
            };

            try
            {
                if (response.IsSuccessfull())
                {
                    docsRecord.Docs           = response.GetResult <JsOpenApiDocs>();
                    docsRecord.IsDocsReceived = true;
                }
                else
                {
                    docsRecord.IsDocsReceived    = false;
                    docsRecord.DocsReceivedOnUtc = DateTime.UtcNow;
                }
            }
            catch (Exception ex)
            {
                docsRecord.IsDocsReceived     = false;
                docsRecord.ReceivingException = new ExcepionData
                {
                    Message    = ex.Message,
                    StackTrace = ex.StackTrace
                };
            }

            return(docsRecord);
        }