Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public abstract bool Update(IArchetype a);