Esempio n. 1
0
        /// <summary>
        ///    This function retrieves a list of property strings for a data base record id.
        /// </summary>
        public string[] GetDataBaseRecProperties(string database, string rec_id)
        {
            DASDataTable dt = null;

            string[] ret;
            try
            {
                _databaseObject.AddParameter(P_DATABASE, database, DAS.ParameterModes.PARM_IN,
                                             DAS.ServerTypes.STRING);
                _databaseObject.AddParameter(P_REC_ID, rec_id, DAS.ParameterModes.PARM_IN,
                                             DAS.ServerTypes.STRING);

                dt = _databaseObject.CreateAndFillDataTable(
                    $"SELECT {QRY_DATABASE_REC_PROPERTIES_COLUMNS} FROM {QRY_DATABASE_REC_PROPERTIES_BY_ID} WHERE {P_DATABASE} = @{P_DATABASE} AND {P_REC_ID} = @{P_REC_ID}");
                ret = new string[dt.Rows.Count()];
                int i = 0;
                foreach (DASDataRow dr in dt.Rows)
                {
                    DASColumnValue property      = new DASColumnValue(dr, dr.Table.Columns.ItemByName("PROPERTY"));
                    DASColumnValue propertyValue = new DASColumnValue(dr, dr.Table.Columns.ItemByName("PROPERTY_VALUE"));
                    ret[i++] += $"{property.GetValueAsString()}: {propertyValue.GetValueAsString()}";
                }
            }
            finally
            {
                _databaseObject.RemoveParameter(P_DATABASE);
                _databaseObject.RemoveParameter(P_REC_ID);
            }

            return(ret);
        }
Esempio n. 2
0
        public static DASDataTable ExecuteQueryForDataTable(this DAS connection, string query)
        {
            var table = new DASDataTable(connection);

            connection.FillDataTable(table, query);
            return(table);
        }
        public virtual DataTable ExecuteStatementForDataTable(string selectStatement)
        {
            var dataTable = new DASDataTable(databaseConnection);

            databaseConnection.FillDataTable(dataTable, selectStatement);
            return(dataTable);
        }
Esempio n. 4
0
 /// <summary>
 ///    This function retrieves the default container tissue mapping.
 /// </summary>
 public DataTable GetContainerTissueMapping()
 {
     if (_mappingContainerTissue == null)
     {
         _mappingContainerTissue = _databaseObject.CreateAndFillDataTable($"SELECT {QRY_CONTAINER_TISSUE_COLUMNS} FROM {QRY_CONTAINER_TISSUE}");
     }
     return(_mappingContainerTissue.Copy());
 }
Esempio n. 5
0
 public void ClearCache()
 {
     _mappingContainerTissue = null;
     _genderHints            = null;
     _tissueHints            = null;
     _healthStateHints       = null;
     _sampleSourceHints      = null;
     _unitHints     = null;
     _nameTypeHints = null;
 }
Esempio n. 6
0
 /// <summary>
 ///    This function retrieves information for a tissue.
 /// </summary>
 public string GetTissueHint(string tissue)
 {
     if (_tissueHints == null)
     {
         _tissueHints = _databaseObject.CreateAndFillDataTable($"SELECT {QRY_TISSUE_HINT_COLUMNS} FROM {QRY_TISSUE_HINT}");
     }
     DataRow[] dr = (_tissueHints.Select($"TISSUE = '{tissue}'"));
     if (dr.Length == 0)
     {
         return(string.Empty);
     }
     return((string)dr[0]["INFORMATION"]);
 }
Esempio n. 7
0
 /// <summary>
 ///    This function retrieves information for a gender.
 /// </summary>
 public string GetGenderHint(string gender)
 {
     if (_genderHints == null)
     {
         _genderHints = _databaseObject.CreateAndFillDataTable($"SELECT {QRY_GENDER_HINT_COLUMNS} FROM {QRY_GENDER_HINT}");
     }
     DataRow[] dr = _genderHints.Select($"GENDER = '{gender}'");
     if (dr.Length == 0)
     {
         return(string.Empty);
     }
     return((string)dr[0]["INFORMATION"]);
 }
Esempio n. 8
0
 /// <summary>
 ///    This function retrieves information for a health state.
 /// </summary>
 public string GetHealthStateHint(string healthState)
 {
     if (_healthStateHints == null)
     {
         _healthStateHints =
             _databaseObject.CreateAndFillDataTable($"SELECT {QRY_HEALTH_STATE_HINT_COLUMNS} FROM {QRY_HEALTH_STATE_HINT}");
     }
     DataRow[] dr = (_healthStateHints.Select($"HEALTH_STATE = '{healthState}'"));
     if (dr.Length == 0)
     {
         return(string.Empty);
     }
     return((string)dr[0]["INFORMATION"]);
 }
