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); }
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); }
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); }
public override bool CanUpdate(TaxaUnitType unitType) { return(this.CanUpdate()); //TODO -- add fine grained security }