/// <summary>
        /// 创建运行sql信息
        /// </summary>
        /// <param name="runtimeSqlModel"></param>
        /// <returns></returns>
        private async Task <RuntimeSqlInfo> CreateAsync(RuntimeSqlModel runtimeSqlModel)
        {
            var runtimeSqlInfo = new RuntimeSqlInfo
            {
                FCreateTime   = DateTimeUtil.Now,
                FExecutedTime = runtimeSqlModel.FExecutedTime,
                FIsDeleted    = false,
                FIsSuccess    = runtimeSqlModel.FIsSuccess,
                FProjectName  = runtimeSqlModel.FProjectName,
                FRequestGuid  = runtimeSqlModel.FRequestGuid,
                FServicerMac  = runtimeSqlModel.FServerMac,
                FSqlDbType    = runtimeSqlModel.FSqlDbType,
                FSqlText      = runtimeSqlModel.FSqlText,
                FTimeElapsed  = runtimeSqlModel.FTimeElapsed,
                FMemberName   = runtimeSqlModel.FMemberName,
                FSource       = runtimeSqlModel.FSource,
                FDatabaseName = runtimeSqlModel.FDatabaseName
            };

            if (runtimeSqlInfo.FProjectName.IsNotNullAndNotEmptyWhiteSpace())
            {
                runtimeSqlInfo.FProjectID = await _projectDomainService.GetProjectIDAsync(runtimeSqlInfo.FProjectName);
            }
            if (runtimeSqlInfo.FServicerMac.IsNotNullAndNotEmptyWhiteSpace())
            {
                runtimeSqlInfo.FServicerID = await _servicerDomainService.GetServerIDAsync(runtimeSqlInfo.FServicerMac);
            }
            if (runtimeSqlModel.FDatabaseName.IsNotNullAndNotEmptyWhiteSpace())
            {
                runtimeSqlInfo.FDatabeseID = await _databaseDomainService.GetDatabaseIDAsync(runtimeSqlModel.FDatabaseName, runtimeSqlModel.FSqlDbType);
            }
            return(runtimeSqlInfo);
        }
Exemple #2
0
 /// <summary>
 /// 添加运行sql信息
 /// </summary>
 /// <param name="runtimeSqlModel"></param>
 /// <returns>操作结果</returns>
 public Task <OperateResult> AddRuntimeSqlAsync(RuntimeSqlModel runtimeSqlModel)
 {
     return(OperateUtil.ExecuteAsync(async() =>
     {
         var runtimeSqlInfo = await _runtimeSqlDomainService.AddRuntimeSqlAsync(runtimeSqlModel);
         await _runtimeSqlDomainService.AnalysisRuntimeSqlAsync(runtimeSqlInfo);
     }, callMemberName: "RuntimeSqlApplication-AddRuntimeSqlAsync"));
 }
        /// <summary>
        /// 添加运行sql信息
        /// </summary>
        /// <param name="runtimeSqlModel"></param>
        /// <returns></returns>
        public async Task <RuntimeSqlInfo> AddRuntimeSqlAsync(RuntimeSqlModel runtimeSqlModel)
        {
            runtimeSqlModel.NotNull("运行SQL不能为空");
            var runtimeSqlInfo = await CreateAsync(runtimeSqlModel);

            var runtimeSqlID = (await _runtimeSqlRepository.InsertOneAsync(runtimeSqlInfo, keyName: "FID", ignoreFields: FID)).ToSafeInt32(0);

            runtimeSqlInfo.FID = runtimeSqlID;
            var sqlParameterList = CreateSqlParameterList(runtimeSqlModel, runtimeSqlID);

            if (sqlParameterList.IsNotEmpty())
            {
                await _sqlParameterRepository.BulkInsertAsync(sqlParameterList);
            }
            return(runtimeSqlInfo);
        }
        /// <summary>
        /// 创建sql参数信息
        /// </summary>
        /// <param name="runtimeSqlModel"></param>
        /// <param name="sqlID"></param>
        /// <returns></returns>
        private List <SqlParameterInfo> CreateSqlParameterList(RuntimeSqlModel runtimeSqlModel, int sqlID)
        {
            var paramList = new List <SqlParameterInfo>();

            if (runtimeSqlModel != null && runtimeSqlModel.ParameterList.IsNotEmpty())
            {
                foreach (var item in runtimeSqlModel.ParameterList)
                {
                    paramList.Add(new SqlParameterInfo
                    {
                        FCreateTime   = DateTimeUtil.Now,
                        FIsDeleted    = false,
                        FName         = item.FName,
                        FRuntimeSqlID = sqlID,
                        FValue        = item.FValue,
                        FSize         = item.FSize
                    });
                }
            }
            return(paramList);
        }