コード例 #1
0
        public IActionResult Status([FromRoute] string id, [FromQuery] int mode, [FromForm] IEnumerable <string> cb, [FromForm] OperationType operation, [FromForm] string args)
        {
            try
            {
                Server.AppInstanceOperation(id, cb, operation, args);
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message;
            }

            App app = Server.AppGet(id);

            IEnumerable <Instance> instanceList = app.InstanceList;

            // チェックボックスがチェックされたインスタンスの IsSelected フラグを true にする
            instanceList._DoForEach(inst => inst.ViewIsSelected = cb.Where(selectedId => (IgnoreCaseTrim)selectedId == inst.GetId(app)).Any());

            // 列挙結果を返す
            DualData <App, List <Instance> > data = GetFilteredInstanceListView(id, mode, app, instanceList);

            ViewBag.mode = mode;

            return(View(data));
        }
コード例 #2
0
        public IActionResult CsvSet([FromRoute] string id, [FromQuery] int mode)
        {
            App app = Server.AppGet(id);

            IEnumerable <Instance> instanceList = app.InstanceList;

            DualData <App, List <Instance> > filtered = GetFilteredInstanceListView(id, mode, app, instanceList);

            // CSV データの生成
            StringWriter w = new StringWriter();

            foreach (Instance inst in filtered.Data2)
            {
                w.WriteLine($"# {inst.HostName} - {inst.LastStat!.DaemonName}");
                w.WriteLine($"{inst.GetId(app)},{inst.LastStat.InstanceArguments}");
                w.WriteLine();
            }

            string csvText = w.ToString();

            DualData <App, StrClass> model = new DualData <App, StrClass>(id, app, "dummyId", csvText, ModelMode.Edit);

            ViewBag.mode = mode;

            return(View(model));
        }
コード例 #3
0
        // インスタンス情報
        public IActionResult InstanceInfo([FromRoute] string id, [FromRoute] string id2)
        {
            App app = Server.AppGet(id);

            Instance inst = app.GetInstanceById(id2);

            DualData <App, Instance> data = new DualData <App, Instance>(id, app, id2, inst, ModelMode.Edit);

            return(View(data));
        }
コード例 #4
0
        public IActionResult Status([FromRoute] string id, [FromQuery] int mode)
        {
            App app = Server.AppGet(id);

            IEnumerable <Instance> instanceList = app.InstanceList;

            DualData <App, List <Instance> > data = GetFilteredInstanceListView(id, mode, app, instanceList);

            ViewBag.mode = mode;

            return(View(data));
        }
コード例 #5
0
        // インスタンス一覧データをフィルタリングして返す
        DualData <App, List <Instance> > GetFilteredInstanceListView(string appId, int filterMode, App app, IEnumerable <Instance> instanceList)
        {
            // ソート
            instanceList = instanceList.OrderBy(x => x.HostName);

            // フィルタの実施
            if (filterMode == 1)
            {
                instanceList = instanceList.Where(x => x.IsActive(app.Settings !, DateTimeOffset.Now));
            }

            if (filterMode == 2)
            {
                instanceList = instanceList.Where(x => !x.IsActive(app.Settings !, DateTimeOffset.Now));
            }

            DualData <App, List <Instance> > data = new DualData <App, List <Instance> >(appId, app, appId, instanceList.ToList(), ModelMode.Edit);

            return(data);
        }