Пример #1
0
        public async Task<string> Log(string message)
        {
            LoggerModel logger = new LoggerModel();
            logger.eventTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
            logger.source = "API DISCOVERY";
            logger.message = message;

            APIDiscoveryContext ctx = new APIDiscoveryContext();
            var logmodule = ctx.modules.Where(x => x.guid == Constants.ASTE_MODULES_LOGGER && !x.isdeleted && x.active && x.version == "1.0").FirstOrDefault();
            if(logmodule == null)
            {
                throw new HttpRequestException("Mandatory module not installed: LoggerModule");
            }
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(logmodule.api_url + "/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var callUrl = logmodule.version + "/log";
                if (logger != null)
                {
                    HttpResponseMessage response = await client.PutAsJsonAsync(callUrl, logger);
                    if (response.IsSuccessStatusCode)
                    {
                        var data = await response.Content.ReadAsAsync<object>();
                        return data.ToString();

                    }
                    else
                    {
                        throw new HttpResponseException(response);
                    }
                }
            }
            return null;
        }