public ArticleLike AddLike(long userId, int articleId, LikeType likeType) { var historyLike = ArticleLikeRepository.GetAll().Where(model => model.ArticleId == articleId && model.UserId == userId).FirstOrDefault(); if (historyLike != null) { throw new UserFriendlyException(L("YouHasHintIt")); } var like = new ArticleLike() { ArticleId = articleId, UserId = userId, CreationTime = DateTime.Now, Like = likeType }; ArticleLikeRepository.Insert(like); var article = ArticleRepository.Get(articleId); if (likeType == LikeType.Like) { article.Like++; } else if (likeType == LikeType.DisLike) { article.DisLike++; } ArticleRepository.Update(article); CurrentUnitOfWork.SaveChanges(); return(like); }
/// <summary> /// Like request /// </summary> /// <param name="userID"></param> /// <param name="method">POST like, DELETE unlike</param> /// <returns></returns> public async Task <string> LikeComment(string userID, string url, LikeType likeType) { HttpMethod httpMethod = likeType == LikeType.Like ? HttpMethod.Post : HttpMethod.Delete; string resultLike = string.Empty; string UserApi = GenerateApiLikeOnliner(url) + userID + "/like"; if (!HasInternet()) { throw new WebException(); } HttpClientHandler handler = new HttpClientHandler(); if (CookieSession != null) { handler.CookieContainer = CookieSession; } HttpClient httpClient = new HttpClient(handler); HttpRequestMessage postRequest = new HttpRequestMessage(httpMethod, UserApi); postRequest.Headers.Add("Accept", "application/json; charset=utf-8"); postRequest.Headers.Add("X-Requested-With", "XMLHttpRequest"); var response = httpClient.SendAsync(postRequest).Result; var resultJson = await response.Content.ReadAsStringAsync(); Regex pattern = new Regex(@"([0-9]+)"); resultLike = pattern.Match(resultJson).ToString(); if (response.StatusCode == HttpStatusCode.OK) { return(resultLike); } return(resultLike); }
public async Task<IHttpActionResult> DeleteOneById(string targetId, LikeType type) { var operatorId = User.Identity.GetUserId(); switch (type) { case LikeType.ArticleLike: { var existLikes = await _dbContext.ArticleLikes.Where( l => l.ArticleId == targetId && l.OperatorId == operatorId).ToListAsync(); if (existLikes.Count == 0) return NotFound(); existLikes.ForEach(async l => { await _statistics.DecreaseUserLikeCount(l.Article.PrincipalId); }); _dbContext.Likes.RemoveRange(existLikes); break; } case LikeType.CommentLike: { var existLikes = await _dbContext.CommentLikes.Where( l => l.CommentId == targetId && l.OperatorId == operatorId).ToListAsync(); if (existLikes.Count == 0) return NotFound(); existLikes.ForEach(async l => { await _statistics.DecreaseUserLikeCount(l.Comment.CommentatorId); }); _dbContext.Likes.RemoveRange(existLikes); break; } default: throw new ArgumentOutOfRangeException(); } await _dbContext.SaveChangesAsync(); return Ok(); }
private static Result GetLikeCaluseInternal(string fieldName, string paramName, string value, LikeType likeType) { const string escapeChar = @"\"; var dp = new DynamicParameters(); dp.Add(paramName, ToLikeString(value, likeType, escapeChar)); return new Result($@"{fieldName} LIKE @{paramName} ESCAPE '{escapeChar}'", dp); }
public UserLevelLikeMessage(int userId, int levelId, LikeType likeType, ulong countOnAllLevels) { UserId = userId; LevelId = levelId; LikeType = likeType; CountOnAllLevels = countOnAllLevels; }
public OwnerLevelLikeMessage(int ownerId, int levelId, LikeType likeType, uint countOnLevel, ulong countOnAllLevels) { OwnerId = ownerId; LevelId = levelId; LikeType = likeType; CountOnLevel = countOnLevel; CountOnAllLevels = countOnAllLevels; }
private LikeContent ParseLikeContent(JObject jObject, LikeType type) => new LikeContent() { ObjectId = (int)jObject["object_id"], PostId = (int)jObject["post_id"], ObjectType = GetType(jObject["object_type"].ToString()), ObjectOwnerId = (long)jObject["object_owner_id"], Type = type };
public static string BuildLikeRequest(LikeType _type, int _ownerId, uint _itemId, string _token, string _apiVersion) { if (string.IsNullOrWhiteSpace(_token)) { throw new ArgumentException("Token can not be null or empty", nameof(_token)); } var url = string.Format(m_addLikeTemplate, _type.ToString().ToLowerInvariant(), _ownerId, _itemId, _token, _apiVersion); return(url); }
public void AddLike(LikeType likeType, LikeDetails exist = LikeDetails.Voited) { if (likeType == LikeType.Like) { Raiting.AddLike(exist); } else { Raiting.AddDislike(exist); } }
private static NonEmptyString ToLikeString(string input, LikeType likeType, NonEmptyString escapeChar) { return (likeType == LikeType.Right ? input.ToLikeRightString(escapeChar) : likeType == LikeType.Left ? input.ToLikeLeftString(escapeChar) : input.ToLikeString(escapeChar)); }
public async Task LikeCurrentAudio(ulong guildId, ulong userId, LikeType likeType) { var playerBag = GetPlayerBag(guildId); var ar = new AudioRating { AudioIdentifier = playerBag.Player.CurrentTrack.Identifier, GuildId = guildId, UserId = userId, LikeType = likeType }; await _audioRatingRepository.SetAudioRating(ar); UpdatePlayerView(guildId); }
public string GetCssClassByLikeType(LikeType likeType) { switch (likeType) { case LikeType.Home: return "fb-like-home"; break; case LikeType.VoteVideo: return "fb-like-votevideo"; break; case LikeType.MaVideo: return "fb-like-mavideo"; break; default: throw new ArgumentOutOfRangeException("likeType"); } }
public LikeDetails AddReview(string accountid, LikeType likeType) { if (Reviews == null) { Reviews = new Collection <Review>(); } Review obj = Reviews.SingleOrDefault(x => x.User.Id == accountid); if (obj == null) { var r = new Review { ID = Guid.NewGuid(), Like = likeType == LikeType.Like, User_Id = accountid }; Reviews.Add(r); if (r.Like) { Likes++; } else { Dislikes++; } return(LikeDetails.Voited); } if (obj.Like && likeType == LikeType.Dislike) { Likes--; Dislikes++; obj.Like = false; return(LikeDetails.Changed); } if (!obj.Like && likeType == LikeType.Like) { Likes++; Dislikes--; obj.Like = true; return(LikeDetails.Changed); } return(LikeDetails.NotChanged); }
/// <summary> /// NOT LIKE语句 /// </summary> /// <param name="txt"></param> /// <param name="type"></param> /// <returns></returns> public QCondition NotLike(string txt, LikeType type = LikeType.Default) { if (txt == null) { return(QCondition.False); } switch (type) { case LikeType.Default: return(new QColumnValueCondition(this, "NOT LIKE '" + EscapeLikeParam2(txt) + "'")); case LikeType.StartWith: return(new QColumnValueCondition(this, "NOT LIKE '%" + EscapeLikeParam(txt) + "'")); case LikeType.EndWith: return(new QColumnValueCondition(this, "NOT LIKE '" + EscapeLikeParam(txt) + "%'")); case LikeType.Contains: default: return(new QColumnValueCondition(this, "NOT LIKE '%" + EscapeLikeParam(txt) + "%'")); } }
/// <summary> /// filter /// </summary> /// <param name="userId"></param> /// <param name="likeType"></param> /// <returns></returns> private static Expression <Func <LikeEntity, bool> > GetFilter(int?userId, LikeType likeType) { Expression <Func <LikeEntity, bool> > filter = null; if (userId == null) { return(filter); } else { if (likeType == LikeType.ILike) { filter = v => v.LikeUserId == userId; } else if (likeType == LikeType.LikeMe) { filter = v => v.LikedUserId == userId; } } return(filter); }
public static object GetLikeParameterValue(this string value, LikeType type = LikeType.Contains) { if (value == null) { return(DBNull.Value); } switch (type) { case LikeType.Contains: return("%" + value + "%"); case LikeType.Starts: return(value + "%"); case LikeType.Ends: return("%" + value); case LikeType.Equal: return(value); } return(value); }
public Like(long userId, long itemId, LikeType value) { UserId = userId; PromotionItemId = itemId; Value = value; }
/// <summary> /// Like request /// </summary> /// <param name="userID"></param> /// <param name="method">POST like, DELETE unlike</param> /// <returns></returns> public async Task<string> LikeComment(string userID, string url, LikeType likeType) { HttpMethod httpMethod = likeType == LikeType.Like ? HttpMethod.Post : HttpMethod.Delete; string resultLike = string.Empty; string UserApi = GenerateApiLikeOnliner(url) + userID + "/like"; if (!HasInternet()) throw new WebException(); HttpClientHandler handler = new HttpClientHandler(); if (CookieSession != null) { handler.CookieContainer = CookieSession; } HttpClient httpClient = new HttpClient(handler); HttpRequestMessage postRequest = new HttpRequestMessage(httpMethod, UserApi); postRequest.Headers.Add("Accept", "application/json; charset=utf-8"); postRequest.Headers.Add("X-Requested-With", "XMLHttpRequest"); var response = httpClient.SendAsync(postRequest).Result; var resultJson = await response.Content.ReadAsStringAsync(); Regex pattern = new Regex(@"([0-9]+)"); resultLike = pattern.Match(resultJson).ToString(); if (response.StatusCode == HttpStatusCode.OK) { return resultLike; } return resultLike; }
public GetCurrentMemberLikesQuery(IAuthenticatedUser user, LikeType likeType) { User = user; LikeType = likeType; }
private static string ToLikeString(string input, LikeType likeType, string escapeChar) { return likeType == LikeType.Right ? input.ToLikeRightString(escapeChar) : likeType == LikeType.Left ? input.ToLikeLeftString(escapeChar) : input.ToLikeString(escapeChar); }
/// <summary> /// /// </summary> /// <param name="core"></param> /// <param name="itemType"></param> /// <param name="itemId"></param> /// <param name="rating"></param> /// <remarks>ItemRated should implement a transaction.</remarks> public static void LikeItem(Core core, ItemKey itemKey, LikeType like) { if (core == null) { throw new NullCoreException(); } if (itemKey.Id < 1) { throw new InvalidItemException(); } if (like < LikeType.Dislike || like > LikeType.Like) { throw new InvalidLikeException(); } /* after 7 days release the IP for dynamics ip fairness */ SelectQuery query = Like.GetSelectQueryStub(core, typeof(Like)); query.AddCondition("like_item_id", itemKey.Id); query.AddCondition("like_item_type_id", itemKey.TypeId); QueryCondition qc1 = query.AddCondition("user_id", core.LoggedInMemberId); QueryCondition qc2 = qc1.AddCondition(ConditionRelations.Or, "like_ip", core.Session.IPAddress.ToString()); qc2.AddCondition("like_time_ut", ConditionEquality.GreaterThan, UnixTime.UnixTimeStamp() - 60 * 60 * 24 * 7); /*DataTable ratingsTable = db.Query(string.Format("SELECT user_id FROM ratings WHERE rate_item_id = {0} AND rate_item_type = '{1}' AND (user_id = {2} OR (rate_ip = '{3}' AND rate_time_ut > UNIX_TIMESTAMP() - (60 * 60 * 24 * 7)))", itemId, Mysql.Escape(itemType), loggedInMember.UserId, session.IPAddress.ToString()));*/ DataTable likesTable = core.Db.Query(query); ItemInfo ii = null; try { ii = new ItemInfo(core, itemKey); } catch (InvalidIteminfoException) { ii = ItemInfo.Create(core, itemKey); } if (likesTable.Rows.Count > 0) { Like liked = new Like(core, likesTable.Rows[0]); if (liked.Liking == like) { throw new AlreadyLikedException(); } switch (like) { case LikeType.Like: ii.DecrementDislikes(); ii.IncrementLikes(); break; case LikeType.Dislike: ii.DecrementLikes(); ii.IncrementDislikes(); break; } UpdateQuery uQuery = new UpdateQuery("likes"); uQuery.AddField("like_time_ut", UnixTime.UnixTimeStamp()); uQuery.AddField("like_liking", (sbyte)like); uQuery.AddField("like_ip", core.Session.IPAddress.ToString()); uQuery.AddCondition("user_id", core.LoggedInMemberId); uQuery.AddCondition("like_item_id", itemKey.Id); uQuery.AddCondition("like_item_type_id", itemKey.TypeId); // commit the transaction core.Db.Query(uQuery); } else { switch (like) { case LikeType.Like: ii.IncrementLikes(); break; case LikeType.Dislike: ii.IncrementDislikes(); break; } InsertQuery iQuery = new InsertQuery("likes"); iQuery.AddField("like_item_id", itemKey.Id); iQuery.AddField("like_item_type_id", itemKey.TypeId); iQuery.AddField("user_id", core.LoggedInMemberId); iQuery.AddField("like_time_ut", UnixTime.UnixTimeStamp()); iQuery.AddField("like_liking", (sbyte)like); iQuery.AddField("like_ip", core.Session.IPAddress.ToString()); // commit the transaction core.Db.Query(iQuery); } return; }
private static DataResult GetLikeCaluseInternal(NonEmptyString fieldName, NonEmptyString paramName, NonEmptyString value, LikeType likeType) { var escapeChar = (NonEmptyString)@"\"; var dp = new DynamicParameters(); dp.Add(paramName.Value.ToUpperInvariant(), ToLikeString(value, likeType, escapeChar).Value); return(new DataResult((NonEmptyString)$@"{fieldName.Value.ToUpperInvariant()} LIKE @{paramName.Value.ToUpperInvariant()} ESCAPE '{escapeChar}'", dp)); }
public FbLikeViewModel(string pageUrl, LikeType likeType, bool sendButton = false) { PageUrl = pageUrl; LikeType = likeType; SendButton = sendButton; }
//TODO: 没有对返回的user列表和当前用户做 互相关注判断。 #region like public LikeCoutomerResponse LikeInfoResponseMapping(LikeEntity source, LikeType likeType) { if (source == null) { return null; } var t = LikeInfoResponseMapping(new List<LikeEntity> { source }, likeType); if (t == null || t.Count == 0) { return null; } return new LikeCoutomerResponse { CustomerInfoResponse = t[0], Id = source.Id }; }
public Task <List <MemberSummary> > GetLikes(LikeType likeType, CancellationToken cancellationToken) { var user = new AuthenticatedUser(User); return(_mediator.Send(new GetCurrentMemberLikesQuery(user, likeType), cancellationToken)); }
/// <summary> /// /// </summary> /// <param name="source"></param> /// <param name="likeType">true 是喜欢(返回的喜欢人的列表) false 是被喜欢(返回的是被喜欢人的列表)</param> /// <returns></returns> public List<ShowCustomerInfoResponse> LikeInfoResponseMapping(List<LikeEntity> source, LikeType likeType) { if (source == null || source.Count == 0) { return null; } List<int> mpUserList = null; if (likeType == LikeType.ILike) { mpUserList = source.Select(v => v.LikedUserId).Distinct().ToList(); } else { if (likeType == LikeType.LikeMe) { mpUserList = source.Select(v => v.LikeUserId).Distinct().ToList(); } } List<ShowCustomerInfoResponse> users = null; if (mpUserList != null) { users = ShowCustomerInfoResponseMapping(_customerRepository.GetListByIds(mpUserList.ToList())).ToList(); } return users ?? new List<ShowCustomerInfoResponse>(0); }
public ItemLikedEventArgs(LikeType likeing, User rater, ItemKey itemKey) { this.likeing = likeing; this.rater = rater; this.itemKey = itemKey; }