コード例 #1
0
        private async System.Threading.Tasks.Task <SfDocumentDBHelper> checkAndCreateSfDocumentDB()
        {
            DocumentClient dc = new DocumentClient(new Uri(this._documentDB_EndpointUri), this._documentDB_PrimaryKey);

            SfDocumentDBHelper sfDocumentDBHelper = new SfDocumentDBHelper(dc, this._companyId);

            await checkDatabaseIfNotExists(sfDocumentDBHelper);

            await checkCollectionIfNotExists(sfDocumentDBHelper);

            return(sfDocumentDBHelper);
        }
コード例 #2
0
        private async Task putAlarmDocument(SfDocumentDBHelper sfDocumentDBHelper, AlarmMessageHelper alarmDocumentHelper)
        {
            AlarmDocument alarmDocument = new AlarmDocument
            {
                Type                        = DocumentType.AlarmDocument,
                MessageCatalogId            = alarmDocumentHelper.MessageId,
                AlarmRuleCatalogId          = alarmDocumentHelper.AlarmRuleId,
                AlarmRuleCatalogName        = alarmDocumentHelper.AlarmRuleName,
                AlarmRuleCatalogDescription = alarmDocumentHelper.AlarmRuleDescription,
                TriggeredTime               = alarmDocumentHelper.TriggeredTime, // Machine Local Time
                AlarmSent                   = alarmDocumentHelper.AlarmSent,
                MessageDocumentId           = alarmDocumentHelper.MessageDocumentId,
                Message                     = alarmDocumentHelper.Payload
            };

            await sfDocumentDBHelper.DocumentClient.CreateDocumentAsync(
                UriFactory.CreateDocumentCollectionUri(sfDocumentDBHelper.DocumentDbDatabaseName, sfDocumentDBHelper.DocumentDbCollectionName),
                alarmDocument);
        }
コード例 #3
0
        private async System.Threading.Tasks.Task checkCollectionIfNotExists(SfDocumentDBHelper sfDocumentDBHelper)
        {
            try
            {
                await sfDocumentDBHelper.DocumentClient.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri(sfDocumentDBHelper.DocumentDbDatabaseName, sfDocumentDBHelper.DocumentDbCollectionName));

                ConsoleLog.WriteDocDBLogToConsole("Collection Found {0}", sfDocumentDBHelper.DocumentDbCollectionName);
            }
            catch (DocumentClientException de)
            {
                // If the document collection does not exist, create a new collection
                if (de.StatusCode == HttpStatusCode.NotFound)
                {
                    ConsoleLog.WriteDocDBLogToConsole("Collection NotFound {0}", sfDocumentDBHelper.DocumentDbCollectionName);
                    ConsoleLog.WriteBlobLogError("Collection NotFound {0}", sfDocumentDBHelper.DocumentDbCollectionName);
                }

                throw;
            }
        }
コード例 #4
0
        private async Task <string> putMessageDocument(string deviceId, int messageCatalogId, JObject payload)
        {
            //showDeviceMessage(deviceId, messageCatalogId, payload.ToString());

            MessageDocument messageDocument = new MessageDocument
            {
                //Id = SfDocumentDBHelper.combineDocumentName(deviceId, messageCatalogId), // Marked the Id property will generate a random GUID automatically.
                Type             = DocumentType.MessageDocument,
                DeviceId         = deviceId,
                MessageCatalogId = messageCatalogId,
                Message          = payload
            };

            SfDocumentDBHelper sfDocumentDBHelper = _msgProcessorFactoryModel.SfDocumentDBHelper;
            Document           document           = await sfDocumentDBHelper.DocumentClient.CreateDocumentAsync(
                UriFactory.CreateDocumentCollectionUri(sfDocumentDBHelper.DocumentDbDatabaseName, sfDocumentDBHelper.DocumentDbCollectionName),
                messageDocument);

            ConsoleLog.WriteMessageAlarmLogToConsoleInfo("Document.Id={0}", document.Id);
            return(document.Id);
        }
コード例 #5
0
        private async System.Threading.Tasks.Task checkDatabaseIfNotExists(SfDocumentDBHelper sfDocumentDB)
        {
            // Check to verify a database with the id=FamilyDB does not exist
            try
            {
                await sfDocumentDB.DocumentClient.ReadDatabaseAsync(UriFactory.CreateDatabaseUri(sfDocumentDB.DocumentDbDatabaseName));

                ConsoleLog.WriteDocDBLogToConsole("Database Found {0}", sfDocumentDB.DocumentDbDatabaseName);
            }
            catch (DocumentClientException de)
            {
                // If the database does not exist, create a new database
                if (de.StatusCode == HttpStatusCode.NotFound)
                {
                    ConsoleLog.WriteDocDBLogToConsole("Database NotFound {0}", sfDocumentDB.DocumentDbDatabaseName);
                    ConsoleLog.WriteBlobLogError("Database NotFound {0}", sfDocumentDB.DocumentDbDatabaseName);
                }

                throw;
            }
        }
コード例 #6
0
        private async Task <SfDocumentDBHelper> fetchDocumentDB()
        {
            try
            {
                SfDocumentDBHelper sfDocumentDBHelper = await checkAndCreateSfDocumentDB();

                return(sfDocumentDBHelper);
            }
            catch (DocumentClientException de)
            {
                Exception baseException = de.GetBaseException();
                ConsoleLog.WriteToConsole("{0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message, baseException.Message);
                ConsoleLog.WriteBlobLogError("fetchDocumentDB: {0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message, baseException.Message);
                throw;
            }
            catch (Exception e)
            {
                Exception baseException = e.GetBaseException();
                ConsoleLog.WriteToConsole("Error: {0}, Message: {1}", e.Message, baseException.Message);
                ConsoleLog.WriteBlobLogError("fetchDocumentDB: Error: {0}, Message: {1}", e.Message, baseException.Message);
                throw;
            }
        }