public static void UseRequestOptions([NotNull] this DataStoreConnection connection, [NotNull] TableRequestOptions options)
        {
            Check.NotNull(connection, "connection");
            Check.NotNull(options, "options");

            connection.AsAtsConnection().TableRequestOptions = options;
        }
Beispiel #2
0
        public int DaysLeft(int pf)
        {
            try
            {
                var connection = new DataStoreConnection();
                using (var db = connection.GetDBConnection())
                {
                    db.Open();
                    var command = db.CreateCommand();
                    command.CommandText = @"SELECT (21 - SUM(DaysRequested)) as DaysLeft FROM [Leave].[LeaveRequest] WHERE Requester = @PfNumber AND (DATEPART(YYYY, StartDate) = DATEPART(YYYY, GETDATE()));";

                    command.Parameters.AddWithValue("@PfNumber", pf);

                    try
                    {
                        var results = command.ExecuteScalar();
                        if (results == null)
                        {
                            throw new ArgumentException("Requester whose PF number has been supplied has not requested for leave this year.");
                        }

                        int daysLeft = (int)results;

                        // TODO: Log query for days left.

                        return daysLeft;
                    }
                    catch (SqlException) { throw; }
                    finally { db.Dispose(); db.Close(); }
                }
            }
            catch (SqlException) { throw; }
            catch (Exception) { throw; }
        }
Beispiel #3
0
 protected RelationalDatabase(
     [NotNull] DbContextService <IModel> model,
     [NotNull] DataStoreCreator dataStoreCreator,
     [NotNull] DataStoreConnection connection,
     [NotNull] ILoggerFactory loggerFactory)
     : base(model, dataStoreCreator, connection, loggerFactory)
 {
 }
Beispiel #4
0
 public ConcreteDatabase(
     DbContextService <IModel> model,
     DataStoreCreator dataStoreCreator,
     DataStoreConnection connection,
     ILoggerFactory loggerFactory)
     : base(model, dataStoreCreator, connection, loggerFactory)
 {
 }
Beispiel #5
0
 public ConcreteMigrationsEnabledDatabase(
     DbContextService <IModel> model,
     DataStoreCreator dataStoreCreator,
     DataStoreConnection connection,
     Migrator migrator,
     ILoggerFactory loggerFactory)
     : base(model, dataStoreCreator, connection, migrator, loggerFactory)
 {
 }
Beispiel #6
0
        private void CreateLibraryFromStrata(
            Library sourceLibrary,
            string targetFileName,
            List <int> keepStratumIds)
        {
            CreateTargetLibrary(sourceLibrary, targetFileName);

            WinFormSession      wfs = (WinFormSession)this.Session;
            string              KeepStratumIdString = CreateKeepStratumIdString(keepStratumIds);
            DataStoreConnection conn = new DataStoreConnection("SQLite", targetFileName);

            using (SyncroSimTransactionScope scope = Session.CreateTransactionScope())
            {
                using (DataStore store = Session.CreateDataStore(conn))
                {
                    DataTable AllTables = store.CreateDataTableFromQuery(
                        "SELECT name FROM sqlite_master WHERE type='table'",
                        "AllTables");

                    foreach (DataRow dr in AllTables.Rows)
                    {
                        string TableName = Convert.ToString(dr["name"]);

                        if (!ShouldProcessTable(TableName))
                        {
                            continue;
                        }

                        DataTable TableSchema = GetTableSchema(TableName, store);

                        if (TableSchema.Columns.Contains("StratumID"))
                        {
                            PurgeStratumIds(TableName, "StratumID", KeepStratumIdString, store);
                        }

                        if (TableSchema.Columns.Contains("StratumIDSource"))
                        {
                            PurgeStratumIds(TableName, "StratumIDSource", KeepStratumIdString, store);
                        }

                        if (TableSchema.Columns.Contains("StratumIDDest"))
                        {
                            PurgeStratumIds(TableName, "StratumIDDest", KeepStratumIdString, store);
                        }
                    }

                    string Title = Path.GetFileNameWithoutExtension(targetFileName);
                    string q     = string.Format(CultureInfo.InvariantCulture, "UPDATE core_Library SET Name='{0}'", Title);

                    store.ExecuteNonQuery(q);
                }

                scope.Complete();
            }
        }
        public static AtsConnection AsAtsConnection([NotNull] this DataStoreConnection connection)
        {
            Check.NotNull(connection, "connection");

            var atsConnection = connection as AtsConnection;

            if (atsConnection == null)
            {
                throw new InvalidOperationException(Strings.AtsConnectionNotInUse);
            }
            return(atsConnection);
        }
        protected MigrationsEnabledDatabase(
            [NotNull] DbContextService <IModel> model,
            [NotNull] DataStoreCreator dataStoreCreator,
            [NotNull] DataStoreConnection connection,
            [NotNull] Migrator migrator,
            [NotNull] ILoggerFactory loggerFactory)
            : base(model, dataStoreCreator, connection, loggerFactory)
        {
            Check.NotNull(migrator, "migrator");

            _migrator = migrator;
        }
        private static void CreateDatabaseSequence(BronieContext context, DataStoreConnection storeConnection)
        {
            var executor = new SqlStatementExecutor();

            var operations = new SqlServerSequenceValueGeneratorFactory(executor)
                             .GetUpMigrationOperations(context.Model.GetEntityType(typeof(Pegasus))
                                                       .GetProperty("Identifier"));

            var sql = new SqlServerMigrationOperationSqlGenerator(new SqlServerTypeMapper())
                      .Generate(operations, generateIdempotentSql: false);

            // TODO: Should be able to get relational connection without cast
            var connection = ((RelationalConnection)storeConnection).DbConnection;

            executor.ExecuteNonQuery(connection, sql);
        }
Beispiel #10
0
        protected Database(
            [NotNull] DbContextService <IModel> model,
            [NotNull] DataStoreCreator dataStoreCreator,
            [NotNull] DataStoreConnection connection,
            [NotNull] ILoggerFactory loggerFactory)
        {
            Check.NotNull(model, "model");
            Check.NotNull(dataStoreCreator, "dataStoreCreator");
            Check.NotNull(connection, "connection");
            Check.NotNull(loggerFactory, "loggerFactory");

            _model            = model;
            _dataStoreCreator = dataStoreCreator;
            _connection       = connection;
            _logger           = new LazyRef <ILogger>(loggerFactory.Create <Database>);
        }
        public static void ResetRequestOptions([NotNull] this DataStoreConnection connection)
        {
            Check.NotNull(connection, "connection");

            connection.AsAtsConnection().TableRequestOptions = null;
        }
        public static void UseBatching([NotNull] this DataStoreConnection connection, bool value)
        {
            Check.NotNull(connection, "connection");

            connection.AsAtsConnection().Batching = value;
        }