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
            }
        }