public override PostRatingEntity Create(PostRatingEntity entity) { IRepository <PostEntity> repositoryOfPost = new RepositoryOfPost(context, serviceOfSearch); var Post = entity.Post; if (Post == null) { Post = repositoryOfPost.Read(a => a.Id == entity.PostId); } Post.SumOfScore += entity.Score; Post.CountOfScore++; repositoryOfPost.Update(Post); return(base.Create(entity)); }
public override async Task Delete(PostRatingEntity entity) { IRepository <PostEntity> repositoryOfPost = new RepositoryOfPost(context, serviceOfSearch); var Post = entity.Post; if (Post == null) { Post = repositoryOfPost.Read(a => a.Id == entity.PostId); } Post.SumOfScore -= entity.Score; Post.CountOfScore--; repositoryOfPost.Update(Post); await base.Delete(entity); }
public override PostRatingEntity Update(PostRatingEntity entity, params Expression <Func <PostRatingEntity, object> >[] properties) { IRepository <PostEntity> repositoryOfPost = new RepositoryOfPost(context, serviceOfSearch); var lastPostRating = Read(a => a.Id == entity.Id); var Post = entity.Post; if (Post == null) { Post = repositoryOfPost.Read(a => a.Id == entity.PostId); } Post.SumOfScore -= lastPostRating.Score; Post.SumOfScore += entity.Score; repositoryOfPost.Update(Post); entity = base.Update(entity, properties); return(entity); }
public override async Task Delete(UserProfileEntity entity) { IRepository <PostEntity> repositoryOfPost = new RepositoryOfPost(context, serviceOfSearch); var posts = entity.Posts; if (posts == null) { posts = repositoryOfPost.ReadMany(new System.Linq.Expressions.Expression <System.Func <PostEntity, bool> >[] { a => a.UserProfileId == entity.Id }, null); } posts = posts.ToList(); if (posts != null) { foreach (var item in posts) { repositoryOfPost.Delete(item); } } await base.Delete(entity); }