Пример #1
0
        public IMCollection <DbRow> ExecuteNativeQuery(string query, Action <DbCommand, Func <string, DbType, DbParameter> > parametersConfiguration, int commandTimeout = 30)
        {
            return(ExecuteOnSafeSqlCommand(query, command =>
            {
                parametersConfiguration(command, NewParameter);
                IMCollection <DbRow> dbRows = new MCollection <DbRow>();
                command.CommandTimeout = commandTimeout;
                var reader = command.ExecuteReader();

                while (reader.Read())
                {
                    DbRow row = new DbRow();
                    for (int ii = 0; ii <= reader.FieldCount - 1; ii++)
                    {
                        DbColumn column = new DbColumn(reader.GetFieldType(ii),
                                                       reader.GetName(ii),
                                                       reader.GetValue(ii));
                        row.Columns.Add(column);
                    }
                    dbRows.Add(row);
                }
                reader.Close();
                return dbRows;
            }));
        }
Пример #2
0
        public IMCollection <ITestSuite> GetAllTestSuites(string moduleToTest)
        {
            IMCollection <ITestSuite> suites = new MCollection <ITestSuite>();

            GetDerivedTypes(typeof(TestSuite), Assembly.Load(moduleToTest))
            .ForEach(type => {
                suites.Add((TestSuite)Activator.CreateInstance(type));
            });
            return(suites);
        }
Пример #3
0
        public IMCollection <Group> Insert(IMCollection <Group> groups)
        {
            IMCollection <Group> insertedPermissions = new MCollection <Group>();

            groups.ForEach(group =>
            {
                int groupId = Insert(group);
                insertedPermissions.Add(new Group()
                {
                    Id = groupId, Description = group.Description, Permissions = group.Permissions
                });
            });
            return(insertedPermissions);
        }
Пример #4
0
        public IMCollection <Permission> Insert(IMCollection <Permission> permissions)
        {
            IMCollection <Permission> insertedPermissions = new MCollection <Permission>();

            permissions.ForEach(permission =>
            {
                int permissionId = Insert(permission);
                insertedPermissions.Add(new Permission
                {
                    Id = permissionId, Description = permission.Description
                });
            });
            return(insertedPermissions);
        }
Пример #5
0
        public IMCollection <ITestSuite> GetTestsByConfiguration()
        {
            IMCollection <ITestSuite> suites = new MCollection <ITestSuite>();

            _configuration.ForEach(suiteName => {
                try {
                    Type type = Type.GetType(suiteName);
                    suites.Add((ITestSuite)Activator.CreateInstance(type));
                } catch {
                    _logger.Error("TestSuite [" + suiteName + "] Not found");
                }
            });
            return(suites);
        }
Пример #6
0
        private IMCollection <Type> GetDerivedTypes(Type baseType, Assembly assembly)
        {
            // Get all types from the given assembly
            Type[] types = assembly.GetTypes();
            IMCollection <Type> derivedTypes = new MCollection <Type>();

            for (int i = 0, count = types.Length; i < count; i++)
            {
                Type type = types[i];
                if (IsSubclassOf(type, baseType))
                {
                    // The current type is derived from the base type,
                    // so add it to the list
                    derivedTypes.Add(type);
                }
            }

            return(derivedTypes);
        }
Пример #7
0
        public IMCollection <TEntity> Transform()
        {
            IMCollection <TEntity> resultObjects = new MCollection <TEntity>();

            _dbRows.ForEach(row =>
            {
                TEntity entity = new TEntity();

                row.Columns.ForEach(column =>
                {
                    string columnName = column.Name?.ToLower();

                    if (column.Value == DBNull.Value)
                    {
                        return;
                    }

                    if (Predefined.Like(columnName, "%_id"))
                    {
                        //Getting relationship instance
                        PropertyInfo entityRelationshipInfo = GetPrivatePropertyInfo(typeof(TEntity), columnName?.Split("_id")[0]);
                        object entityRelationshipInstance   = entityRelationshipInfo.GetValue(entity);

                        //Setting up relationship id
                        PropertyInfo entityRelationshipIdInfo = GetPrivatePropertyInfo(entityRelationshipInstance.GetType(), "id");
                        entityRelationshipIdInfo?.SetValue(entityRelationshipInstance, Convert.ChangeType(column.Value, column.Type));
                    }
                    else
                    {
                        columnName = columnName?.Replace("_", "");
                        PropertyInfo propertyInfo = GetPrivatePropertyInfo(typeof(TEntity), columnName);
                        propertyInfo?.SetValue(entity, Convert.ChangeType(column.Value, column.Type));
                    }
                });

                resultObjects.Add(entity);
            });

            return(resultObjects);
        }