Пример #1
0
 public override TaxaUnitType Get(CompoundIdentity id)
 {
     if (!id.IsNullOrEmpty() && this.CanGet())
     {
         NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
         cmd.CommandText = Db.SelectTaxaUnitType + Db.SelectTaxaUnitTypeById;
         cmd.Parameters.AddWithValue("id", id.Identity);
         NpgsqlDataReader rdr = Db.ExecuteReader(cmd);
         TaxaUnitType     t   = null;
         if (rdr != null)
         {
             try
             {
                 rdr.Read();
                 t = TaxaUnitTypeBuilder.Instance.Build(rdr);
                 if (cmd.Connection.State == System.Data.ConnectionState.Open)
                 {
                     cmd.Connection.Close();
                 }
             }
             catch
             { }
             finally
             {
                 cmd.Dispose();
             }
         }
         return(t);
     }
     return(null);
 }
Пример #2
0
        public override bool Update(TaxaUnitType unitType)
        {
            if (unitType != null && this.CanUpdate(unitType))
            {
                try
                {
                    NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
                    cmd.CommandText = Db.UpdateTaxaUnitType + Db.SelectById;
                    cmd.Parameters.AddWithValue("name", unitType.Name);
                    if (string.IsNullOrEmpty(unitType.Description))
                    {
                        cmd.Parameters.Add(NpgSqlCommandUtils.GetNullInParam("desc", NpgsqlTypes.NpgsqlDbType.Varchar));
                    }
                    else
                    {
                        cmd.Parameters.AddWithValue("desc", unitType.Description);
                    }
                    cmd.Parameters.AddWithValue("tid", unitType.TaxonomyId.Identity);
                    cmd.Parameters.AddWithValue("id", unitType.Identity.Identity);
                    Db.ExecuteNonQuery(cmd);

                    return(true);
                }
                catch
                { }
            }
            return(false);
        }
 public override TaxaUnitType GetParent(TaxaDomain domain, TaxaUnitType child)
 {
     if (domain != null && child != null && this.CanGet())
     {
         NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
         cmd.CommandText = Db.SelectTaxaUnitType + " WHERE \"Id\"=(SELECT \"ParentUnitTypeId\" FROM oncor.\"TaxaDomainUnitTypes\" WHERE \"TaxonDomainId\"=:tdid AND \"TaxonUnitTypeId\"=:tutid)";
         cmd.Parameters.AddWithValue("tdid", domain.Identity.Identity);
         cmd.Parameters.AddWithValue("tutid", child.Identity.Identity);
         NpgsqlDataReader rdr = Db.ExecuteReader(cmd);
         TaxaUnitType     t   = null;
         if (rdr != null)
         {
             try
             {
                 rdr.Read();
                 t = TaxaUnitTypeBuilder.Instance.Build(rdr);
                 if (cmd.Connection.State == System.Data.ConnectionState.Open)
                 {
                     cmd.Connection.Close();
                 }
             }
             catch
             { }
             finally
             {
                 cmd.Dispose();
             }
         }
         return(t);
     }
     return(null);
 }
 public override bool IsParentOf(TaxaDomain domain, TaxaUnitType parent, TaxaUnitType child)
 {
     if (domain != null && parent != null && child != null && this.CanGet() && parent.TaxonomyId.Identity == child.TaxonomyId.Identity)
     {
         NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
         cmd.CommandText = Db.CountDomainUnitType + Db.SelectDomainUnitTypeByDomain + " AND" + Db.SelectDomainUnitTypeByTaxaUnitType + " AND" + Db.SelectDomainUnitTypeByParent;
         cmd.Parameters.AddWithValue("tdid", domain.Identity.Identity);
         cmd.Parameters.AddWithValue("tutid", child.Identity.Identity);
         cmd.Parameters.AddWithValue("putid", parent.Identity.Identity);
         return(Db.Exists(cmd));
     }
     return(false);
 }
 public override bool IsDescendantOf(TaxaDomain domain, TaxaUnitType parent, TaxaUnitType child)
 {
     if (domain != null && parent != null && child != null)
     {
         NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
         cmd.CommandText = "SELECT oncor\"taxadomainunittypeisdescendant\"(:tdid, :cutid, :putid)";
         cmd.Parameters.AddWithValue("tdid", domain.Identity.Identity);
         cmd.Parameters.AddWithValue("tutid", child.Identity.Identity);
         cmd.Parameters.AddWithValue("putid", parent.Identity.Identity);
         return(Db.Exists(cmd));
     }
     return(false);
 }
