/// <summary> /// Constructs a query that is the or of the given queries. /// </summary> /// <typeparam name="T">The type of ParseObject being queried.</typeparam> /// <param name="source">An initial query to 'or' with additional queries.</param> /// <param name="queries">The list of ParseQueries to 'or' together.</param> /// <returns>A query that is the or of the given queries.</returns> public static ParseQuery <T> Or <T>(this ParseQuery <T> source, params ParseQuery <T>[] queries) where T : ParseObject { return(ParseQuery <T> .Or(queries.Concat(new[] { source }))); }
private IEnumerator queryMessages(ParseUser partner, bool updateUI) { /* Task partnerSearch = ParseUser.Query .WhereEqualTo("nick", "Thor") .FirstAsync().ContinueWith(t => { partner = t.Result; }); while (!partnerSearch.IsCompleted) yield return null; */ IEnumerable<ParseObject> messageList = new List<ParseObject>(); ParseQuery<ParseObject> queryPartner = new ParseQuery<ParseObject>("Message").WhereEqualTo("sender", partner).WhereEqualTo("receiver", ParseUser.CurrentUser); ParseQuery<ParseObject> querySender = new ParseQuery<ParseObject>("Message").WhereEqualTo("sender", ParseUser.CurrentUser).WhereEqualTo("receiver", partner); ParseQuery<ParseObject> query = querySender.Or(queryPartner).OrderByDescending("timestamp").Limit(messageLimit); query.Include("sender"); Task task = query.FindAsync().ContinueWith(t => { messageList = t.Result; }); while (!task.IsCompleted) yield return null; messageList = (from m in messageList orderby (m.Get<long>("timestamp")) ascending select m).ToList(); userMessages[partner.ObjectId] = messageList; if(updateUI) showMessages(messageList); }