Esempio n. 9
0
 /// <summary>
 ///    This function retrieves information for a name type.
 /// </summary>
 public string GetNameTypeHint(string nameType)
 {
     if (_nameTypeHints == null)
     {
         _nameTypeHints =
             _databaseObject.CreateAndFillDataTable($"SELECT {QRY_NAME_TYPE_HINT_COLUMNS} FROM {QRY_NAME_TYPE_HINT}");
     }
     DataRow[] dr = (_nameTypeHints.Select($"NAME_TYPE = '{nameType}'"));
     if (dr.Length == 0)
     {
         return(string.Empty);
     }
     return((string)dr[0]["INFORMATION"]);
 }
Esempio n. 10
0
 /// <summary>
 ///    This function retrieves information for a unit.
 /// </summary>
 public string GetUnitHint(string unit)
 {
     if (_unitHints == null)
     {
         _unitHints =
             _databaseObject.CreateAndFillDataTable($"SELECT {QRY_UNIT_HINT_COLUMNS} FROM {QRY_UNIT_HINT}");
     }
     DataRow[] dr = (_unitHints.Select($"UNIT = '{unit}'"));
     if (dr.Length == 0)
     {
         return(string.Empty);
     }
     return((string)dr[0]["INFORMATION"]);
 }
Esempio n. 11
0
 /// <summary>
 ///    This function retrieves information for a sample source.
 /// </summary>
 public string GetSampleSourceHint(string sampleSource)
 {
     if (_sampleSourceHints == null)
     {
         _sampleSourceHints =
             _databaseObject.CreateAndFillDataTable($"SELECT {QRY_SAMPLE_SOURCE_HINT_COLUMNS} FROM {QRY_SAMPLE_SOURCE_HINT}");
     }
     DataRow[] dr = (_sampleSourceHints.Select($"SAMPLE_SOURCE = '{sampleSource}'"));
     if (dr.Length == 0)
     {
         return(string.Empty);
     }
     return((string)dr[0]["INFORMATION"]);
 }
Esempio n. 12
0
        private DataTable executeStatementForDataTable(string selectStatement)
        {
            var dataTable = new DASDataTable(_databaseObject);

            try
            {
                _databaseObject.FillDataTable(dataTable, selectStatement);
                return(dataTable);
            }
            catch (Exception e)
            {
                var t = dataTable.GetErrors();
                Console.WriteLine(e);
                throw;
            }
        }
Esempio n. 13
0
        /// <summary>
        ///    This function retrieves expression data for a special protein.
        /// </summary>
        public DataTable GetExpressionDataByGeneId(int id)
        {
            DASDataTable retTable = null;

            try
            {
                _databaseObject.AddParameter(P_ID, id, DAS.ParameterModes.PARM_IN,
                                             DAS.ServerTypes.ST_NUMBER);

                retTable = _databaseObject.CreateAndFillDataTable(
                    $"SELECT {QRY_EXPRESSION_DATA_COLUMNS} FROM {QRY_EXPRESSION_DATA_BY_ID} WHERE {P_ID} = @{P_ID}");
            }
            finally
            {
                _databaseObject.RemoveParameter(P_ID);
            }
            return(retTable);
        }
Esempio n. 14
0
        /// <summary>
        ///    This function retrieves a list of found proteins fulfilling the search criteria.
        /// </summary>
        public DataTable GetProteinsByName(string name)
        {
            DASDataTable retTable = null;

            try
            {
                _databaseObject.AddParameter(P_NAME, name, DAS.ParameterModes.PARM_IN,
                                             DAS.ServerTypes.ST_VARCHAR2);

                retTable = _databaseObject.CreateAndFillDataTable(
                    $"SELECT {QRY_FIND_PROTEINS_COLUMNS} FROM {QRY_PROTEINS_BY_NAME} WHERE {P_NAME} = @{P_NAME}");
            }
            finally
            {
                _databaseObject.RemoveParameter(P_NAME);
            }
            return(retTable);
        }
