public NewsCommentResultModel GetCommentByNewsId(NewsCommentByCriteriaRequestModel param) { NewsCommentResultModel result = new NewsCommentResultModel(); try { NewsBL bl = new NewsBL(); var comments = bl.GetCommentsByNewsId(param); result.Status = true; result.Message = "Got " + comments.Count.ToString() + " comments"; result.Comments = comments; } catch (OrgException oex) { result.Status = false; result.Message = oex.Message; } catch (Exception ex) { result.Status = false; result.Message = AppConfigs.InternalErrorMessage; if (AppConfigs.DebugInternalMessage) { result.InternalMessage = ex.Message; } } return(result); }
public IList <NewsCommentModel> GetCommentsByNewsId(NewsCommentByCriteriaRequestModel model) { if ((model == null) || !model.NewsId.HasValue) { throw new OrgException("Invalid news"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.News news = dbc.News.SingleOrDefault(r => r.Id == model.NewsId.Value); if (news == null) { throw new OrgException("News not found"); } var qry = (from c in news.Comments join m in dbc.Members on c.MemberId equals m.Id select new OrgComm.Data.Models.NewsComment { Id = c.Id, MemberId = (m.DelFlag)? 0 : c.MemberId, NewsId = c.NewsId, Text = c.Text, Type = c.Type, CreatedDate = c.CreatedDate } ); qry = qry.OrderByDescending(r => r.CreatedDate); if (model != null) { if (model.PageSize.HasValue && (model.PageSize.Value > 0)) { if (model.Page.HasValue && (model.Page.Value > 1)) { qry = qry.Skip((model.Page.Value - 1) * model.PageSize.Value); } qry = qry.Take(model.PageSize.Value); } } return(qry.Select(r => new NewsCommentModel { Id = r.Id, MemberId = r.MemberId, Text = r.Text, Type = r.Type, CreatedDate = r.CreatedDate.ToString(AppConfigs.GeneralDateTimeFormat), Ticks = r.CreatedDate.Ticks }).ToList()); } }