How can I be sure the war is not coming?
By using sentiment analysis of Cortana cognitive services, we are able to detect moods. We aggregate all the messages incoming to a kingdom and by weighting the newest highest, we create a risk of war. This is coming as a percentage
- Trend – What is the risk only counting the latest messages
- Average – If we consider all the messages, what is the risk
Together with number of messages this calculates a risk of being engaged in a war for a kingdom.
This is done by translating messages to English and then feed them through Text Analytics API to get the mood.
To prevent tampering with the messages, we have implemented functionality for hashing each message with MD5 hashing algorithm and adding it as a property to itself. We then use this to compare them and detect if the message has been modified by any evil beings.
Securing Keys and Connection Strings
We use Azure KeyVault to secure the keys and connection strings we use in the solution. Only Azure AD application has access to read the keys.
The Api has been updated with functionality for updating entries in Cosmos DB. We use client.UpsertDocumentAsync in a Put method and use the
message id to identify the message to be updated.
An additional Get method has also been implemented for filtering messages. Filters include messages by the senders accociation to their Kingdom, messages
by languages and accociation to receivers Kingdom, as well as filtering by priority.
We use Event Grid to emit message and mood event. Azure Function and WebApi subscribe to these events to process messages and generate average and trend of possible war against kingdom.
Site Script Generator
We have a SPFx webpart that can generate Site Scripts
Kingdom Messaging Centre
Each kingdom is represented by it’s own tenant. By using a Sharepoint framework
webpart, the kingdoms can view all messages they have sent and received. This webpart makes an API call to the database and retrieves all messages for the respective kingdom and displayes them in a table.