public void ActivateFor(ExtPersonController block) { //cancel if not saved if (block.VM.Persistent.Person.RowId == 0) { UIGlobals.Do.ShowTimedMessge("Save before creating links"); return; } Source = block; VM.IsActive = true; VM.Instructions = "Use this to link/relink/unlink this person. Open a task, note, or another person to see all options."; VM.Items.Clear(); var ep = block.VM.Persistent; //convert ExtPerson.Links to VM items foreach (var link in ep.Links) { var item = new RecordLinkVM.ItemVM { IsSticky = true, ButtonText = "Unlink", Command = new LinkInstruction { FromId = ep.Person.RowId, IsRemove = true, Link = link.Link, ToId = link.OtherId, ToDescription = link.Description } }; item.Description = $"'{ep.Person.Name}' is linked to '{link.Description}'"; VM.Items.Add(item); } }
/// <summary> /// Create the controller for reinflating the collapsed block; or return null if not possible /// </summary> /// <param name="collapseRequested">The handler that will be used for the re-expanded block</param> public BlockController Reinflate(Action <BlockController> blockGotFocusHandler, Action <BlockController, bool> collapseRequested) { if (OriginalControllerType == typeof(ExtBoxController)) { var inflateData = Data as ExtBoxController.CollapseData; var c = new ExtBoxController(inflateData.RowId, blockGotFocusHandler, collapseRequested, true); return(c); } if (OriginalControllerType == typeof(ExtPersonController)) { var inflateData = Data as ExtPersonController.CollapseData; var c = new ExtPersonController(inflateData.RowId, blockGotFocusHandler, collapseRequested, false); return(c); } if (OriginalControllerType == typeof(TodayController)) { var inflateData = Data as TodayController.CollapseData; var c = new TodayController(inflateData.IsToday, blockGotFocusHandler, collapseRequested); return(c); } if (OriginalControllerType == typeof(BoxSearchController)) { var inflateData = Data as BoxSearchController.CollapseData; var c = new BoxSearchController(blockGotFocusHandler, collapseRequested, inflateData.DoneMode); c.VM.TermCri = inflateData.TermCri; c.VM.DoneSinceCri.Date = inflateData.DoneSinceCri; c.VM.IncludeDetailsCri = inflateData.IncludeDetailsCri; c.SearchRequested(); return(c); } if (OriginalControllerType == typeof(PersonSearchController)) { var inflateData = Data as PersonSearchController.CollapseData; var c = new PersonSearchController(blockGotFocusHandler, collapseRequested); c.VM.TermCri = inflateData.TermCri; c.VM.IncludeDetailsCri = inflateData.IncludeDetailsCri; c.VM.CatIdCri = inflateData.CatIdCri; c.SearchRequested(); return(c); } if (OriginalControllerType == typeof(AgendaController)) { var c = new AgendaController(blockGotFocusHandler, collapseRequested, 15); //the 15 gets fixed by caller return(c); } if (OriginalControllerType == typeof(CalendarController)) { var c = new CalendarController(blockGotFocusHandler, collapseRequested); return(c); } if (OriginalControllerType == typeof(SubjectController)) { var c = new SubjectController(blockGotFocusHandler, collapseRequested); return(c); } return(null); }