Пример #6
0
 public static JObject ToJson(TaxaUnitType unittype)
 {
     if (unittype != null)
     {
         JObject o = new JObject();
         o.Add(JsonUtils.Id, JsonUtils.ToJson(unittype.Identity));
         o.Add(JsonUtils.Name, unittype.Name);
         o.Add(JsonUtils.Description, unittype.Description);
         if (unittype.TaxonomyId != null)
         {
             o.Add("taxonomyid", JsonUtils.ToJson(unittype.TaxonomyId));
         }
         return(o);
     }
     return(null);
 }
 public override IEnumerable <TaxaUnitType> GetDescendants(TaxaDomain domain, TaxaUnitType taxaUnitType)
 {
     if (domain != null && taxaUnitType != null && this.CanGet())
     {
         NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
         cmd.CommandText = "SELECT oncor.\"taxadomainunittypegetdescendants(:did, :tutid)";
         cmd.Parameters.AddWithValue("did", domain.Identity.Identity);
         cmd.Parameters.AddWithValue("tutid", taxaUnitType.Identity.Identity);
         NpgsqlDataReader    rdr       = Db.ExecuteReader(cmd);
         List <TaxaUnitType> unitTypes = new List <TaxaUnitType>();
         TaxaUnitType        t         = null;
         if (rdr != null)
         {
             try
             {
                 while (rdr.Read())
                 {
                     t = TaxaUnitTypeBuilder.Instance.Build(rdr);
                     if (t != null)
                     {
                         unitTypes.Add(t);
                     }
                 }
                 if (cmd.Connection.State == System.Data.ConnectionState.Open)
                 {
                     cmd.Connection.Close();
                 }
             }
             catch
             { }
             finally
             {
                 cmd.Dispose();
             }
         }
         return(unitTypes);
     }
     return(null);
 }
 public override IEnumerable <TaxaUnitType> GetChildren(TaxaDomain domain, TaxaUnitType parent)
 {
     if (domain != null && parent != null && this.CanGet())
     {
         NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString);
         cmd.CommandText = Db.SelectTaxaUnitType + " WHERE \"Id\"=(SELECT \"TaxonUnitTypeId\" FROM oncor.\"TaxaDomainUnitTypes\" WHERE \"TaxonDomainId\"=:tdid AND \"ParentUnitTypeId\"=:putid)";
         cmd.Parameters.AddWithValue("tdid", domain.Identity.Identity);
         cmd.Parameters.AddWithValue("putid", parent.Identity.Identity);
         NpgsqlDataReader    rdr       = Db.ExecuteReader(cmd);
         List <TaxaUnitType> unitTypes = new List <TaxaUnitType>();
         TaxaUnitType        t         = null;
         if (rdr != null)
         {
             try
             {
                 while (rdr.Read())
                 {
                     t = TaxaUnitTypeBuilder.Instance.Build(rdr);
                     if (t != null)
                     {
                         unitTypes.Add(t);
                     }
                 }
                 if (cmd.Connection.State == System.Data.ConnectionState.Open)
                 {
                     cmd.Connection.Close();
                 }
             }
             catch
             { }
             finally
             {
                 cmd.Dispose();
             }
         }
         return(unitTypes);
     }
     return(null);
 }
Пример #9
0
 public override bool CanUpdate(TaxaUnitType unitType)
 {
     return(this.CanUpdate());            //TODO -- add fine grained security
 }