public async Task <JArray> Execute(JObject data) { dynamic dataDto = data; bool isQuery = dataDto.IsQuery; string query = dataDto.Code; if (string.IsNullOrEmpty(query.Trim())) { return(new JArray()); } int connectionId = dataDto.ConnectionId; var connectionByPermission = await ContentManagementContext.MasterDataKeyValues .Where(md => (md.Id == connectionId && md.TypeId == (int)EntityIdentity.SqlServerConnections) || (md.ForeignKey3 == connectionId && md.TypeId == (int)EntityIdentity.Permission)).ToListAsync(); var connection = connectionByPermission.FirstOrDefault(con => con.Id == connectionId); if (connection == null) { throw new KhodkarInvalidException(LanguageManager.ToAsErrorMessage(ExceptionKey.NotFound, " Connection ")); } var permission = connectionByPermission.FirstOrDefault(prm => prm.ForeignKey3 == connectionId && prm.TypeId == (int)EntityIdentity.Permission); if (permission == null) { throw new KhodkarInvalidException(LanguageManager.ToAsErrorMessage(ExceptionKey.NotFound, " Permission ")); } if (!AuthorizeManager.IsAuthorize(permission.ForeignKey2)) { throw new UnauthorizedAccessException(LanguageManager.ToAsErrorMessage(ExceptionKey.InvalidGrant)); } if (isQuery) { return(_dataBaseManager.ExecuteQuery(connection.SecondCode, query)); } else { return(_dataBaseManager.ExecuteNonQuery(connection.SecondCode, query)); } }