Alert when TFS team query results change - tfs

Is it possible to create a TFS alert that notifies the user when the results of a certain query has changed?!
Example:
I have a query which finds 10 work items as a result
one of those work items has changed that it does not fulfill this query anymore (query results should be 9).
I would like a notification telling me that the results of the query has changed (also referring to the work item that has changed)
The other way around should be also valid, that a work item was modified to fulfill the query (query results should be 11).

You can try CatLight status notifier. It will show a notification on the desktop new work item matches the query or when this work item changes.
In addition, if you miss that notification, you can always see what changed on the dashboard:
The app currently will not notify you when work item stops matching the query, but you can create an inverse query to catch such changes.

There is no way to do this directly.
You may want to try creating a Notification, but you are going to struggle if your query is complicated.
https://[youraccount].visualstudio.com/_notifications

Related

Is there a way to listen for changes in a collection WITHOUT getting back the documents in Firestore

Suppose I have a collection called 'books' and a page called "all books" in my app. Now let's say I want a little message to pop up in the top right that says "This list is outdated" every time there is an addition, deletion, or change in my 'books' collection. Is there any way to achieve this without having the listener send back all the documents in the 'books' collection each time there is a change? I only want to be notified when the data is outdated and nothing else.
If you know how to achieve this please let me know. I'm good with any language but a solution written in Swift will be preferred.
Thanks in advance!
Just add a field updatedon to your books document and set it to the current time when doing any write (on delete also then, you will have to find a way to hide deleted books).
And set a listener like this:
colref.where("updatedon", ">", new Date())
.orderBy("updatedon","desc")
.limit(1)
This way you are only billed 1 read every time.
It's not possible. A listener on a document or collection always receives the entire document that changed.
If you want a "lite" notification, you could try to use FCM to send a message to the client when a document of interest has changed, but then you'll have to keep a record on the backend of every interesting document for every user, check that list with every change using a Cloud Functions trigger, then notify each client of each interesting change. This is not at all the same as a listener, and would be a lot of work.

Firebase check for existing email with relative/wildcard path

Im trying to check the emails of my users in my firebase database, if their email already exists. My json looks like that:
I dont know how to get the full path to email, because every User starts with the Unique Identifier and I dont have that information. Is it possible to use a wildcard /users/*/email or something like that?
this.afdb.database.ref('users/*/email').orderByChild('email').on('value', (snapshot)=>{
console.log(snapshot);
});
When a Firebase Database query runs against a location, it considers each child node under that location. And for each child node you can test the value of properties at a known path under that child.
There is no support for wildcards, nor does one seem needed for your case here:
this.afdb.database.ref('users').orderByChild('email').equalTo("pqoo#poam.com").on('value', (snapshot)=>{
snapshot.forEach((child) => {
console.log(child.val());
});
});
So the two changes are:
We query location users order by email and only return nodes with value pqoo#poam.com.
There will potentially be multiple results. So the snapshot contains a list of those results. Even if there is only a single result, the snapshot will contain a list of one result. So we use snapshot.forEach(...) to loop over the results.

Issue finding results in Microsoft Graph /me/drive/search endpoint

I'm having a hard time figuring out how the /me/drive/search endpoint matches documents.
When I try /v1.0/me/drive/search(q='myQuery') I receive documents with the name myQuery back. This makes sense. What doesn't make sense is that if try /v1.0/me/drive/search(q='.') I receive a giant list of results from across my organization. It appears that these documents are accessible to me, but when I try to search for one of them by name they don't come up.
Example
/v1.0/me/drive/search(q='.') returns many documents, one of which is named "My Test Document"
/v1.0/me/drive/search(q='My Test Document') returns no results.
One would expect that the 2nd query returns the same document as the first query.
We've made a change that we believe should help for this specific query. Hopefully you'll get consistent results now!

Select fields on Microsoft Graph list of Messages

I'm using Microsoft Graph to get a list of messages for a user.
I'm using the following URL
https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messages
One important thing that is returned by this is the meetingMessageType when the message revolves around a meeting request.
I would also like to get the uniqueBody of the message. However, that's not provided by default. One needs to specifically ask for that field. I can do that by adding ?$select=uniqueBody to the URL.
However, that now means that I need to add the rest of the fields I want to the $select query parameter. That's not a big deal until I run into meetingMessageType. Microsoft Graph returns:
Could not find a property named 'meetingMessageType' on type 'Microsoft.OutlookServices.Message'.
What can I do to ensure I get both uniqueBody and meetingMessageType?
Try this:
$select=uniqueBody, microsoft.graph.eventMessage/meetingMessageType
Yogesh's answer is close but will result in a Only one level select is supported error.
As long as you don't care about the value of meetingMessageType, you can use this select:
$select=microsoft.graph.eventMessage, uniqueBody
You'll note that the results no longer include meetingMessageType as a property. The list however is limited to only those messages that are eventMessage, effectively giving you a result set filtered to only show meeting requests.

TFS Alerts on Iteration ID Change Not Firing

I have setup an alert on our TFS server attached to the Work Item Changed event using Alerts Explorer. The only clause I have in the alert has a field of Iteration ID and an operator of Changes. My filter expression is :
"ChangedFields/IntegerFields/Field[ReferenceName='System.IterationId']/OldValue" <> "ChangedFields/IntegerFields/Field[ReferenceName='System.IterationId']/NewValue"
However, when I change the Iteration of a work item I never receive an email. Other alerts based on the Work Item Changed event on the same server are coming through with no problem.
I 'm not sure what "Iteration ID" stands for, but when you change the "Iteration" in your work item, then "Iteration Path" gets surely changed.
So reform your clause for "Iteration Path" instead:
"CoreFields/StringFields/Field[ReferenceName='System.IterationPath']/NewValue" under '\'
This corresponds to a configuration like this:

Resources