/// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            IssueCollection issues     = new IssueCollection();
            List <DateTime> timestamps = new List <DateTime>();

            DA.GetDataList <Issue>(0, issues);
            DateTime timestamp = DateTime.Now;

            DataTree <Issue> results = new DataTree <Issue>();
            List <int>       counts  = new List <int>();

            DA.GetDataList(1, timestamps);
            for (int i = 0; i < timestamps.Count; i++)
            {
                timestamp = timestamps[i];

                IssueCollection issues_as_of = issues.AsOf(timestamp);
                GH_Path         path         = new GH_Path(i);
                results.AddRange(issues_as_of, path);
                counts.Add(issues_as_of.Count);
            }

            DA.SetDataList(0, counts);
            DA.SetDataTree(1, results);
        }
 public override void Validate(IssueCollection collection)
 {
     if (!collection.HasMilestone(_milestoneName))
     {
         Console.WriteLine($"WARNING: Milestone does not exist: {_milestoneName}");
     }
 }
 public override void Validate(IssueCollection collection)
 {
     if (!collection.HasUser(_assigneeName))
     {
         Console.WriteLine($"WARNING: Assignee does not exist: {_assigneeName}");
     }
 }
        public TableReport(
            IEnumerable <string> configFiles,
            IEnumerable <string> beginFiles,
            IEnumerable <string> middleFiles,
            IEnumerable <string> endFiles)
        {
            _config = new Config(configFiles);

            BeginFiles  = beginFiles;
            MiddleFiles = middleFiles ?? new string[] { };
            EndFiles    = endFiles;

            IEnumerable <DataModelIssue> beginIssuesAll = IssueCollection.LoadIssues(beginFiles, _config);
            IEnumerable <DataModelIssue> endIssuesAll   = IssueCollection.LoadIssues(endFiles, _config);

            BeginIssues = beginIssuesAll.Where(i => i.IsIssueOrComment).ToArray();
            EndIssues   = endIssuesAll.Where(i => i.IsIssueOrComment).ToArray();

            List <DataModelIssue> middleIssues = new List <DataModelIssue>();

            if (middleFiles != null)
            {
                // Enumerate the middle files in reverse order to capture the latest bug snapshot (the most
                // "accurate" before its disappearance)
                foreach (string middleFile in middleFiles.Reverse())
                {
                    IEnumerable <DataModelIssue> issues = IssueCollection.LoadIssues(beginFiles, _config);
                    middleIssues.AddRange(issues.Where(i => i.IsIssueOrComment)
                                          .Except_ByIssueNumber(BeginIssues)
                                          .Except_ByIssueNumber(EndIssues));
                }
            }
            MiddleIssues = middleIssues;
        }
 public override void Validate(IssueCollection collection)
 {
     if (!collection.HasLabel(_labelName))
     {
         Console.WriteLine($"WARNING: Label does not exist: {_labelName}");
     }
 }
        public IssueCollection GetAllIssues()
        {
            IssueCollection objIssueCollection = new IssueCollection();

            _ObjectManager.SelectAll(objIssueCollection);
            return(objIssueCollection);
        }
        private void menuIssues_Click(object sender, System.EventArgs e)
        {
            IssueCollection myColl = new IssueCollection();

            Controller.ParentForm = this;
            Controller.Process(myColl, Controller.ControllerActions.View);
        }
        private void FormMain_Load(object sender, System.EventArgs e)
        {
            RegistryKey regkeyAppRoot =
                Registry.CurrentUser.CreateSubKey("Software\\IssueTracker\\Settings");

            String strWindowState = (String)regkeyAppRoot.GetValue("WindowState");

            if (strWindowState != null && strWindowState.CompareTo("Maximized") == 0)
            {
                WindowState = System.Windows.Forms.FormWindowState.Maximized;
            }

            else if (strWindowState != null && strWindowState.CompareTo("Minimized") == 0)
            {
                WindowState = FormWindowState.Minimized;
            }

            else
            {
                WindowState = FormWindowState.Normal;
            }

            IssueCollection myColl = new IssueCollection();

            Controller.ParentForm = this;
            Controller.Process(myColl, Controller.ControllerActions.View);

            return;
        }
