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