public override SamplingEvent Get(CompoundIdentity id) { if (!id.IsNullOrEmpty() && this.CanGet()) { NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString); cmd.CommandText = Db.SelectEvent + Db.SelectById; cmd.Parameters.AddWithValue("sid", id.DataStoreIdentity); cmd.Parameters.AddWithValue("id", id.Identity); NpgsqlDataReader rdr = Db.ExecuteReader(cmd); SamplingEvent o = null; if (rdr != null) { try { rdr.Read(); o = SamplingEventBuilder.Instance.Build(rdr); if (cmd.Connection.State == System.Data.ConnectionState.Open) { cmd.Connection.Close(); } } catch { } finally { cmd.Dispose(); } } return(o); } return(null); }
public override bool Contains(FieldTeam team, SamplingEvent item) { if (team != null && item != null && this.CanGet()) { return(ContainsImpl(team.Identity, item.Identity, FieldActivityUtils.SamplingEventWktId)); } return(false); }
public override bool Remove(FieldTeam team, SamplingEvent item) { if (team != null && item != null) { return(Remove(team.Identity, item.Identity, FieldActivityUtils.SamplingEventWktId)); } return(false); }
public override IEnumerable <FieldTeam> Get(SamplingEvent item) { if (item != null && this.CanGet()) { return(Get(item.Identity, FieldActivityUtils.SamplingEventWktId)); } return(null); }
public override bool Add(FieldTeam team, SamplingEvent item) { if (team != null && item != null && this.CanCreate()) { return(this.AddImpl(team.Identity, item.Identity, FieldActivityUtils.SamplingEventWktId)); } return(false); }
public FilestoreFile CreateVeg(CompoundIdentity sampleEventId, EntityBundle sites, EntityBundle plotTypes, EntityBundle shrubSpecies, EntityBundle treeSpecies, EntityBundle herbSpecies, EntityBundle nonLiving, bool isPrivate) { if (!sampleEventId.IsNullOrEmpty() && sites != null && plotTypes != null && shrubSpecies != null && treeSpecies != null && herbSpecies != null && sites.DataType == BundleDataType.Site && plotTypes.DataType == BundleDataType.PlotType && shrubSpecies.DataType == BundleDataType.TaxaUnit && treeSpecies.DataType == BundleDataType.TaxaUnit && herbSpecies.DataType == BundleDataType.TaxaUnit) { if (nonLiving != null) { if (nonLiving.DataType != BundleDataType.TaxaUnit) { return(null); //if we have nonLiving, they better be taxaunits } } SampleEventMap map = DetRegistry.Instance.Get(sampleEventId); if (map == null) { map = DetRegistry.Instance.Create(sampleEventId); } else if (map.Contains(KnownDetType.Veg)) { return(null); //can't have more than 1 } VegDetProcessor wq = new VegDetProcessor(this.ctx); FilestoreFile fil = wq.Create(map, sites, plotTypes, shrubSpecies, treeSpecies, herbSpecies, nonLiving, isPrivate); //note the permission is checked in there if (fil != null) { map.Add(fil.FileId, KnownDetType.Veg, isPrivate); List <Guid> bundles = map.Get(KnownDetType.Veg).BundleIds; bundles.Add(sites.Id); bundles.Add(plotTypes.Id); bundles.Add(shrubSpecies.Id); bundles.Add(treeSpecies.Id); bundles.Add(herbSpecies.Id); if (nonLiving != null) { bundles.Add(nonLiving.Id); } DetRegistry.Instance.Update(map); SamplingEvent e = this.GetSampleEvent(map.SampleEventId); if (e != null) { string tmp = e.Name.Trim().Replace(' ', '_'); if (tmp.Length > 25) { tmp = tmp.Substring(0, 24); } fil.FileName = tmp + "_Veg.xlsx"; FileStoreManager.Instance.GetProvider().Update(fil); } } return(fil); } return(null); }
public FilestoreFile CreateFish(CompoundIdentity sampleEventId, EntityBundle sites, EntityBundle nets, EntityBundle fishSpecies, EntityBundle macroSpecies, bool isPrivate) { if (!sampleEventId.IsNullOrEmpty() && sites != null && nets != null && fishSpecies != null && sites.DataType == BundleDataType.Site && nets.DataType == BundleDataType.Instrument && fishSpecies.DataType == BundleDataType.TaxaUnit) { if (macroSpecies != null) { if (macroSpecies.DataType != BundleDataType.TaxaUnit) { return(null); //if we have macroSpecies, they better be taxaunits } } SampleEventMap map = DetRegistry.Instance.Get(sampleEventId); if (map == null) { map = DetRegistry.Instance.Create(sampleEventId); } else if (map.Contains(KnownDetType.Fish)) { return(null); //can't have more than 1 } FishDetProcessor wq = new FishDetProcessor(this.ctx); FilestoreFile fil = wq.Create(map, sites, nets, fishSpecies, macroSpecies, isPrivate); //note the permission is checked in there if (fil != null) { map.Add(fil.FileId, KnownDetType.Fish, isPrivate); List <Guid> bundles = map.Get(KnownDetType.Fish).BundleIds; bundles.Add(sites.Id); bundles.Add(nets.Id); bundles.Add(fishSpecies.Id); if (macroSpecies != null) { bundles.Add(macroSpecies.Id); } DetRegistry.Instance.Update(map); SamplingEvent e = this.GetSampleEvent(map.SampleEventId); if (e != null) { string tmp = e.Name.Trim().Replace(' ', '_'); if (tmp.Length > 25) { tmp = tmp.Substring(0, 24); } fil.FileName = tmp + "_Fish.xlsx"; FileStoreManager.Instance.GetProvider().Update(fil); } } return(fil); } return(null); }
public CompoundIdentity CreateSampleEvent(CompoundIdentity fieldTripId, CompoundIdentity princOrgId, string name, string desc, ValueRange <DateTime> range) { if (fieldTripId != null && !fieldTripId.IsEmpty && princOrgId != null && !princOrgId.IsEmpty && !string.IsNullOrEmpty(name)) { ISampleEventProvider prov = FieldActivityManager.Instance.GetSampleEventProvider(this.ctx); if (prov != null) { SamplingEvent evt = prov.Create(name, fieldTripId, princOrgId, range, desc); if (evt != null) { return(evt.Identity); } } } return(null); }
public override bool Update(SamplingEvent item) { if (item != null && this.CanUpdate(item)) { try { NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString); cmd.CommandText = Db.UpdateEvent; cmd.Parameters.AddWithValue("sid", item.Identity.DataStoreIdentity); cmd.Parameters.AddWithValue("id", item.Identity.Identity); cmd.Parameters.AddWithValue("ftsid", item.FieldTripId.DataStoreIdentity); cmd.Parameters.AddWithValue("ftid", item.FieldTripId.Identity); cmd.Parameters.AddWithValue("osid", item.PrincipalOrgId.DataStoreIdentity); cmd.Parameters.AddWithValue("oid", item.PrincipalOrgId.Identity); cmd.Parameters.AddWithValue("name", item.Name); if (string.IsNullOrEmpty(item.Description)) { cmd.Parameters.Add(NpgSqlCommandUtils.GetNullInParam("desc", NpgsqlTypes.NpgsqlDbType.Varchar)); } else { cmd.Parameters.AddWithValue("desc", item.Description); } if (item.DateRange != null) { item.DateRange = Db.CleanRange(item.DateRange); cmd.Parameters.AddWithValue("start", item.DateRange.Min); cmd.Parameters.AddWithValue("end", item.DateRange.Max); } else { cmd.Parameters.Add(NpgSqlCommandUtils.GetNullInParam("start", NpgsqlTypes.NpgsqlDbType.TimestampTZ)); cmd.Parameters.Add(NpgSqlCommandUtils.GetNullInParam("end", NpgsqlTypes.NpgsqlDbType.TimestampTZ)); } Db.ExecuteNonQuery(cmd); return(true); } catch { } } return(false); }
public override IEnumerable <SamplingEvent> GetForTrip(CompoundIdentity tripId) { if (!tripId.IsNullOrEmpty() && this.CanGet()) { string where = " WHERE \"FieldTripSystemId\"=:sid AND \"FieldTripId\"=:id"; NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString); cmd.CommandText = Db.SelectEvent + where; cmd.Parameters.AddWithValue("sid", tripId.DataStoreIdentity); cmd.Parameters.AddWithValue("id", tripId.Identity); NpgsqlDataReader rdr = Db.ExecuteReader(cmd); SamplingEvent o = null; List <SamplingEvent> permissions = new List <SamplingEvent>(); if (rdr != null) { try { while (rdr.Read()) { o = SamplingEventBuilder.Instance.Build(rdr); if (o != null) { permissions.Add(o); } } if (cmd.Connection.State == System.Data.ConnectionState.Open) { cmd.Connection.Close(); } } catch { } finally { cmd.Dispose(); } } return(permissions); } return(null); }
public FilestoreFile CreateWQ(CompoundIdentity sampleEventId, EntityBundle sites, EntityBundle instruments, bool isPrivate) { if (!sampleEventId.IsNullOrEmpty() && sites != null && instruments != null && sites.DataType == BundleDataType.Site && instruments.DataType == BundleDataType.Instrument) { SampleEventMap map = DetRegistry.Instance.Get(sampleEventId); if (map == null) { map = DetRegistry.Instance.Create(sampleEventId); } else if (map.Contains(KnownDetType.WaterQuality)) { return(null); //can't have more than 1 } WqDetProcessor wq = new WqDetProcessor(this.ctx); FilestoreFile fil = wq.Create(map, sites, instruments); //note the permission is checked in there if (fil != null) { map.Add(fil.FileId, KnownDetType.WaterQuality, isPrivate); List <Guid> bundles = map.Get(KnownDetType.WaterQuality).BundleIds; bundles.Add(sites.Id); bundles.Add(instruments.Id); DetRegistry.Instance.Update(map); SamplingEvent e = this.GetSampleEvent(map.SampleEventId); if (e != null) { string tmp = e.Name.Trim().Replace(' ', '_'); if (tmp.Length > 25) { tmp = tmp.Substring(0, 24); } fil.FileName = tmp + "_WQ.xlsx"; FileStoreManager.Instance.GetProvider().Update(fil); } } return(fil); } return(null); }
public static JObject ToJson(SamplingEvent sample) { if (sample != null) { JObject o = new JObject(); o.Add(JsonUtils.Id, JsonUtils.ToJson(sample.Identity)); o.Add(JsonUtils.TripId, JsonUtils.ToJson(sample.FieldTripId)); o.Add(JsonUtils.OwnerId, JsonUtils.ToJson(sample.PrincipalOrgId)); o.Add(JsonUtils.Name, sample.Name); if (sample.Description != null) { o.Add(JsonUtils.Description, sample.Description); } if (sample.DateRange != null) { if (sample.DateRange.Min.Equals(DateTime.MinValue)) { o.Add(JsonUtils.Start, null); } else { o.Add(JsonUtils.Start, sample.DateRange.Min.ToString()); } if (sample.DateRange.Max.Equals(DateTime.MinValue) || sample.DateRange.Max.Equals(DateTime.MaxValue)) //never set or closed { o.Add(JsonUtils.Finish, null); } else { o.Add(JsonUtils.Finish, sample.DateRange.Max.ToString()); } } return(o); } return(null); }
public override bool CanUpdate(SamplingEvent item) { return(this.CanUpdate()); }