Exemple #9
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            bool run = false;

            DA.GetData("Run", ref run);
            if (!run)
            {
                return;
            }

            string   project = "", releaseTarget = "", search = "";
            string   sUpdatedBefore = "", sUpdatedAfter = "", sCreatedBefore = "", sCreatedAfter = "";
            DateTime updatedBefore, updatedAfter, createdBefore, createdAfter;

            updatedBefore = updatedAfter = createdBefore = createdAfter = DateTime.MinValue;
            DA.GetData("Project", ref project);
            DA.GetData("ReleaseTarget", ref releaseTarget);
            DA.GetData("Search", ref search);

            DA.GetData("UpdatedBefore", ref sUpdatedBefore);
            DA.GetData("UpdatedAfter", ref sUpdatedAfter);
            DA.GetData("CreatedBefore", ref sCreatedBefore);
            DA.GetData("CreatedAfter", ref sCreatedAfter);

            if (!string.IsNullOrWhiteSpace(sUpdatedBefore))
            {
                updatedBefore = DateTime.Parse(sUpdatedBefore);
            }
            if (!string.IsNullOrWhiteSpace(sUpdatedAfter))
            {
                updatedAfter = DateTime.Parse(sUpdatedAfter);
            }
            if (!string.IsNullOrWhiteSpace(sCreatedBefore))
            {
                createdBefore = DateTime.Parse(sCreatedBefore);
            }
            if (!string.IsNullOrWhiteSpace(sCreatedAfter))
            {
                createdAfter = DateTime.Parse(sCreatedAfter);
            }

            var q = new Query();

            q.Project       = project;
            q.ReleaseTarget = releaseTarget;
            q.Filter        = search;
            q.UpdatedBefore = updatedBefore;
            q.UpdatedAfter  = updatedAfter;
            q.CreatedBefore = createdBefore;
            q.CreatedAfter  = createdAfter;

            if (q.ToString() != _filter || _issues == null)
            {
                _issues = q.FetchAllIssues();
                _filter = q.ToString();
            }

            DA.SetData(0, q.ToString());
            DA.SetDataList(1, _issues);
        }