Esempio n. 15
0
        /// <summary>
        ///    This function retrieves a list of information strings for a data base record id.
        /// </summary>
        public string[] GetDataBaseRecInfos(string database, string rec_id)
        {
            DASDataTable dt = null;

            string[] ret;
            try
            {
                _databaseObject.AddParameter(P_DATABASE, database, DAS.ParameterModes.PARM_IN,
                                             DAS.ServerTypes.STRING);
                _databaseObject.AddParameter(P_REC_ID, rec_id, DAS.ParameterModes.PARM_IN,
                                             DAS.ServerTypes.STRING);

                dt = _databaseObject.CreateAndFillDataTable(
                    $"SELECT {QRY_DATABASE_REC_INFO_COLUMNS} FROM {QRY_DATABASE_REC_INFO_BY_ID} WHERE {P_DATABASE} = @{P_DATABASE} AND {P_REC_ID} = @{P_REC_ID}");
                ret = new string[dt.Columns.Count() - 2];

                foreach (DASDataRow dr in dt.Rows)
                {
                    for (int i = 2; i < dt.Columns.Count(); i++)
                    {
                        var colval = new DASColumnValue(dr, dt.Columns.ItemByIndex(i));
                        if (colval.DBNullValue)
                        {
                            continue;
                        }
                        if (colval.Value is DateTime)
                        {
                            ret[i - 2] += $"{dt.Columns.ItemByIndex(i).ColumnName}: {colval.GetValueAsString("yyyy-MM-dd")}";
                        }
                        else
                        {
                            ret[i - 2] += $"{dt.Columns.ItemByIndex(i).ColumnName}: {colval.GetValueAsString()}";
                        }
                    }
                }
            }
            finally
            {
                _databaseObject.RemoveParameter(P_DATABASE);
                _databaseObject.RemoveParameter(P_REC_ID);
            }

            return(ret);
        }
        public Task <T> LoadTemplateAsync <T>(Template template)
        {
            if (template.DatabaseType == TemplateDatabaseType.Remote)
            {
                return(_remoteTemplateRepository.LoadTemplateAsync <T>(template.DowncastTo <RemoteTemplate>()));
            }

            using (establishConnection(template.DatabaseType))
            {
                var connection = databaseConnection();
                try
                {
                    addTemplateNameParameter(template.Name, connection);

                    var sqlQuery = $"SELECT t.{TemplateTable.Columns.XML} FROM {TemplateTable.NAME} t WHERE t.{TemplateTable.Columns.TEMPLATE_TYPE} IN ({typeFrom(template.Type)}) AND t.{TemplateTable.Columns.NAME} = {_pName}";

                    var table = new DASDataTable(connection);
                    connection.FillDataTable(table, sqlQuery);

                    if (table.Rows.Count() > 0)
                    {
                        var serializationString = table.Rows.ItemByIndex(0)[TemplateTable.Columns.XML].ToString();
                        var objectFromTemplate  = _stringSerializer.Deserialize <T>(serializationString);
                        _objectIdResetter.ResetIdFor(objectFromTemplate);

                        //Rename the template according to the template name as the template might have been renamed
                        var withName = objectFromTemplate as IWithName;
                        if (withName != null)
                        {
                            withName.Name = template.Name;
                        }

                        return(Task.FromResult(objectFromTemplate));
                    }
                }
                finally
                {
                    removeNameParameter(connection);
                }

                return(default);
Esempio n. 17
0
        private void addReferencesToTemplate(Template template, DAS connection, List <string> loadedReferenceNames = null)
        {
            DASDataTable dataTable = null;

            loadedReferenceNames = loadedReferenceNames ?? new List <string>();

            try
            {
                addTemplateNameParameter(template.Name, connection);

                var sqlQuery = string.Format("SELECT ref.{2}, ref.{3}  FROM {4} ref WHERE ref.{0} = '{5}' AND ref.{1}={6}",
                                             TemplateReferenceTable.Columns.TEMPLATE_TYPE, TemplateReferenceTable.Columns.NAME,
                                             TemplateReferenceTable.Columns.REFERENCE_TEMPLATE_TYPE, TemplateReferenceTable.Columns.REFERENCE_NAME,
                                             TemplateReferenceTable.NAME, template.TemplateType, _pName);

                dataTable = connection.ExecuteQueryForDataTable(sqlQuery);
            }
            finally
            {
                removeNameParameter(connection);
            }

            foreach (DASDataRow row in dataTable)
            {
                var reference = loadTemplateBy(template.DatabaseType, row.StringAt(TemplateReferenceTable.Columns.REFERENCE_NAME), row.StringAt(TemplateReferenceTable.Columns.REFERENCE_TEMPLATE_TYPE), connection);
                template.References.Add(reference);

                if (loadedReferenceNames.Contains(reference.Name))
                {
                    continue;
                }

                loadedReferenceNames.Add(reference.Name);

                addReferencesToTemplate(reference, connection, loadedReferenceNames);
            }
        }