public async Task Invoke(IContext context) { if (context.TryGet("ActiveDocument", out MapDocument doc)) { var grid = await GridFactory.Create(doc.Environment); var gd = new GridData(grid); var operation = new TrivialOperation(x => doc.Map.Data.Replace(gd), x => x.Update(gd)); await MapDocumentOperation.Perform(doc, operation); } }
public async Task Invoke(IContext context, CommandParameters parameters) { if (context.TryGet("ActiveDocument", out MapDocument doc)) { var activeGrid = doc.Map.Data.GetOne <GridData>(); if (activeGrid != null) { var operation = new TrivialOperation(x => activeGrid.SnapToGrid = !activeGrid.SnapToGrid, x => x.Update(activeGrid)); await MapDocumentOperation.Perform(doc, operation); } } }
public async Task Invoke(IContext context, CommandParameters parameters) { if (context.TryGet("ActiveDocument", out MapDocument doc)) { var gd = doc.Map.Data.Get <GridData>().FirstOrDefault(); var grid = gd?.Grid; if (grid != null) { var operation = new TrivialOperation(x => grid.Spacing++, x => x.Update(gd)); await MapDocumentOperation.Perform(doc, operation); } } }
public async Task Invoke(IContext context, CommandParameters parameters) { if (context.TryGet("ActiveDocument", out MapDocument doc)) { if (!_grids.Any()) { return; } var current = doc.Map.Data.GetOne <GridData>()?.Grid; var idx = current == null ? -1 : Array.FindIndex(_grids, x => x.IsInstance(current)); idx = (idx + 1) % _grids.Length; var grid = await _grids[idx].Create(doc.Environment); var gd = new GridData(grid); var operation = new TrivialOperation(x => doc.Map.Data.Replace(gd), x => x.Update(gd)); await MapDocumentOperation.Perform(doc, operation); } }