Exemplo n.º 1
0
        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);
        }