Exemple #10
0
        private static Dictionary <long, long> IssueData(
            Context context,
            SiteSettings ss,
            Dictionary <long, Dictionary <long, Dictionary <int, string> > > data,
            SqlWhereCollection where,
            SqlOrderByCollection orderBy,
            Export export,
            Dictionary <long, long> keys,
            Dictionary <long, string> keyColumns)
        {
            ss.SetColumnAccessControls(context: context);
            var keyColumn = keyColumns.Get(ss.SiteId);
            var column    = IssuesColumn(ss, export, ss.GetColumn(
                                             context: context,
                                             columnName: keyColumn));
            var issueHash = new IssueCollection(
                context: context,
                ss: ss,
                column: column,
                join: ss.Join(
                    context: context,
                    join: new Implem.Libraries.DataSources.Interfaces.IJoin[]
            {
                column,
                where,
                orderBy
            }),
                where : where,
                orderBy: orderBy)
                            .ToDictionary(o => o.IssueId, o => o);

            if (keys == null)
            {
                data.Add(ss.SiteId, issueHash.ToDictionary(
                             o => o.Value.IssueId,
                             o => IssueData(
                                 context: context,
                                 ss: ss,
                                 export: export,
                                 issueModel: o.Value)));
                return(issueHash.ToDictionary(
                           o => o.Key,
                           o => o.Value.PropertyValue(
                               context: context, name: keyColumn).ToLong()));
            }
            else
            {
                data.Add(ss.SiteId, keys.ToDictionary(
                             o => o.Key,
                             o => IssueData(
                                 context: context,
                                 ss: ss,
                                 export: export,
                                 issueModel: issueHash.Get(o.Value))));
                return(keys.ToDictionary(
                           o => o.Key,
                           o => issueHash.Get(o.Value)?.PropertyValue(
                               context: context, name: keyColumn).ToLong() ?? 0));
            }
        }
        public void BindIssues()
        {
            IssueCollection colIssues = null;

            int projectId = dropProjects.SelectedValue;

            switch (dropView.SelectedValue)
            {
            case "Relevant":
                colIssues = Issue.GetIssuesByRelevancy(projectId, User.Identity.Name);
                break;

            case "Assigned":
                colIssues = Issue.GetIssuesByAssignedUsername(projectId, User.Identity.Name);
                break;

            case "Owned":
                colIssues = Issue.GetIssuesByOwnerUsername(projectId, User.Identity.Name);
                break;

            case "Created":
                colIssues = Issue.GetIssuesByCreatorUsername(projectId, User.Identity.Name);
                break;

            case "All":
                colIssues = Issue.GetIssuesByProjectId(projectId);
                break;
            }

            ctlDisplayIssues.DataSource = colIssues;
            ctlDisplayIssues.DataBind();

            // Display Current Project Name
            lblProjectName.Text = dropProjects.SelectedItem.Text;
        }
 public override void Validate(IssueCollection collection)
 {
     if (collection.Labels.Where(label => _labelRegex.IsMatch(label.Name)).None())
     {
         Console.WriteLine($"WARNING: Label pattern does not match any label: {_labelRegex.ToString()}");
     }
 }
        private void FormMain_Load_1(object sender, System.EventArgs e)
        {
            IssueCollection myColl = new IssueCollection();

            Controller.Process(myColl, Controller.ControllerActions.View);

            return;
        }
        protected CollectionBase  GenerateIssueCollectionFromReader(IDataReader returnData)
        {
            IssueCollection issCollection = new IssueCollection();

            while (returnData.Read())
            {
                int      projectId           = (int)returnData["ProjectId"];
                string   issueTitle          = (string)returnData["IssueTitle"];
                int      issueCategoryId     = (int)returnData["IssueCategoryId"];
                string   categoryName        = (string)returnData["CategoryName"];
                int      issueMilestoneId    = (int)returnData["IssueMilestoneId"];
                string   milestoneName       = (string)returnData["MilestoneName"];
                string   milestoneImageUrl   = (string)returnData["MilestoneImageUrl"];
                int      issuePriorityId     = (int)returnData["IssuePriorityId"];
                string   priorityName        = (string)returnData["PriorityName"];
                string   priorityImageUrl    = (string)returnData["PriorityImageUrl"];
                int      issueStatusId       = (int)returnData["IssueStatusId"];
                string   statusName          = (string)returnData["StatusName"];
                string   statusImageUrl      = (string)returnData["StatusImageUrl"];
                string   assignedDisplayName = (string)returnData["AssignedDisplayName"];
                int      issueAssignedId     = (int)returnData["IssueAssignedId"];
                string   ownerDisplayName    = (string)returnData["OwnerDisplayName"];
                int      issueOwnerId        = (int)returnData["IssueOwnerId"];
                string   creatorDisplayName  = (string)returnData["CreatorDisplayName"];
                int      issueCreatorId      = (int)returnData["IssueCreatorId"];
                string   creatorUsername     = (string)returnData["CreatorUsername"];
                DateTime dateCreated         = (DateTime)returnData["DateCreated"];


                Issue newIssue = new Issue((int)returnData["IssueId"],
                                           projectId,
                                           issueTitle,
                                           issueCategoryId,
                                           categoryName,
                                           issueMilestoneId,
                                           milestoneName,
                                           milestoneImageUrl,
                                           issuePriorityId,
                                           priorityName,
                                           priorityImageUrl,
                                           issueStatusId,
                                           statusName,
                                           statusImageUrl,
                                           assignedDisplayName,
                                           issueAssignedId,
                                           ownerDisplayName,
                                           issueOwnerId,
                                           creatorDisplayName,
                                           issueCreatorId,
                                           creatorUsername,
                                           dateCreated);

                issCollection.Add(newIssue);
            }
            return(issCollection);
        }
Exemple #15
0
        public ContributionsReport(
            IEnumerable <string> configFiles,
            IEnumerable <string> inputFiles)
        {
            _config = new ContributionsConfig(configFiles);

            InputFiles = inputFiles;

            Issues = IssueCollection.LoadIssues(inputFiles, _config);
        }
        public QueryReport(Config config, IEnumerable <string> beginFiles, IEnumerable <string> endFiles)
        {
            _config = config;

            _beginFiles = beginFiles;
            _endFiles   = endFiles;

            _beginIssues = IssueCollection.LoadIssues(beginFiles, config);
            _endIssues   = IssueCollection.LoadIssues(endFiles, config);
        }
