public IEnumerable <ILoggingFilter> ActiveFiltersForRemoteApp(string AppID, General.ErrorLogging.Data.LoggingFilter.GetActiveFiltersDataContext Data) { if (Data == null) { throw new ArgumentNullException("No data specified, please POST the error data as a parent object with a valid GetActiveFiltersDataContext property."); } if (String.IsNullOrWhiteSpace(Data.AccessCode) || Data.AccessCode != Settings.APIWriteOnlyAccessCode) { if (!(User != null && User.Identity != null && User.Identity.IsAuthenticated)) { throw new UnauthorizedAccessException("Invalid Access Code"); } } if (Data.AppContext.AppID == null) { throw new ArgumentNullException("AppContext.AppID is null, please POST the error data as a parent object with a valid AppContext property."); } if (Data.AppContext.AppID.HasValue && Data.AppContext.AppID.Value != int.Parse(AppID)) { throw new ArgumentException("AppID in API path doesn't match AppID specified in AppContext."); } Data.AppContext.AppID = int.Parse(AppID); var filters = General.ErrorLogging.Data.LoggingFilter.GetFiltersCustomView(LoggingFilterViewType.RemoteServer, Data.AppContext.AppID, Data.AppContext, blnActiveOnly: true); return(filters); }
protected async Task <List <LoggingFilterRemoteServerView> > Get() { General.ErrorLogging.Data.LoggingFilter.GetActiveFiltersDataContext request = new General.ErrorLogging.Data.LoggingFilter.GetActiveFiltersDataContext(); request.AccessCode = ErrorReporter.ErrorAPIWriteOnlyAccessCode; request.AppContext = new Data.LoggingFilter.LoggingFilterRequestContext(); request.AppContext.AppID = ErrorReporter.AppID; request.AppContext.Environment = General.Environment.Current.WhereAmI(); try { if (ErrorReporter.ErrorLogUseSQLConnToReport) { return(General.ErrorLogging.Data.LoggingFilter.GetFiltersForRemoteServer(ErrorReporter.AppID, request.AppContext, blnActiveOnly: true)); } else { string apiPath = APIActionPattern_GetFilters.Replace("[AppID]", ErrorReporter.AppID.ToString()); using (var client = new HttpClient()) { client.BaseAddress = ErrorReporter.ErrorEndpointUri(); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage httpResult = await client.PostAsJsonAsync(apiPath, request).ConfigureAwait(false); if (httpResult.IsSuccessStatusCode) { var filters = await httpResult.Content.ReadAsAsync <List <LoggingFilterRemoteServerView> >().ConfigureAwait(false); return(filters); } else { return(new List <LoggingFilterRemoteServerView>()); //If all else fails... use default settings defined in ErrorReporter.ShouldStoreEvent } } } } catch { return(new List <LoggingFilterRemoteServerView>()); //If all else fails... use default settings defined in ErrorReporter.ShouldStoreEvent } }