Exemplo n.º 1
0
 public void ApplyFilter(Filters.IFilter filter)
 {
     filter.Run(this);
 }
Exemplo n.º 2
0
        public sealed override bool Process(HttpServer.IHttpRequest request, HttpServer.IHttpResponse response, HttpServer.Sessions.IHttpSession session)
        {
            if (request.UriPath == GetPageUrl())
            {
                StringBuilder sb = new StringBuilder(HtmlTemplates.ThreadFiltersPageTemplate);

                IncludeCommonHtml(sb);

                sb.Replace("{{inline-title}}", GetPageTitle());
                sb.Replace("{{boards-list-html}}", ThreadServerModule.get_board_list(UrlParameters.Board));
                sb.Replace("{{available-filters-list}}", get_available_filters());
                sb.Replace("{{filters-list}}", GetThreadFiltersTableHtml());

                WriteFinalHtmlResponse(response, sb.ToString());

                return(true);
            }

            if (request.UriPath.StartsWith(GetPageUrl() + "/"))
            {
                string mode  = request.QueryString["mode"].Value;
                string board = request.QueryString[UrlParameters.Board].Value;

                BoardWatcher bw;

                switch (mode)
                {
                case "add":
                {
                    if (Program.active_dumpers.ContainsKey(board))
                    {
                        bw = Program.active_dumpers[board];
                    }
                    else
                    {
                        bw = new BoardWatcher(board);
                        Program.active_dumpers.Add(board, bw);
                    }

                    string filter_type = request.QueryString["type"].Value;
                    string filter_exp  = request.QueryString["exp"].Value;

                    if (string.IsNullOrEmpty(filter_exp) || string.IsNullOrEmpty(filter_type))
                    {
                        return(false);
                    }
                    else
                    {
                        ChanArchiver.Filters.IFilter f = get_filter(filter_type, filter_exp);
                        if (f != null)
                        {
                            bw.AddFilter(f);
                            bw.SaveFilters();
                            response.Redirect(GetPageUrl());
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }

                case "edit":
                    return(false);

                case "delete":
                {
                    if (Program.active_dumpers.ContainsKey(board))
                    {
                        string index = request.QueryString["i"].Value;

                        bw = Program.active_dumpers[board];

                        int inde = -1;
                        Int32.TryParse(index, out inde);

                        if (inde >= 0 && inde <= bw.WhitelistFilters.Length - 1)
                        {
                            bw.RemoveFilter(inde);
                            bw.SaveFilters();
                            response.Redirect(GetPageUrl());
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }

                case "editnotes":
                {
                    string fID        = request.QueryString["filterindex"].Value;
                    string notes_text = request.QueryString["notestext"].Value;

                    if (string.IsNullOrEmpty(fID) || string.IsNullOrEmpty(board))
                    {
                        response.Redirect(GetPageUrl());
                        return(true);
                    }
                    else
                    {
                        if (Program.active_dumpers.ContainsKey(board))
                        {
                            bw = Program.active_dumpers[board];

                            int index = -1;

                            Int32.TryParse(fID, out index);

                            if (index >= 0 && index < bw.WhitelistFilters.Length)
                            {
                                Filters.IFilter fil = bw.WhitelistFilters[index];

                                fil.Notes = notes_text;
                                bw.SaveFilters();
                                response.Redirect(GetPageUrl());
                                return(true);
                            }
                        }
                    }
                }
                    return(false);

                default:
                    return(false);
                }
            }

            return(false);
        }
Exemplo n.º 3
0
 public static ICriteria ApplyFilter <TEntity, TKey>(this ICriteria criteria, IFilter filter, IResultTransformer transformer, bool requiredTransformer = false)
     where TEntity : Entity <TKey>
 {
     filter.Apply <TEntity, TKey>(criteria, transformer, requiredTransformer);
     return(criteria);
 }
Exemplo n.º 4
0
 public static ICriteria ApplyCustomFilter(this ICriteria criteria, IFilter filter)
 {
     filter.ApplyCustomFilter(criteria);
     return(criteria);
 }
Exemplo n.º 5
0
 public static ICriteria ApplyFilter <TEntity, TKey>(this ICriteria criteria, IFilter filter)
     where TEntity : Entity <TKey>
 {
     filter.Apply <TEntity, TKey>(criteria);
     return(criteria);
 }