Exemple #17
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            IssueCollection issues        = new IssueCollection();
            string          field         = "";
            List <string>   values        = new List <string>();
            bool            searchHistory = false;

            DA.GetDataList <Issue>(0, issues);
            DA.GetData(1, ref field);
            DA.GetDataList(2, values);
            DA.GetData(3, ref searchHistory);

            IssueCollection filtered = new IssueCollection();

            foreach (var issue in issues)
            {
                bool issueAdded = false;
                if (issue == null)
                {
                    continue;
                }
                string prop = issue.GetPropertyValue(field);
                foreach (string value in values)
                {
                    if (0 == string.Compare(prop, value, true))
                    {
                        filtered.Add(issue);
                        issueAdded = true;
                    }
                }
                if (searchHistory)
                {
                    foreach (var change in issue.changes)
                    {
                        if (0 == string.Compare(change.Action, field))
                        {
                            foreach (string value in values)
                            {
                                if (0 == string.Compare(change.To, value, true))
                                {
                                    if (!issueAdded)
                                    {
                                        filtered.Add(issue);
                                        issueAdded = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            DA.SetData(0, filtered.Count);
            DA.SetDataList(1, filtered);
        }
        private void FormIssueSummary_Load_1(object sender, System.EventArgs e)
        {
            IssueManager    mgrIssues  = new IssueManager();
            IssueCollection collIssues = mgrIssues.GetAllIssues();

            foreach (Issue issueItem in collIssues)
            {
                lstIssues.Items.Add(issueItem.Summary);
            }

            return;
        }
        //*******************************************************
        //
        // SortGridData methods sorts the Issues Grid based on which
        // sort field is being selected.  Also does reverse sorting based on the boolean.
        //
        //*******************************************************

        private void SortGridData(IssueCollection list, string sortField, bool asc)
        {
            IssueCollection.IssueFields sortCol = IssueCollection.IssueFields.InitValue;

            switch (sortField)
            {
            case "Id":
                sortCol = IssueCollection.IssueFields.Id;
                break;

            case "Title":
                sortCol = IssueCollection.IssueFields.Title;
                break;

            case "Category":
                sortCol = IssueCollection.IssueFields.Category;
                break;

            case "Assigned":
                sortCol = IssueCollection.IssueFields.Assigned;
                break;

            case "Owner":
                sortCol = IssueCollection.IssueFields.Owner;
                break;

            case "Creator":
                sortCol = IssueCollection.IssueFields.Creator;
                break;

            case "Priority":
                sortCol = IssueCollection.IssueFields.Priority;
                break;

            case "Status":
                sortCol = IssueCollection.IssueFields.Status;
                break;

            case "Milestone":
                sortCol = IssueCollection.IssueFields.Milestone;
                break;

            case "Created":
                sortCol = IssueCollection.IssueFields.Created;
                break;
            }

            if (list != null)
            {
                list.Sort(sortCol, asc);
            }
        }
Exemple #20
0
        public QuarterBoxViewModel(LoggedQuarter quarter, IssueCollection issues, IssueLogger logger, IEnumerable <IssueRowViewModel> issueRows, IssueColors issueColors)
        {
            Margin = new Thickness(1, 1, quarter.Quarter == 3 ? 1 : 0, 1);

            Background = new ProjectedObservableValue <Brush>(() => issueColors.GetColor(issues.FindLoggedIn(quarter)));
            issues.LoggedQuartersChanged += Background.Refresh;

            LogCommand = new DelegateCommand(() =>
            {
                IssueRowViewModel checkedIssueRow = issueRows.SingleOrDefault(i => i.IsColorChecked.Value == true);
                if (checkedIssueRow != null)
                {
                    logger.Log(quarter, checkedIssueRow.Issue);
                }
            });
            RemoveLogCommand = new DelegateCommand(() => logger.RemoveLog(quarter));
        }
Exemple #21
0
        //*********************************************************************
        //
        // ExecuteQuery Method
        //
        // This method executes a query and displays the results.
        //
        //******************************************************************

        void ExecuteQuery()
        {
            QueryClauseCollection colQueryClauses = BuildQuery();

            if (colQueryClauses.Count > 0)
            {
                try
                {
                    IssueCollection colIssues = Issue.PerformQuery(dropProjects.SelectedValue, colQueryClauses);
                    ctlDisplayIssues.DataSource = colIssues;
                }
                catch
                {
                    lblError.Text = "Error in query. Please check query values.";
                }

                ctlDisplayIssues.DataBind();
            }
        }
        private void FormIssueSummary_Load(object sender, System.EventArgs e)
        {
            IssueManager    mgrIssues  = new IssueManager();
            IssueCollection collIssues = mgrIssues.GetAllIssues();

            foreach (Issue issueItem in collIssues)
            {
                //store the description as a listviewitem
                ListViewItem item = new ListViewItem(issueItem.Summary);

                //store the reference id as a subitem
                item.SubItems.Add(issueItem.IssueID.ToString());

                //add the listviewitem to the listview control
                lstIssues.Items.Add(item);
            }

            return;
        }
Exemple #23
0
        void ExecuteQuery()
        {
            if (dropQueries.SelectedValue == 0)
            {
                return;
            }


            try
            {
                IssueCollection colIssues = Issue.PerformSavedQuery(dropProjects.SelectedValue, dropQueries.SelectedValue);
                ctlDisplayIssues.DataSource = colIssues;
            }
            catch
            {
                lblError.Text = "Error in query. Please check query values.";
            }

            ctlDisplayIssues.DataBind();
        }
        private static Dictionary <long, long> IssueData(
            SiteSettings ss,
            Dictionary <long, Dictionary <long, Dictionary <int, string> > > data,
            SqlWhereCollection where,
            SqlOrderByCollection orderBy,
            Export export,
            Dictionary <long, long> keys,
            Dictionary <long, string> keyColumns)
        {
            ss.SetColumnAccessControls();
            ss.SetChoiceHash();
            var keyColumn = keyColumns.Get(ss.SiteId);
            var issueHash = new IssueCollection(
                ss: ss,
                column: IssuesColumn(ss, export, ss.GetColumn(keyColumn)),
                where : where,
                orderBy: orderBy)
                            .ToDictionary(o => o.IssueId, o => o);

            issueHash.Values.ToList().SetLinks(ss);
            if (keys == null)
            {
                data.Add(ss.SiteId, issueHash.ToDictionary(
                             o => o.Value.IssueId,
                             o => IssueData(ss, export, o.Value)));
                return(issueHash.ToDictionary(
                           o => o.Key,
                           o => o.Value.PropertyValue(keyColumn).ToLong()));
            }
            else
            {
                data.Add(ss.SiteId, keys.ToDictionary(
                             o => o.Key,
                             o => IssueData(ss, export, issueHash.Get(o.Value))));
                return(keys.ToDictionary(
                           o => o.Key,
                           o => issueHash.Get(o.Value)?.PropertyValue(keyColumn).ToLong() ?? 0));
            }
        }
Exemple #25
0
        public static bool SendEmails(
            Config config,
            string htmlTemplateFileName,
            bool skipEmail,
            string outputHtmlFileName,
            IEnumerable <string> filteredAlertNames,
            IEnumerable <string> inputFiles)
        {
            IEnumerable <DataModelIssue> issues = IssueCollection.LoadIssues(
                inputFiles,
                config,
                IssueKindFlags.Issue);

            return(AlertReport.SendEmails(
                       config,
                       htmlTemplateFileName,
                       skipEmail,
                       outputHtmlFileName,
                       filteredAlertNames,
                       (Alert alert, string htmlTemplate) =>
                       GenerateReport(alert, htmlTemplate, issues, inputFiles, config.UntriagedExpression)));
        }
        private static void SynchronizeIssues(
            Context context,
            SiteSettings ss,
            SiteSettings destinationSs,
            long destinationSiteId,
            string destinationColumn,
            View destinationCondition,
            bool setZeroWhenOutOfCondition,
            long sourceSiteId,
            string sourceReferenceType,
            string linkColumn,
            string type,
            string sourceColumn,
            View sourceCondition,
            long issueId = 0)
        {
            if (context.CanUpdate(ss: destinationSs))
            {
                var where = Rds.IssuesWhere()
                            .SiteId(destinationSiteId)
                            .IssueId(issueId, _using: issueId != 0);
                var issueCollection = new IssueCollection(
                    context: context,
                    ss: destinationSs,
                    where : Where(
                        context: context, ss: destinationSs, view: null, where : where));
                var matchingConditions = destinationCondition != null
                    ? Rds.ExecuteTable(
                    context : context,
                    statements : Rds.SelectIssues(
                        column: Rds.IssuesColumn().IssueId(),
                        where : Where(
                            context: context,
                            ss: destinationSs,
                            view: destinationCondition,
                            where : where)))
                                         .AsEnumerable()
                                         .Select(dataRow => dataRow.Long("IssueId"))
                                         .ToList()
                    : issueCollection
                                         .Select(o => o.IssueId)
                                         .ToList();

                var data = issueCollection.Any()
                    ? Data(
                    context: context,
                    ss: ss,
                    destinationColumn: destinationColumn,
                    destinations: issueCollection.Select(o => o.IssueId),
                    sourceSiteId: sourceSiteId,
                    sourceReferenceType: sourceReferenceType,
                    linkColumn: linkColumn,
                    type: type,
                    sourceColumn: sourceColumn,
                    sourceCondition: sourceCondition)
                    : new Dictionary <long, decimal>();
                issueCollection.ForEach(issueModel =>
                {
                    if (matchingConditions.Any(o => o == issueModel.IssueId))
                    {
                        Set(
                            issueModel,
                            destinationColumn,
                            data.Get(issueModel.IssueId));
                    }
                    else if (setZeroWhenOutOfCondition)
                    {
                        Set(issueModel, destinationColumn, 0);
                    }
                    if (issueModel.Updated(context: context))
                    {
                        issueModel.SetByFormula(context: context, ss: destinationSs);
                        issueModel.VerUp = Versions.MustVerUp(
                            context: context, baseModel: issueModel);
                        issueModel.SetChoiceHash(context: context, ss: destinationSs);
                        issueModel.Update(
                            context: context,
                            ss: destinationSs,
                            synchronizeSummary: false,
                            get: false);
                    }
                });
            }
        }
Exemple #27
0
        private static HtmlBuilder LinkTable(
            this HtmlBuilder hb,
            Context context,
            SiteSettings ss,
            View view,
            EnumerableRowCollection <DataRow> dataRows,
            string direction,
            string dataTableName)
        {
            return(hb.Table(
                       id: dataTableName,
                       css: "grid",
                       attributes: new HtmlAttributes()
                       .DataId(ss.SiteId.ToString())
                       .DataName(direction)
                       .DataValue("back")
                       .DataAction("LinkTable")
                       .DataMethod("post"),
                       action: () =>
            {
                var siteMenu = SiteInfo.TenantCaches.Get(context.TenantId)?.SiteMenu;
                if (dataRows != null && dataRows.Any())
                {
                    ss.SetColumnAccessControls(context: context);
                    var columns = ss.GetLinkTableColumns(
                        context: context,
                        view: view,
                        checkPermission: true);
                    switch (ss.ReferenceType)
                    {
                    case "Issues":
                        var issueCollection = new IssueCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        issueCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(caption: "{0} : {1} - {2} {3}".Params(
                                     Caption(
                                         context: context,
                                         direction: direction),
                                     siteMenu.Breadcrumb(context: context, siteId: ss.SiteId)
                                     .Select(o => o.Title)
                                     .Join(" > "),
                                     Displays.Quantity(context: context),
                                     dataRows.Count()))
                        .THead(action: () => hb
                               .GridHeader(
                                   context: context,
                                   columns: columns,
                                   view: view,
                                   sort: true,
                                   checkRow: false,
                                   action: "LinkTable"))
                        .TBody(action: () => issueCollection
                               .ForEach(issueModel =>
                        {
                            ss.SetColumnAccessControls(
                                context: context,
                                mine: issueModel.Mine(context: context));
                            hb.Tr(
                                attributes: new HtmlAttributes()
                                .Class("grid-row")
                                .DataId(issueModel.IssueId.ToString()),
                                action: () => columns
                                .ForEach(column => hb
                                         .TdValue(
                                             context: context,
                                             ss: ss,
                                             column: column,
                                             issueModel: issueModel)));
                        }));
                        break;

                    case "Results":
                        var resultCollection = new ResultCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        resultCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(caption: "{0} : {1} - {2} {3}".Params(
                                     Caption(
                                         context: context,
                                         direction: direction),
                                     siteMenu.Breadcrumb(context: context, siteId: ss.SiteId)
                                     .Select(o => o.Title)
                                     .Join(" > "),
                                     Displays.Quantity(context: context),
                                     dataRows.Count()))
                        .THead(action: () => hb
                               .GridHeader(
                                   context: context,
                                   columns: columns,
                                   view: view,
                                   sort: true,
                                   checkRow: false,
                                   action: "LinkTable"))
                        .TBody(action: () => resultCollection
                               .ForEach(resultModel =>
                        {
                            ss.SetColumnAccessControls(
                                context: context,
                                mine: resultModel.Mine(context: context));
                            hb.Tr(
                                attributes: new HtmlAttributes()
                                .Class("grid-row")
                                .DataId(resultModel.ResultId.ToString()),
                                action: () => columns
                                .ForEach(column => hb
                                         .TdValue(
                                             context: context,
                                             ss: ss,
                                             column: column,
                                             resultModel: resultModel)));
                        }));
                        break;
                    }
                }
            }));
        }
Exemple #28
0
 public abstract void Validate(IssueCollection collection);
Exemple #29
0
 public override void Validate(IssueCollection collection)
 {
     // Nothing to validate
 }
Exemple #30
0
        private static HtmlBuilder LinkTables(
            this HtmlBuilder hb,
            Context context,
            IEnumerable <SiteSettings> ssList,
            DataSet dataSet,
            string direction,
            string caption)
        {
            ssList.ForEach(ss => hb.Table(
                               css: "grid",
                               attributes: new HtmlAttributes().DataValue("back"),
                               action: () =>
            {
                var dataRows = dataSet.Tables[ss.ReferenceType + "_" + direction + ss.SiteId]?
                               .AsEnumerable()
                               .Where(o => o["SiteId"].ToLong() == ss.SiteId);
                var siteMenu = SiteInfo.TenantCaches.Get(context.TenantId)?.SiteMenu;
                if (dataRows != null && dataRows.Any())
                {
                    ss.SetColumnAccessControls(context: context);
                    var columns = ss.GetLinkColumns(context: context, checkPermission: true);
                    switch (ss.ReferenceType)
                    {
                    case "Issues":
                        var issueCollection = new IssueCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        issueCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(caption: "{0} : {1} - {2} {3}".Params(
                                     caption,
                                     siteMenu.Breadcrumb(context: context, siteId: ss.SiteId)
                                     .Select(o => o.Title)
                                     .Join(" > "),
                                     Displays.Quantity(),
                                     dataRows.Count()))
                        .THead(action: () => hb
                               .GridHeader(columns: columns, sort: false, checkRow: false))
                        .TBody(action: () => issueCollection
                               .ForEach(issueModel =>
                        {
                            ss.SetColumnAccessControls(
                                context: context,
                                mine: issueModel.Mine(context: context));
                            hb.Tr(
                                attributes: new HtmlAttributes()
                                .Class("grid-row")
                                .DataId(issueModel.IssueId.ToString()),
                                action: () => columns
                                .ForEach(column => hb
                                         .TdValue(
                                             context: context,
                                             ss: ss,
                                             column: column,
                                             issueModel: issueModel)));
                        }));
                        break;

                    case "Results":
                        var resultCollection = new ResultCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        resultCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(caption: "{0} : {1} - {2} {3}".Params(
                                     caption,
                                     siteMenu.Breadcrumb(context: context, siteId: ss.SiteId)
                                     .Select(o => o.Title)
                                     .Join(" > "),
                                     Displays.Quantity(),
                                     dataRows.Count()))
                        .THead(action: () => hb
                               .GridHeader(columns: columns, sort: false, checkRow: false))
                        .TBody(action: () => resultCollection
                               .ForEach(resultModel =>
                        {
                            ss.SetColumnAccessControls(
                                context: context,
                                mine: resultModel.Mine(context: context));
                            hb.Tr(
                                attributes: new HtmlAttributes()
                                .Class("grid-row")
                                .DataId(resultModel.ResultId.ToString()),
                                action: () => columns
                                .ForEach(column => hb
                                         .TdValue(
                                             context: context,
                                             ss: ss,
                                             column: column,
                                             resultModel: resultModel)));
                        }));
                        break;
                    }
                }
            }));
            return(hb);
        }
 private static IRevision CreateRevision(ILogItem logItem, IssueCollection issues, IRevisionOverride revisionOverride)
 {
     return new Revision(logItem, revisionOverride, issues);
 }