public void SetLikeForNews(int memberId, NewsLikeRequesetModel 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 like = news.Likes.SingleOrDefault(r => r.MemberId == memberId); if (model.Type.HasValue) { if (like == null) { news.Likes.Add(new OrgComm.Data.Models.NewsLike { MemberId = memberId, LikeType = model.Type.Value, CreatedDate = DateTime.Now }); } else { like.LikeType = model.Type.Value; } } else { if (like != null) { dbc.Entry(like).State = System.Data.Entity.EntityState.Deleted; } } news.LikeCount = news.Likes.Count(); dbc.SaveChanges(); } }
public ResultModel SetLikeForNews(NewsLikeRequesetModel param) { ResultModel result = new ResultModel(); try { int?memberId = IdentityHelper.GetMemberId(); if (!memberId.HasValue) { throw new OrgException("Invalid MemberId"); } NewsBL bl = new NewsBL(); bl.SetLikeForNews(memberId.Value, param); result.Status = true; result.Message = "Update successfully"; } 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); }