Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improved logging and added the logic to sign the build in the CI (#12)
* Basic setup of COM server and presence provider * Added the basic implementations of all the interfaces and more than basic of some interfaces Made a separate file for the AutomationBase class Fixed the logic for registering the type library by fixing the path given Added a new tlb extracted from Skype for Business Added a global exception handler Completed the implementation of IMClientContact class Completed the implementation of IMClientSelf class Added several dependent classes such as IMClientContactInformationDictionary, IMClientContactSettingDictionary Added the basic implementation of IContactEndpoint, IContactManager, IContactSubscription, IGroup, IGroupCollection, ILocaleString interfaces * Review fixes * Added the logic of showing the presence icon fetching status from Mattermost when Outlook starts Added required attributes like ComVisible and ComSourceInterfaces on top of all the classes Added some required Nuget packages like System.Text.Json etc and modified .gitignore to avoid the packages Added the logic to return different values from GetContactInformation depending on the type of value requested Made a HTTP client and added the necessary headers Made the self object by hard-coding the email id of the current user Added the logic of fetching the Mattermost server url from the registry and making a request for fetching status of a user Made a Constants class for storing the mapping between the Mattermost status and the Outlook availability Added a basic implementation of the IAsyncOperation interface and the Lookup method in the IMClientContactManager class * Added EOF in all the files * Removed useless imports from all the files * Removed useless directives and deleted useless file * Added polling strategy to trigger presence updates for all the contacts Fixed the presence text not showing in Outlook using ContactInformationType.ucPresenceActivityId Made a map in constants mapping availabilities with values of activity id Changed the logic in CanStart method of IMClientContact and the value of UnifiedCommunicationType property to observe the changes Solved the issue in triggering the presence change by returning the uri from ContactInformationType.ucPresenceInstantMessageAddresses in the GetContactInformation method Made a class IMClientContactInformationChangedEventData which implements ContactInformationChangedEventData Added the logic for handling groups in IMClientContactManager class Modified the call to OnLookup callback function Added a timer which runs in an interval of 10 seconds to trigger OnContactInformationChangedEvent for every contact in the list * Review fixes * Created a websocket client to connect to Mattermost websocket and added proper handling Moved all the Mattermost client related logic in a separate client class Added the logic to connect to Mattermost websocket and added an event handler in the ContactSubscription class to trigger presence change events for subscribed contacts Added the logic to use the status got from websocket event and not call the API Added the logic to not use the previous status for a contact but fetch the latest status when pages are changed in Outlook Changed the logic inside the ContactManager.Lookup function and added comments Optimized the way subscribed contacts are stored in the ContactSubscription class * Review fixes * Review fixes * Removed useless logs and added some comments Little refactoring * Added authentication with every request to the Mattermost server and the logic to read values from config file Uncommented and modified the logic to register the type library Modified the client to read the values from a config.json file and create one if doesn't exist Added the logic to send the secret with every request to the Mattermost server Changed the websocket reconnection timeout to 30 seconds * Implemented the status cache and added a setup project Created a store class to store the statuses for all the Mattermost users Added the logic to always return the availability from the store and always update the store based on websocket event Added the logic to initialize the store when the app starts Removed the hard coded self url from the ClientBase class Added and configured a setup project to create a setup for the app * Renamed the setup project as BuildSetup and modified .gitignore * Final refactoring Fixed the logic of creating entries in the registry so that Outlook can look for the app * Added empty ci.yml file in Github workflows * Added basic test setup for the CI script * Added CI script to create build and release in Github Modified the Author, Manufacturer and TargetFramework of the setup project Made the websocket reconnection timeout configurable via config.json Replaced all occurences of "" with string.Empty * Modified the CI workflow to run for tags only * Modified the name of the final zip file to contain the github tag * Fixed the filename of the zip created after the build in CI * Fixed the assembly name for the CSExeCOMServer * Added documentation * Added logging through a log file * WIP: Added the logic of creating entries in the registry while installing the app * Added logging through Event logs and completed the logic of creating registry entries while installing Removed logging in a file logic from the app.config Added logic to create a new event log and source while installing the setup project Added the newly created event source as the trace listener Improved logging of errors by adding message with the stack trace * Added the logic to specify a size for the event log * Improved logging in the app to figure out the cause of the error * Added the logic to sign the build with a certificate in the CI yml script * Added the logic to create a shortcut in the Start Menu after installation
- Loading branch information