예제 #1
0
        protected virtual async Task <byte[][]> GetRawDataAsync(int fileId)
        {
            using (var ctx = new MsSqlDataContext(RepositoryConnectionString, new DataOptions(), CancellationToken.None))
            {
                var script = "SELECT [Stream] FROM Files WHERE FileId = @FileId";
                var scalar = await ctx.ExecuteScalarAsync(script, cmd =>
                {
                    cmd.Parameters.AddRange(new[]
                    {
                        ctx.CreateParameter("@FileId", SqlDbType.Int, fileId)
                    });
                }).ConfigureAwait(false);

                if (scalar == DBNull.Value)
                {
                    return(new byte[0][]);
                }
                var buffer = (byte[])scalar;
                if (buffer.Length == 0)
                {
                    return(new byte[0][]);
                }
                return(new [] { buffer });
            }
        }
 public DateTime LoadTimeLimit(CancellationToken cancellationToken)
 {
     using (var ctx = new MsSqlDataContext(_connectionStrings.Repository, _dataOptions, cancellationToken))
     {
         var result    = ctx.ExecuteScalarAsync(SqlScripts.SelectTimeLimit).GetAwaiter().GetResult();
         var timeLimit = Convert.ToDateTime(result).ToUniversalTime();
         Tracer.Write("UTC timelimit: " + timeLimit.ToString("yyyy-MM-dd HH:mm:ss"));
         return(timeLimit);
     }
 }
예제 #3
0
        internal static bool ExecuteSql(string script)
        {
            using (var ctx = new MsSqlDataContext(CancellationToken.None))
            {
                try
                {
                    var result = ctx.ExecuteScalarAsync(script).GetAwaiter().GetResult();

                    if (result == null || Convert.IsDBNull(result))
                    {
                        return(false);
                    }
                    return(ConvertToBool(result));
                }
                catch (Exception ex)
                {
                    throw new PackagingException("Error during SQL script execution. " + ex);
                }
            }
        }
예제 #4
0
        internal static bool ExecuteSql(string script)
        {
            //TODO: [DIREF] get options from DI through constructor
            using (var ctx = new MsSqlDataContext(ConnectionStrings.ConnectionString, DataOptions.GetLegacyConfiguration(), CancellationToken.None))
            {
                try
                {
                    var result = ctx.ExecuteScalarAsync(script).GetAwaiter().GetResult();

                    if (result == null || Convert.IsDBNull(result))
                    {
                        return(false);
                    }
                    return(ConvertToBool(result));
                }
                catch (Exception ex)
                {
                    throw new PackagingException("Error during SQL script execution. " + ex);
                }
            }
        }
 public bool CheckFeature(CancellationToken cancellationToken)
 {
     try
     {
         using (var ctx = new MsSqlDataContext(_connectionStrings.Repository, _dataOptions, cancellationToken))
         {
             var result = ctx.ExecuteScalarAsync(SqlScripts.CheckFeature).GetAwaiter().GetResult();
             return(Convert.ToInt32(result) != 0);
         }
     }
     catch (AggregateException ae)
     {
         if (ae.InnerException is NotSupportedException)
         {
             return(false);
         }
         throw;
     }
     catch (NotSupportedException)
     {
         return(false);
     }
 }
예제 #6
0
        private bool ExecuteSql(string script, ExecutionContext context)
        {
            var connectionInfo = new ConnectionInfo
            {
                DataSource         = (string)context.ResolveVariable(DataSource),
                InitialCatalogName = (string)context.ResolveVariable(InitialCatalogName),
                UserName           = (string)context.ResolveVariable(UserName),
                Password           = (string)context.ResolveVariable(Password)
            };
            var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo) ?? ConnectionStrings.ConnectionString;

            //TODO: [DIREF] get options from DI through constructor
            using (var ctx = new MsSqlDataContext(connectionString, DataOptions.GetLegacyConfiguration(), CancellationToken.None))
            {
                object result;
                try
                {
                    result = ctx.ExecuteScalarAsync(script).GetAwaiter().GetResult();
                }
                catch (Exception ex)
                {
                    throw new PackagingException("Error during SQL script execution. " + ex);
                }

                if (result == null || Convert.IsDBNull(result))
                {
                    return(false);
                }

                if (result is bool @bool)
                {
                    return(@bool);
                }
                if (result is byte @bybte)
                {
                    return(@bybte > 0);
                }
                if (result is decimal @decimal)
                {
                    return(@decimal > 0);
                }
                if (result is double @double)
                {
                    return(@double > 0);
                }
                if (result is float @float)
                {
                    return(@float > 0);
                }
                if (result is int @int)
                {
                    return(@int > 0);
                }
                if (result is long @long)
                {
                    return(@long > 0);
                }
                if (result is sbyte @sbyte)
                {
                    return(@sbyte > 0);
                }
                if (result is short @short)
                {
                    return(@short > 0);
                }
                if (result is uint @uint)
                {
                    return(@uint > 0);
                }
                if (result is ulong @ulong)
                {
                    return(@ulong > 0);
                }
                if (result is ushort @ushort)
                {
                    return(@ushort > 0);
                }
                if (result is string @string)
                {
                    return(!string.IsNullOrEmpty(@string));
                }
            }
            return(false);
        }