Beispiel #1
0
        private async Task PerformServerValidationsAsync(ProjectViewModel project,
                                                         IssueViewModel newIssue, IssueListModel oldIssue = null)
        {
            if (project.Issues.Any(i => i.Title == newIssue.Title && i.Id != newIssue.Id))
            {
                ModelState.AddModelError(nameof(newIssue.Title),
                                         "Project already has an issue with this Title");
            }

            if (oldIssue == null && newIssue.DueDate <= DateTime.Today ||
                oldIssue?.DueDate != newIssue.DueDate && newIssue.DueDate <= DateTime.Today)
            {
                ModelState.AddModelError(nameof(newIssue.DueDate),
                                         "Date must be in the future");
            }

            if (project.Priorities.All(p => p != newIssue.Priority))
            {
                ModelState.AddModelError(nameof(newIssue.Priority),
                                         "Priority is not valid for this Project");
            }

            if (!await labels.LabelsExistInProjectAsync(project.Id.Value, newIssue.SelectedLabelIds))
            {
                ModelState.AddModelError(nameof(newIssue.SelectedLabelIds),
                                         "Not all Labels are valid for this Project");
            }

            if (oldIssue != null &&
                !GetAvailableStatuses(oldIssue.Status).Contains(newIssue.Status))
            {
                ModelState.AddModelError(nameof(newIssue.Status),
                                         "Status transition is not valid");
            }
        }
Beispiel #2
0
        public ActionResult List()
        {
            List <Issue> issues = new List <Issue>();

            List <string>[] values;
            MySqlTableModel issueTable = SqlTables.Issues;

            values = MySqlCrud.SelectAllRows(SqlConnections.IssueWebsite, issueTable.Table, issueTable.Collumns);

            /*
             * idIssues DEFAULT(int)
             * project name
             * severity string
             * datediscovered string  XX/XX/XXXX
             * time discovered string  XX:XX:XX
             * projectedmanhours float
             * projectedcost float
             * shortdescription string
             * location string
             * popularity int
             * description string
             */

            int r = 0;

            foreach (var i in values[0])
            {
                int issueId;
                Int32.TryParse(values[0][r], out issueId);

                string project        = values[1][r]; //100 MaxChars
                string severity       = values[2][r]; //45 MaxChars
                string datediscovered = values[3][r]; //45 MaxChars
                string timediscovered = values[4][r]; //45 MaxChars

                int pmhTemp;
                Int32.TryParse(values[5][r], out pmhTemp);
                float projectedmanhours = (float)pmhTemp;

                int pcTemp;
                Int32.TryParse(values[6][r], out pcTemp);
                float projectedcost = (float)pcTemp;

                string shortdescription = values[7][r]; //100 MaxChars
                string location         = values[8][r]; //45 MaxChars

                int popularity;
                Int32.TryParse(values[9][r], out popularity);

                string description = values[10][r]; //300 MaxChars


                Issue ish = new Issue()
                {
                    Project           = project,
                    Severity          = severity,
                    DateDiscovered    = datediscovered,
                    TimeDiscovered    = timediscovered,
                    ProjectedManHours = projectedmanhours,
                    ProjectedCost     = projectedcost,
                    ShortDescription  = shortdescription,
                    Location          = location,
                    Popularity        = popularity,
                    Description       = description
                };

                issues.Add(ish);
                r++;
            }


            IssueListModel IssueListModel = new IssueListModel()
            {
                Issues = issues
            };

            return(View(IssueListModel));
        }