private static void Get(UserSecurityContext user, HttpContext context, CancellationToken cancel) { try { InstrumentProviderBase provider = InstrumentManager.Instance.GetInstrumentProvider(user); InstrumentKnownArchetypeProviderBase archProvider = InstrumentManager.Instance.GetInstrumentKnownArchetypeProvider(user); if (provider != null) { IEnumerable <Instrument> instruments = provider.Get(); JArray jinstruments = new JArray(); foreach (Instrument inst in instruments) { IArchetype arch = archProvider.Get(inst.Identity); if (arch != null) { string archetypeString = archProvider.GetArchetypeType(arch.Identity); switch (archetypeString) { case "SimpleTrapDredge": jinstruments.Add(Jsonifier.ToJson(inst, arch as SimpleTrapDredge)); break; case "StandardMeshNet": jinstruments.Add(Jsonifier.ToJson(inst, arch as StandardMeshNet)); break; case "StandardPlanktonNet": jinstruments.Add(Jsonifier.ToJson(inst, arch as StandardPlanktonNet)); break; case "WingedBagNet": jinstruments.Add(Jsonifier.ToJson(inst, arch as WingedBagNet)); break; } } else //instrument has no archetype { jinstruments.Add(Jsonifier.ToJson(inst)); } } if (jinstruments != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, jinstruments.ToString()); } else { RestUtils.Push(context.Response, JsonOpStatus.Ok, "[]"); } return; } RestUtils.Push(context.Response, JsonOpStatus.Failed); } catch { RestUtils.Push(context.Response, JsonOpStatus.Failed); return; } }
public override bool Update(IArchetype a) { if (a != null && this.CanUpdate()) { try { string archetype = this.GetArchetypeType(a.Identity); if (!string.IsNullOrEmpty(archetype)) { NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString); cmd.CommandText = Db.UpdateInstrumentArchetypeInstance + " WHERE \"InstrumentId\"=:iid AND \"ArchetypeId\"=:aid"; switch (archetype) { case "SimpleTrapDredge": SimpleTrapDredge std = (SimpleTrapDredge)a; cmd.Parameters.AddWithValue("data", Db.ToJson(std).ToString()); cmd.Parameters.AddWithValue("iid", std.InstrumentId.Identity); cmd.Parameters.AddWithValue("aid", std.Identity.Identity); break; case "StandardMeshNet": StandardMeshNet smn = (StandardMeshNet)a; cmd.Parameters.AddWithValue("data", Db.ToJson(smn).ToString()); cmd.Parameters.AddWithValue("iid", smn.InstrumentId.Identity); cmd.Parameters.AddWithValue("aid", smn.Identity.Identity); break; case "StandardPlanktonNet": StandardPlanktonNet spn = (StandardPlanktonNet)a; cmd.Parameters.AddWithValue("data", Db.ToJson(spn).ToString()); cmd.Parameters.AddWithValue("iid", spn.InstrumentId.Identity); cmd.Parameters.AddWithValue("aid", spn.Identity.Identity); break; case "WingedBagNet": WingedBagNet wbn = (WingedBagNet)a; cmd.Parameters.AddWithValue("data", Db.ToJson(wbn).ToString()); cmd.Parameters.AddWithValue("iid", wbn.InstrumentId.Identity); cmd.Parameters.AddWithValue("aid", wbn.Identity.Identity); break; } Db.ExecuteNonQuery(cmd); return(true); } } catch { } } return(false); }
public abstract bool Update(IArchetype a);