Ejemplo n.º 1
0
    public static Case Clone(Case c)
    {
        if (c == null)
        {
            return(null);
        }
        FeatureList list     = new FeatureList();
        Case        instance = CaseFactory.CreateInstance(c.GetCaseID(),
                                                          c.GetCaseName(),
                                                          c.GetCaseDescription(),
                                                          c.GetCaseType(),
                                                          list);

        System.Collections.ArrayList features = c.GetFeatures();
        foreach (Feature f in features)
        {
            c.AddFeature(f.GetFeatureName(),
                         f.GetFeatureType(),
                         f.GetFeatureValue(),
                         f.GetWeight(),
                         f.GetIsKey(),
                         f.GetIsIndex(),
                         f.GetFeatureUnit());
        }

        return(instance);
    }
Ejemplo n.º 2
0
        private void CreateCase(string[] values)
        {
            Case c = CaseFactory.CreateInstance(_caseName);

            c.SetCaseID(_caseID);
            for (int i = 0; i < _featureNames.Length; i++)
            {
                string  name = _featureNames[i];
                string  v    = values[i];
                Feature f    = Find(name);
                if (f != null)
                {
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_BOOL)
                    {
                    }
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_FLOAT)
                    {
                        double fValue = Convert.ToDouble(v);
                        c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                     fValue, f.GetWeight(), f.GetIsKey(),
                                     f.GetIsIndex());
                    }
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_IMAGE)
                    {
                    }
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_INT)
                    {
                    }
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_MSTRING)
                    {
                    }
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_STRING)
                    {
                    }
                    if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_UNDEFINED)
                    {
                    }
                }
            }
            _cases.Add(c);
            _caseID++;
        }
        public static ArrayList GetCases(DataSource ds,
                                         string dictionaryTable,
                                         string dataTable, string caseID)
        {
            string sql = "select * from " + dictionaryTable
                         + "	where "+ FIELD_CASEID + "='"
                         + caseID + "'";

            try
            {
                //read case structure
                Case            c    = CaseFactory.CreateInstance(caseID);
                OleDbConnection conn = new OleDbConnection(ds.GetConnectionString());
                OleDbCommand    cmd  = conn.CreateCommand();
                conn.Open();

                OleDbDataReader reader = ExecuteQuery(cmd, sql);
                while (reader.Read())
                {
                    string name   = reader[FIELD_FEATURENAME].ToString();
                    string type   = reader[FIELD_FEATURETYPE].ToString();
                    string key    = reader[FIELD_KEY].ToString();
                    string index  = reader[FIELD_INDEX].ToString();
                    string weight = reader[FIELD_WEIGHT].ToString();
                    string unit   = reader[FIELD_FEATUREUNIT].ToString();
                    c.AddFeature(name, GetType(type), null,
                                 Convert.ToDouble(weight), GetBOOL(key), GetBOOL(index), unit);
                }
                reader.Close();

                //read cases
                ArrayList features = c.GetFeatures();
                ArrayList cases    = new ArrayList();
                if (ds.GetConditions() != null)
                {
                    sql = "select * from " + dataTable + " where " + FIELD_CASEID + "='"
                          + caseID + "' and " + ds.GetConditions();
                }
                else
                {
                    sql = "select * from " + dataTable + " where " + FIELD_CASEID + "='"
                          + caseID + "'";
                }

                reader = ExecuteQuery(cmd, sql);

                while (reader.Read())
                {
                    Case theCase = CaseFactory.CreateInstance(caseID);
                    foreach (Feature f in features)
                    {
                        string featureName  = f.GetFeatureName();
                        object featureValue = reader[featureName];
                        theCase.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                           featureValue, f.GetWeight(),
                                           f.GetIsKey(), f.GetIsIndex(), f.GetFeatureUnit());
                    }
                    cases.Add(theCase);
                }
                reader.Close();
                cmd.Cancel();
                conn.Close();

                return(cases);
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                return(null);
            }
        }
    private void CreateCase(string[] values)
    {
        Case c = CaseFactory.CreateInstance(_caseName);

        c.SetCaseID(_caseID);
        if (_with_id)
        {
            c.AddFeature("id", FeatureType.TYPE_FEATURE_INT, feasture_id, 1.0, false, false, "num");
        }
        feasture_id++;
        for (int i = 0; i < _featureNames.Length; i++)
        {
            string  name = _featureNames[i];
            string  v    = values[i];
            Feature f    = Find(name);
            if (f != null)
            {
                if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_BOOL)
                {
                    if (v == "1")
                    {
                        v = "True";
                    }
                    else
                    {
                        v = "False";
                    }
                    bool fValue = Convert.ToBoolean(v);
                    c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                 fValue, f.GetWeight(), f.GetIsKey(),
                                 f.GetIsIndex(), f.GetFeatureUnit());
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_FLOAT)
                {
                    double fValue = Convert.ToDouble(v);
                    c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                 fValue, f.GetWeight(), f.GetIsKey(),
                                 f.GetIsIndex(), f.GetFeatureUnit());
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_IMAGE)
                {
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_INT)
                {
                    int fValue = Convert.ToInt32(v);
                    c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                 fValue, f.GetWeight(), f.GetIsKey(),
                                 f.GetIsIndex(), f.GetFeatureUnit());
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_MSTRING)
                {
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_STRING)
                {
                    string fValue = v;
                    c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                 fValue, f.GetWeight(), f.GetIsKey(),
                                 f.GetIsIndex(), f.GetFeatureUnit());
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_CATEGORICAL)
                {
                    string fValue = v;
                    c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                 fValue, f.GetWeight(), f.GetIsKey(),
                                 f.GetIsIndex(), f.GetFeatureUnit());
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_Ordinal)
                {
                    int fValue = Convert.ToInt32(v);
                    c.AddFeature(f.GetFeatureName(), f.GetFeatureType(),
                                 fValue, f.GetWeight(), f.GetIsKey(),
                                 f.GetIsIndex(), f.GetFeatureUnit());
                }
                else if (f.GetFeatureType() == FeatureType.TYPE_FEATURE_UNDEFINED)
                {
                }
            }
        }
        if (_with_id)
        {
            c.AddFeature("cluster", FeatureType.TYPE_FEATURE_INT, -4, 1.0, false, false, "num");
        }
        _cases.Add(c);
        _list_cases.Add(c);
        _caseID++;
    }