public ServiceResponse <int> AddRate(Rate rate) { if (rate == null) { throw new ApplicationException("Comment was not provided"); } var request = _repo.GetSearchRequest(entityType: rate.EntityType, entityID: rate.EntityID, ownerUserID: rate.OwnerUserID); var result = _repo.Search(request); if (result.Items.Count > 0) { throw new ApplicationException("This entity was already rated!"); } rate.AddedDate = DateTime.Now; var newID = _repo.Insert(rate); rate.ID = newID; return(new ServiceResponse <int>(newID)); }