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)); }
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)); }
// インスタンス情報 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)); }
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)); }
// インスタンス一覧データをフィルタリングして返す 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); }