nature_net.user_controls.list_populator.get_all_comments C# (CSharp) Метод

get_all_comments() публичный Метод

public get_all_comments ( object arg, DoWorkEventArgs e ) : void
arg object
e System.ComponentModel.DoWorkEventArgs
Результат void
        public void get_all_comments(object arg, DoWorkEventArgs e)
        {
            if (e.Argument == null) return;
            e.Result = (object)(new List<comment_item_generic>());
            try
            {
                comment_item item = (comment_item)e.Argument;
                naturenet_dataclassDataContext db = new naturenet_dataclassDataContext();
                var r = from c in db.Feedbacks
                        where (c.Feedback_Type.name == "Comment") && (c.object_type == item._object_type.ToString())
                        && (c.object_id == item._object_id) && (c.parent_id == 0)
                        orderby c.date descending
                        select c;
                if (r != null)
                {
                    List<Feedback> comments = r.ToList<Feedback>();
                    List<comment_item_generic> comment_items = new List<comment_item_generic>();
                    List<List<comment_item_generic>> children_items = new List<List<comment_item_generic>>();
                    for (int counter=0;counter<comments.Count; counter++)
                    {
                        Feedback f = comments[counter];
                        int level = 0;
                        List<comment_item_generic> tmp_list = new List<comment_item_generic>();
                        tmp_list.Add(create_comment_item(f, level));
                        add_comment_items_for(f, ref level, tmp_list, db);
                        add_children_to_list(tmp_list, children_items);
                    }
                    condense_lists(children_items, comment_items);
                    e.Result = (object)comment_items;
                }
                else
                {
                    e.Result = (object)(new List<comment_item_generic>());
                }
            }
            catch (Exception ex)
            {
                log.WriteErrorLog(ex);
            }
        }