public static (CodeLensData, DetailsData) GetCodeLensDataFor(this AssemblyDefinition assembly, IMethodSymbol symbol)
        {
            var def = assembly.GetMethodDefinition(symbol);

            var details = DetailsData.ForMethod(
                methodInstructions: def.GetInstructions().ToArray(),
                compilerGeneratedTypes: def.CollectGeneratedCode());

            var data = def.ToCodeLensData();

            return(data, details);
        }
Example #2
0
        public ActionResult Details(int id)
        {
            Election election = db.Elections.Find(id);

            if (election == null)
            {
                return(HttpNotFound());
            }

            DetailsData data = new DetailsData
            {
                Common         = election,
                NomineeEntries = new NomineeFetcher(new TimetableUserRepository()).Fetch(election.Positions)
            };

            if (election.Type == ElectionType.StudentCouncil)
            {
                data.CouncilElectionData = db.CouncilElectionData
                                           .First(councilData => councilData.ElectionId == id);
            }

            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (election.State)
            {
            case ElectionState.Disabled:
            {
                DetailsData.Action action = new DetailsData.Action()
                {
                    Title   = "Activate",
                    Url     = Url.Action("Activate", new { id }),
                    CssType = "success"
                };

                SimpleValidationResult validationResult = ElectionLifecycleInfo.CanActivate(election);

                if (!validationResult.IsNoErrors())
                {
                    action.Enabled = false;
                    action.Tooltip = validationResult.Violations[0].HumanError;
                }
                else
                {
                    action.Enabled = true;
                }

                data.Actions.Add(action);
                break;
            }

            case ElectionState.PreNominations:
            {
                DetailsData.Action action = new DetailsData.Action()
                {
                    Title   = "Deactivate",
                    Url     = Url.Action("Deactivate", new { id }),
                    CssType = "warning",
                    Enabled = true,
                    Tooltip = "Go back to deactivated state"
                };

                data.Actions.Add(action);
                break;
            }

            case ElectionState.Closed:
            {
                DetailsData.Action action = new DetailsData.Action()
                {
                    Title   = "Publish results",
                    Url     = Url.Action("PublishResults", new { id }),
                    CssType = "success",
                    Enabled = true
                };

                data.Actions.Add(action);
                break;
            }
            }

            if (election.State == ElectionState.Aborted)
            {
                data.Actions.Add(new DetailsData.Action()
                {
                    Title   = "Remove from system",
                    Enabled = true,
                    Url     = Url.Action("Delete", new { id }),
                    CssType = "danger",
                });
            }
            else
            {
                if (ElectionLifecycleInfo.CanEdit(election))
                {
                    data.Actions.Add(new DetailsData.Action()
                    {
                        Title   = "Edit",
                        Enabled = true,
                        Url     = Url.Action("Edit", new { id }),
                        CssType = "primary"
                    });
                }

                // Should be last
                data.Actions.Add(new DetailsData.Action()
                {
                    Title   = "Abort",
                    Enabled = true,
                    Url     = Url.Action("Abort", new { id }),
                    CssType = "danger"
                });
            }

            return(View(data));
        }
Example #3
0
 public void SetContent(DetailsData data)
 {
     tvTitle.Text = data.Title;
     tvText.Text  = data.Text;
 }