public async Task <ActionResult> Index(int userId, [FromBody] ForwardChanged change) { var user = await db.Users.Where(u => u.UserId == userId).SingleOrDefaultAsync() ?? throw new Exception($"Invalid userId ({userId}) specified."); if (IsSubscribed(user.SubscriptionLevel, change, user.SupportManagerUserId)) { await botClient.SendTextMessageAsync(user.ChatId, $"Forward changed from {change.OldForward.User.DisplayName} to {change.NewForward.User.DisplayName}"); } return(Ok("Success")); }
private static bool IsSubscribed(SubscriptionLevel level, ForwardChanged change, int userId) { if (level == SubscriptionLevel.All) { return(true); } if (change.NewForward.User.Id == userId) { return(level == SubscriptionLevel.ToMe || level == SubscriptionLevel.FromOrToMe); } if (change.OldForward.User.Id == userId) { return(level == SubscriptionLevel.FromOrToMe); } return(false); }