示例#1
0
        private async Task <DocDBHelper> createDocDBHelper(CompanyInSubscriptionPlan cisp)
        {
            try
            {
                DocDBHelper docDBHelper = new DocDBHelper(cisp.CosmosDBConnectionString);

                await docDBHelper.checkDatabaseIfNotExists(cisp.CosmosDBName);

                await docDBHelper.checkCollectionIfNotExists(cisp.CosmosDBName, cisp.CosmosDBCollectionID);

                //CosmosDbHelper cdsCosmosDbHelper = new CosmosDbHelper(cisp.CosmosDBConnectionString, cisp.CosmosDBName, cisp.CosmosDBCollectionID);

                //await cdsCosmosDbHelper.checkDatabaseIfNotExists();

                //await cdsCosmosDbHelper.checkCollectionIfNotExists();

                return(docDBHelper);
            }
            catch (DocumentClientException de)
            {
                Exception baseException = de.GetBaseException();
                _consoleLog.Error("{0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message, baseException.Message);
                _consoleLog.BlobLogError("fetchDocumentDB: {0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message, baseException.Message);
                throw;
            }
            catch (Exception e)
            {
                Exception baseException = e.GetBaseException();
                _consoleLog.Error("Error: {0}, Message: {1}", e.Message, baseException.Message);
                _consoleLog.BlobLogError("fetchDocumentDB: Error: {0}, Message: {1}", e.Message, baseException.Message);
                throw;
            }
        }
        private static async Task PolluteCosmosDBCollection()
        {
            Console.WriteLine("Polluting given cosmosdb collection with documents.");
            DocDBHelper dbHelp = new DocDBHelper(CosmosDBAccountName, CosmosDBDatabaseName, CosmosDBCollectionName, CosmosDBKey);
            await dbHelp.Connect();

            await dbHelp.AddData();

            return;
        }
示例#3
0
        public async void ThreadProc()
        {
            string partitionKey = "";
            int    collectionTTL = 0, collectionRU = 0;

            AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel();
            try
            {
                DocDBHelper docDBHelper = new DocDBHelper(_ConnectionString);
                switch (_Action)
                {
                case "create cosmosdb collection":
                    partitionKey  = _JsonMessage["Content"]["partitionKey"].ToString();
                    collectionTTL = int.Parse(_JsonMessage["Content"]["collectionTTL"].ToString());
                    collectionRU  = int.Parse(_JsonMessage["Content"]["collectionRU"].ToString());
                    await docDBHelper.CreateDatabaseAndCollection(_DatabaseName, _CollectionId, partitionKey, collectionTTL, collectionRU);

                    break;

                case "purge cosmosdb collection":
                    await docDBHelper.PurgeDatabase(_DatabaseName);

                    break;

                case "update cosmosdb collection":
                    collectionTTL = int.Parse(_JsonMessage["Content"]["collectionTTL"].ToString());
                    collectionRU  = int.Parse(_JsonMessage["Content"]["collectionRU"].ToString());
                    await docDBHelper.UpdateCollection(_DatabaseName, _CollectionId, collectionTTL, collectionRU);

                    break;
                }
                ProvisionApp._appLogger.Info("[Cosmosdb] " + _Action + " success: Databae-" + _DatabaseName + ", CollectionId-" + _CollectionId);
                operationTask.UpdateTaskBySuccess(_TaskId);
            }
            catch (Exception ex)
            {
                StringBuilder logMessage = new StringBuilder();
                logMessage.AppendLine("[Cosmosdb] " + _Action + " Failed: Databae-" + _DatabaseName + ", CollectionId-" + _CollectionId);
                logMessage.AppendLine("\tMessage:" + JsonConvert.SerializeObject(this));
                logMessage.AppendLine("\tException:" + ex.Message);
                ProvisionApp._appLogger.Error(logMessage);
                operationTask.UpdateTaskByFail(_TaskId, ex.Message);
            }
        }
示例#4
0
        private async Task <string> putMessage2CosmosDb(string deviceId, int messageCatalogId, JObject payload)
        {
            TelemetryDocument messageDocument = new TelemetryDocument
            {
                //Id = xxxx, // Marked the Id property will generate a random GUID automatically.
                companyId        = _companyId,
                iotDeviceId      = deviceId,
                messageCatalogId = messageCatalogId,
                messageType      = DocumentType.TelemetryDocument,
                messageContent   = payload
            };

            DocDBHelper cosmosDbHelper = _epfm.docDBHelper;
            Document    document       = await cosmosDbHelper.putDocumentAsync(messageDocument);

            //_consoleLog.Info("Message Document.Id={0}", document.Id);
            //_consoleLog.BlobLogInfo("Message Document.Id={0}", document.Id);
            return(document.Id);
        }
示例#5
0
        private async Task <string> putEvent2CosmosDb(string deviceId, DocDBHelper docDBHelper, EventMessageModel eventMessageModel)
        {
            EventDocument eventDocument = new EventDocument
            {
                companyId                   = _companyId,
                iotDeviceId                 = deviceId,
                messageCatalogId            = eventMessageModel.MessageId,
                messageType                 = DocumentType.EventDocument,
                eventRuleCatalogId          = eventMessageModel.EventRuleId,
                eventRuleCatalogName        = eventMessageModel.EventRuleName,
                eventRuleCatalogDescription = eventMessageModel.EventRuleDescription,
                triggeredTime               = eventMessageModel.TriggeredTime, // Machine Local Time
                eventSent                   = eventMessageModel.EventSent,
                messageDocumentId           = eventMessageModel.MessageDocumentId,
                messageContent              = eventMessageModel.Payload
            };

            Document document = await docDBHelper.putDocumentAsync(eventDocument);

            //_consoleLog.Info("Event Document.Id={0}", document.Id);

            return(document.Id);
        }
示例#6
0
        /// <summary>
        /// 根据文档ID修改文档信息
        /// </summary>
        /// <param name="DocM">文档信息</param>
        /// <returns>bool值</returns>
        public static bool UpdateDoc(DocModel DocM)
        {
            UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"];
            LogInfoModel logModel = new LogInfoModel(); //操作日志
            bool         isSucc   = false;              //定义返回变量

            #region 设置操作日志内容
            //设置公司代码
            logModel.CompanyCD = userInfo.CompanyCD;
            //设置登陆用户ID
            logModel.UserID = userInfo.UserID;
            //设置模块ID 模块ID在ConstUtil中定义,以便维护
            logModel.ModuleID = ConstUtil.MODULE_ID_DOC_LIST;
            //操作单据编号  编号
            logModel.ObjectID = DocM.DocumentNo;
            //操作对象 操作的表信息
            logModel.ObjectName = ConstUtil.TABLE_NAME_DOC;
            //涉及关键元素 涉及其他业务、表关系
            logModel.Element = ConstUtil.LOG_PROCESS_UPDATE;
            //备注 操作类型
            logModel.Remark = ConstUtil.LOG_PROCESS_UPDATE;
            #endregion

            try
            {
                isSucc = DocDBHelper.UpdateDoc(DocM);
            }
            catch (System.Exception ex)
            {
                #region  操作失败时记录日志到文件
                //定义变量
                LogInfo logSys = new LogInfo();
                //设置日志类型 需要指定为系统日志
                logSys.Type = LogInfo.LogType.SYSTEM;
                //指定系统日志类型 出错信息
                logSys.SystemKind = LogInfo.SystemLogKind.SYSTEM_ERROR;
                //指定登陆用户信息
                logSys.UserInfo = userInfo;
                //设定模块ID
                logSys.ModuleID = ConstUtil.MODULE_ID_DOC_LIST;
                //描述
                logSys.Description = ex.ToString();
                //输出日志
                LogUtil.WriteLog(logSys);
                #endregion
            }

            if (isSucc)//操作成功
            {
                logModel.Remark += "成功";
            }
            else//操作失败
            {
                logModel.Remark += "失败";
            }

            //记录日志
            LogDBHelper.InsertLog(logModel);

            return(isSucc);
        }
示例#7
0
 /// <summary>
 /// 导出文档列表
 /// </summary>
 /// <param name="DocM"></param>
 /// <param name="FileDateBegin"></param>
 /// <param name="FileDateEnd"></param>
 /// <param name="ord"></param>
 /// <returns></returns>
 public static DataTable ExportDoc(DocModel DocM, string FileDateBegin, string FileDateEnd, string ord)
 {
     return(DocDBHelper.ExportDoc(DocM, FileDateBegin, FileDateEnd, ord));
 }
示例#8
0
        /// <summary>
        /// 获取文档分类
        /// </summary>
        /// <param name="CompanyCD"></param>
        /// <returns></returns>
        public static DataTable GetDocType()
        {
            UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"];

            return(DocDBHelper.GetDocType(userInfo.CompanyCD));
        }
示例#9
0
 /// <summary>
 /// 根据ID获得文档详细信息
 /// </summary>
 /// <param name="CompanyCD">公司代码</param>
 /// <param name="DocID">文档ID</param>
 /// <returns>文档信息</returns>
 public static DataTable GetDocByID(string CompanyCD, int DocID)
 {
     return(DocDBHelper.GetDocByID(CompanyCD, DocID));
 }
示例#10
0
 /// <summary>
 /// 根据条件检索文档信息
 /// </summary>
 /// <param name="DocM">文档信息</param>
 /// <param name="FileDateBegin">开始时间</param>
 /// <param name="FileDateEnd">结束时间</param>
 /// <returns>文档列表信息</returns>
 public static DataTable GetDocBycondition(DocModel DocM, string FileDateBegin, string FileDateEnd, int pageIndex, int pageCount, string ord, ref int totalCount)
 {
     return(DocDBHelper.GetDocBycondition(DocM, FileDateBegin, FileDateEnd, pageIndex, pageCount, ord, ref totalCount));
 }