コード例 #1
0
        public void Should_Compare_IssueCAtegories()
        {
            IssueCategory issueCategory          = redmineManager.GetObject <IssueCategory>(ISSUE_CATEGORY_ID_TO_COMPARE, null);
            IssueCategory issueCategoryToCompare = redmineManager.GetObject <IssueCategory>(ISSUE_CATEGORY_ID_TO_COMPARE, null);

            Assert.IsTrue(issueCategory.Equals(issueCategoryToCompare));
        }
コード例 #2
0
        public void Export(string reportPath)
        {
            var writer = new StreamWriter(reportPath);

            writer.WriteLine("Issue,Message,Area,Path");

            for (IssueCategory category = 0; category < IssueCategory.NumCategories; category++)
            {
                var issues = GetIssues(category);

                foreach (var issue in issues)
                {
                    var path = issue.relativePath;
                    if (category != IssueCategory.ProjectSettings)
                    {
                        path += ":" + issue.line;
                    }
                    writer.WriteLine(
                        issue.descriptor.description + "," +
                        issue.description + "," +
                        issue.descriptor.area + "," +
                        path
                        );
                }
            }

            writer.Flush();
            writer.Close();
        }
コード例 #3
0
        public IActionResult CreateIssue([FromBody] IssueForCreateDto model)
        {
            var issueEntity = new Issue
            {
                Issues      = model.Issues,
                Latitude    = model.latitude,
                Longitude   = model.longitude,
                Location    = model.Location,
                Status      = "pending",
                Priority    = model.Priority,
                ImageUrl    = model.ImageUrl,
                DateCreated = DateTime.Now,
                IsDeleted   = false,
            };
            var result = context.Issues.Add(issueEntity);

            /*iterating through the list of subcategory Id we get from frontend.
             * For eg. potholes,oneway, donotenter
             * we get subCategoryId=[10,11,2]
             */
            foreach (var id in model.SubCategoryId)
            {
                //Creating new instance of intermediate table.
                var issueSubCategory = new IssueSubCategory();

                // Retrieving subCategory object based on subCategory Id.
                var subCategory = subCategoryService.GetById(id);

                //Mapping the SubCategory to Issue.
                issueSubCategory.Issue       = issueEntity;
                issueSubCategory.SubCategory = subCategory;

                context.IssueSubCategories.Add(issueSubCategory);
            }

            //retrieving list of unique Category for the given subCategory Ids.
            var categories = issueHelperFunction.GetCategoryFromSubCategory(model.SubCategoryId);

            //iterating through unique Category.
            foreach (var category in categories.GroupBy(x => x.Id).Select(y => y.First()))
            {
                //creating a new instance of intermediate table.
                var issueCategory = new IssueCategory();

                //Mapping Category to Issue.
                issueCategory.Category = category;
                issueCategory.Issue    = issueEntity;

                context.IssueCategories.Add(issueCategory);
            }
            try
            {
                context.SaveChanges();
                return(Ok(new DtoOutput <IssueDto>(null, "Issue Created Successfully", 0)));
            }
            catch (Exception ex)
            {
                return(BadRequest(new DtoOutput <IssueForCreateDto>(model, "Unable to create issue.", ErrorCode.ISSUE_CREATE_FAILED)));
            }
        }
コード例 #4
0
        public void RedmineIssueCAtegory_ShouldDeleteIssueCategory()
        {
            var issueCategoryId = "12";

            try
            {
                redmineManager.DeleteObject <IssueCategory>(issueCategoryId, null);
            }
            catch (RedmineException)
            {
                Assert.Fail("Issue category could not be deleted.");
                return;
            }

            try
            {
                IssueCategory issueCategory = redmineManager.GetObject <IssueCategory>(issueCategoryId, null);
            }
            catch (RedmineException exc)
            {
                StringAssert.Contains(exc.Message, "Not Found");
                return;
            }
            Assert.Fail("Test failed");
        }
コード例 #5
0
        // 노드 이동
        private void _MoveNode(IssueCategory entity, int position)
        {
            var sibling = (from s in _context.IssueCategory
                           where s.Parent == entity.Parent
                           select s);
            var oldpos = entity.Position;

            foreach (var item in (from s in sibling
                                  where s.Position >= position
                                  orderby s.Position
                                  ascending
                                  select s))
            {
                item.Position++;
                _context.Update(item);
            }
            entity.Position = position;
            _context.Update(entity);
            foreach (var item in (from s in sibling
                                  where s.Position > oldpos
                                  orderby s.Position
                                  ascending
                                  select s))
            {
                item.Position--;
                _context.Update(item);
            }
            _context.SaveChanges();
        }
コード例 #6
0
        private Embed GenerateIssueEmbed(Issue issue, IssueCategory category, GuildOptions options, bool inline)
        {
            category ??= issue.Category ?? dataStore.Categories.Single(c => c.Id == issue.CategoryId);

            var embed = new EmbedBuilder()
                        .WithTitle($"{category?.EmojiIcon} `{issue.Number}` {issue.Title}")
                        .WithDescription(issue.Description)
                        .WithTimestamp(issue.LastUpdatedTimestamp)
                        .WithColor(Strings.StatusColors[issue.Status])
                        .WithImageUrl(issue.ImageUrl)
                        .WithThumbnailUrl(issue.ThumbnailUrl)
                        .WithFields(
                new EmbedFieldBuilder
            {
                Name     = "Status",
                Value    = $"{Strings.StatusEmojis[issue.Status]} {issue.Status}",
                IsInline = true
            },
                new EmbedFieldBuilder
            {
                Name     = "Priority",
                Value    = $"{Strings.PriorityEmojis[issue.Priority]} {issue.Priority}",
                IsInline = true
            },
                new EmbedFieldBuilder
            {
                Name     = "Author",
                Value    = mainInstance.Client.GetUser(issue.Author).ToString(),
                IsInline = true
            },
                new EmbedFieldBuilder
            {
                Name     = $"Jump to {(inline ? "Issue Log" : "Message")}",
                Value    = $"[Click Here](https://canary.discordapp.com/channels/{issue.GuildId}/{(inline ? options.LoggingChannelId : issue.ChannelId)}/{(inline ? issue.LogMessageId : issue.MessageId)})",
                IsInline = true
            }
                )
                        .WithFooter($"Category: {issue.Category.Name} • Last Updated");

            if (issue.Assignee.HasValue)
            {
                IUser assignee            = mainInstance.Client.GetUser(issue.Assignee.Value);
                EmbedAuthorBuilder author = new EmbedAuthorBuilder
                {
                    Name    = $"{assignee.Username}#{assignee.Discriminator}",
                    IconUrl = assignee.GetAvatarUrl() ?? assignee.GetDefaultAvatarUrl()
                };

                embed.Author = author;
            }
            else
            {
                embed.Author = new EmbedAuthorBuilder
                {
                    Name = "Nobody assigned"
                };
            }

            return(embed.Build());
        }
コード例 #7
0
        public void RedmineIssueCategory_ShouldGetIssueCategoryById()
        {
            IssueCategory issueCategory = redmineManager.GetObject <IssueCategory>(issueCategoryIdToGet, null);

            Assert.IsNotNull(issueCategory);
            Assert.IsTrue(issueCategory.AsignTo.Name.Contains(issueCategoryAsigneeNameToGet));
        }
コード例 #8
0
        private void _ArrangePosition(IssueCategory node, int pos, int depth)
        {
            if (node != null)
            {
                node.Position = pos;
                node.Depth    = depth;
                if (_GetChilds(node).Count() == 0)
                {
                    node.IsLeafNode = true;
                }
                _context.Update(node);
            }
            IQueryable <IssueCategory> query = (from s in _context.IssueCategory
                                                where s.Parent == node && s.IsDelete == false
                                                orderby s.Position ascending
                                                select s);

            int childIndex = 0;

            foreach (var item in query)
            {
                _ArrangePosition(item, childIndex + 1, depth + 1);
                childIndex++;
            }
            _context.SaveChanges();
        }
コード例 #9
0
 public ProjectIssue(ProblemDescriptor descriptor,
                     string description,
                     IssueCategory category,
                     string path,
                     string[] customProperties)
     : this(descriptor, description, category, new Location(path), customProperties)
 {
 }
コード例 #10
0
 public ProjectIssue(ProblemDescriptor descriptor,
                     string description,
                     IssueCategory category,
                     string[] customProperties)
     : this(descriptor, description, category)
 {
     this.customProperties = customProperties;
 }
コード例 #11
0
 public ProjectIssue(ProblemDescriptor descriptor,
                     string description,
                     IssueCategory category,
                     CallTreeNode dependenciesNode)
     : this(descriptor, description, category)
 {
     dependencies = dependenciesNode;
 }
コード例 #12
0
        public int GetNumIssues(IssueCategory category)
        {
            mutex.WaitOne();
            var result = m_Issues.Count(i => i.category == category);

            mutex.ReleaseMutex();
            return(result);
        }
コード例 #13
0
ファイル: Issue.cs プロジェクト: vmrocha/wpfinspector
 public Issue(string name, string description, IssueSeverity severity, IssueCategory category, TreeItem treeItem)
 {
     Severity    = severity;
     Description = description;
     TreeItem    = treeItem;
     Category    = category;
     Name        = name;
 }
コード例 #14
0
        public ProjectIssue[] GetIssues(IssueCategory category)
        {
            mutex.WaitOne();
            var result = m_Issues.Where(i => i.category == category).ToArray();

            mutex.ReleaseMutex();
            return(result);
        }
コード例 #15
0
        public void RedmineIssueCategory_ShouldGetIssueCategoryById()
        {
            var issueCategoryId = "12";

            IssueCategory issueCategory = redmineManager.GetObject <IssueCategory>(issueCategoryId, null);

            Assert.IsNotNull(issueCategory);
            Assert.IsTrue(issueCategory.AsignTo.Name.Contains("Alina"));
        }
コード例 #16
0
        void SelectView(IssueCategory category)
        {
            if (activeView.desc.category == category)
            {
                return;
            }

            OnViewChanged(GetViewIndex(category));
        }
コード例 #17
0
        public void RedmineIssueCategories_ShouldCreateIssueCategory()
        {
            IssueCategory issueCategory = new IssueCategory();
            issueCategory.Name = "Feature";
            issueCategory.AsignTo = new IdentifiableName { Id = 8 };

            IssueCategory savedIssueCategory = redmineManager.CreateObject<IssueCategory>(issueCategory, "9");

            Assert.AreEqual(issueCategory.Name, savedIssueCategory.Name);
        }
コード例 #18
0
        public void RedmineIssueCategories_ShouldCreateIssueCategory()
        {
            IssueCategory issueCategory = new IssueCategory();
            issueCategory.Name = newIssueCategoryName;
            issueCategory.AsignTo = new IdentifiableName { Id = newIssueCategoryAsigneeId };

            IssueCategory savedIssueCategory = redmineManager.CreateObject<IssueCategory>(issueCategory, projectId);

            Assert.AreEqual(issueCategory.Name, savedIssueCategory.Name);
        }
コード例 #19
0
        public IssueCategory RenameNode(object id, string title)
        {
            IssueCategory node = null;

            node      = _context.IssueCategory.Find(id);
            node.Name = title;
            _context.Update(node);
            _context.SaveChanges();
            return(node);
        }
コード例 #20
0
 public ProjectIssue(ProblemDescriptor descriptor,
                     string description,
                     IssueCategory category,
                     CallTreeNode dependenciesNode)
 {
     this.descriptor  = descriptor;
     this.description = description;
     this.category    = category;
     dependencies     = dependenciesNode;
 }
コード例 #21
0
        public void RedmineIssueCategory_ShouldCompare()
        {
            IssueCategory issueCategory          = redmineManager.GetObject <IssueCategory>(issueCategoryIdToCompare, null);
            IssueCategory issueCategoryToCompare = redmineManager.GetObject <IssueCategory>(issueCategoryIdToCompare, null);

            Assert.IsTrue(issueCategory.Equals(issueCategoryToCompare));

            issueCategoryToCompare.Name = issueCategoryNameToCompare;
            Assert.IsFalse(issueCategory.Equals(issueCategoryToCompare));
        }
コード例 #22
0
        public async Task <bool> CreateCategory([FromBody] IssueCategory cat)
        {
            var result = await _categories.Add(cat);

            if (result.Id > 0)
            {
                return(true);
            }
            return(false);
        }
コード例 #23
0
 /// <summary>
 /// ProjectIssue constructor
 /// </summary>
 /// <param name="descriptor"> descriptor </param>
 /// <param name="description"> Issue-specific description of the problem </param>
 /// <param name="category"> Issue category </param>
 /// <param name="location"> Issue address </param>
 public ProjectIssue(ProblemDescriptor descriptor,
                     string description,
                     IssueCategory category,
                     Location location = null)
 {
     this.descriptor  = descriptor;
     this.description = description;
     this.category    = category;
     this.location    = location;
 }
コード例 #24
0
        public async Task HandleMessageReaction(ISocketMessageChannel channel, SocketReaction reaction, IUserMessage message)
        {
            if ((reaction.User.GetValueOrDefault()?.IsBot ?? false) || !(channel is IGuildChannel gchannel))
            {
                return;
            }
            ulong gid = gchannel.GuildId;
            ulong cid = channel.Id;
            ulong mid = message.Id;

            var options = await dataStore.GuildOptions.Include(g => g.AllowedChannels).SingleOrDefaultAsync(x => x.Id == gchannel.GuildId);

            if (options?.AllowedChannels is null || !options.AllowedChannels.Any(x => x.ChannelId == channel.Id))
            {
                return;
            }
            var user = reaction.User.Value as IGuildUser;

            (bool voter, bool mod) = GetVoterStatus(user, options);
            if (!voter)
            {
                return;
            }

            IssueCategory category = GetCategory(reaction, gid);

            if (category is null)
            {
                return;
            }

            if (await((IQueryable <Proposal>)dataStore.Proposals).AnyAsync(p => p.GuildId == gid && p.ChannelId == cid && p.MessageId == mid && p.Status == ProposalStatus.Approved))
            {
                return;
            }

            var proposal = dataStore.Proposals.FirstOrDefault(p => p.GuildId == gid && p.ChannelId == cid && p.MessageId == mid && p.CategoryId == category.Id);

            if (proposal is null)
            {
                proposal = new Proposal
                {
                    GuildId    = gid,
                    ChannelId  = cid,
                    MessageId  = mid,
                    CategoryId = category.Id,
                    Status     = ProposalStatus.Proposed
                };
                dataStore.Add(proposal);
            }

            await UpdateProposals(channel, message, mod, proposal, options);

            await dataStore.SaveChangesAsync();
        }
コード例 #25
0
        IssueTable CreateIssueTable(IssueCategory issueCategory)
        {
            var columnsList = new List <MultiColumnHeaderState.Column>();
            var numColumns  = (int)IssueTable.Column.Count;

            for (int i = 0; i < numColumns; i++)
            {
                bool add      = true;
                int  width    = 80;
                int  minWidth = 80;
                switch ((IssueTable.Column)i)
                {
                case IssueTable.Column.Description:
                    width    = 300;
                    minWidth = 100;
                    break;

                // case IssueTable.Column.Resolved :
                //     width = 80;
                //     minWidth = 80;
                //     break;
                case IssueTable.Column.Area:
                    width    = 50;
                    minWidth = 50;
                    break;

                case IssueTable.Column.Location:
                    if (issueCategory == IssueCategory.ProjectSettings)
                    {
                        add = false;
                    }
                    width    = 900;
                    minWidth = 400;
                    break;
                }

                if (add)
                {
                    columnsList.Add(new MultiColumnHeaderState.Column
                    {
                        headerContent = Styles.ColumnHeaders[i],
                        width         = width,
                        minWidth      = minWidth,
                        autoResize    = true
                    });
                }
            }

            var issues = m_ProjectReport.GetIssues(issueCategory);

            var filteredList = issues.Where(x => ShouldDisplay(x));

            return(new IssueTable(new TreeViewState(),
                                  new MultiColumnHeader(new MultiColumnHeaderState(columnsList.ToArray())), filteredList.ToArray(), issueCategory == IssueCategory.ApiCalls));
        }
コード例 #26
0
 // 노드 데이터 삭제
 private void _RemoveNode(IssueCategory entity)
 {
     entity.IsDelete = true;
     if (entity.Childs != null)
     {
         foreach (var child in entity.Childs)
         {
             _RemoveNode(child);
         }
     }
 }
コード例 #27
0
        /**
         * 상품 상품카테고리 위치이동
         * @param id 카테고리ID
         * @param postion 이동위치
         */
        public void MoveNode(object id, object position)
        {
            IssueCategory data = _context.IssueCategory.Find(id);

            if (data == null)
            {
                throw new Exception("대상카테고리가 없습니다.");
            }

            //repoIssueCategory.MoveNode(data, (int)position);
        }
コード例 #28
0
        public void Should_Get_IssueCategory_By_Id()
        {
            IssueCategory issueCategory = redmineManager.GetObject <IssueCategory>(ISSUE_CATEGORY_ID_TO_GET, null);

            Assert.IsNotNull(issueCategory, "Get issue category returned null.");
            Assert.AreEqual(issueCategory.Name, ISSUE_CATEGORY_NAME_TO_GET, "Issue category name is invalid.");
            Assert.IsNotNull(issueCategory.AsignTo, "Issue category asignee is null.");
            Assert.IsTrue(issueCategory.AsignTo.Name.Contains(ISSUE_CATEGORY_ASIGNEE_NAME_TO_GET), "Asignee name is invalid.");
            Assert.IsNotNull(issueCategory.Project, "Issue category project is null.");
            Assert.IsTrue(issueCategory.Project.Name.Equals(ISSUE_CATEGORY_PROJECT_NAME_TO_GET), "Project name is invalid.");
        }
コード例 #29
0
        public void Should_Create_IssueCategory()
        {
            IssueCategory issueCategory = new IssueCategory();
            issueCategory.Name = NEW_ISSUE_CATEGORY_NAME;
            issueCategory.AsignTo = new IdentifiableName { Id = NEW_ISSUE_CATEGORY_ASIGNEE_ID };

            IssueCategory savedIssueCategory = redmineManager.CreateObject<IssueCategory>(issueCategory, PROJECT_ID);

            Assert.IsNotNull(savedIssueCategory, "Create issue category returned null.");
            Assert.AreEqual(savedIssueCategory.Name, NEW_ISSUE_CATEGORY_NAME, "Saved issue category name is invalid.");
        }
コード例 #30
0
        int GetViewIndex(IssueCategory category)
        {
            for (int i = 0; i < m_Views.Length; i++)
            {
                if (m_Views[i].desc.category == category)
                {
                    return(i);
                }
            }

            return(0);
        }
コード例 #31
0
 /// <summary>
 /// ProjectIssue constructor
 /// </summary>
 /// <param name="descriptor"> descriptor </param>
 /// <param name="description"> human-readable description </param>
 /// <param name="category"> Issue category </param>
 /// <param name="location"> Issue address: path and, if applicable, line number </param>
 /// <param name="customProperties"> Issue-specific properties </param>
 public ProjectIssue(ProblemDescriptor descriptor,
                     string description,
                     IssueCategory category,
                     Location location         = null,
                     string[] customProperties = null)
 {
     this.descriptor       = descriptor;
     this.description      = description;
     this.category         = category;
     this.location         = location;
     this.customProperties = customProperties;
 }
コード例 #32
0
        private IEnumerable <IssueCategory> _GetChilds(IssueCategory entity, bool withDeleted = false)
        {
            var query = from p in _context.IssueCategory
                        where p.Parent == entity
                        select p;

            if (withDeleted == false)
            {
                return(query.Where(x => x.IsDelete == false));
            }
            return(query);
        }
コード例 #33
0
        public void RedmineIssueCategories_ShouldCreateIssueCategory()
        {
            IssueCategory issueCategory = new IssueCategory();

            issueCategory.Name    = newIssueCategoryName;
            issueCategory.AsignTo = new IdentifiableName {
                Id = newIssueCategoryAsigneeId
            };

            IssueCategory savedIssueCategory = redmineManager.CreateObject <IssueCategory>(issueCategory, projectId);

            Assert.AreEqual(issueCategory.Name, savedIssueCategory.Name);
        }
コード例 #34
0
        public void Should_Create_IssueCategory()
        {
            var issueCategory = new IssueCategory
            {
                Name = NEW_ISSUE_CATEGORY_NAME,
                AsignTo = new IdentifiableName {Id = NEW_ISSUE_CATEGORY_ASIGNEE_ID}
            };

            var savedIssueCategory = fixture.RedmineManager.CreateObject(issueCategory, PROJECT_ID);

            CREATED_ISSUE_CATEGORY_ID = savedIssueCategory.Id.ToString();

            Assert.NotNull(savedIssueCategory);
            Assert.True(savedIssueCategory.Name.Equals(NEW_ISSUE_CATEGORY_NAME), "Saved issue category name is invalid.");
        }
コード例 #35
0
        public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
        {
            if (dictionary != null)
            {
                var issueCategory = new IssueCategory();

                issueCategory.Id = dictionary.GetValue<int>(RedmineKeys.ID);
                issueCategory.Project = dictionary.GetValueAsIdentifiableName(RedmineKeys.PROJECT);
                issueCategory.AsignTo = dictionary.GetValueAsIdentifiableName(RedmineKeys.ASSIGNED_TO);
                issueCategory.Name = dictionary.GetValue<string>(RedmineKeys.NAME);

                return issueCategory;
            }

            return null;
        }
コード例 #36
0
        public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
        {
            if (dictionary != null)
            {
                var issueCategory = new IssueCategory();

                issueCategory.Id = dictionary.GetValue<int>("id");
                issueCategory.Project = dictionary.GetValueAsIdentifiableName("project");
                issueCategory.AsignTo = dictionary.GetValueAsIdentifiableName("assigned_to");
                issueCategory.Name = dictionary.GetValue<string>("name");

                return issueCategory;
            }

            return null;
        }
コード例 #37
0
ファイル: Issue.cs プロジェクト: Kuzq/gitter
        internal Issue(RedmineServiceContext context, XmlNode node)
            : base(context, node)
        {
            _parent			= RedmineUtility.LoadObject(node[ParentProperty.XmlNodeName],				context.Issues.Lookup);

            _project		= RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName],			context.Projects.Lookup);
            _tracker		= RedmineUtility.LoadNamedObject(node[TrackerProperty.XmlNodeName],			context.Trackers.Lookup);
            _status			= RedmineUtility.LoadNamedObject(node[StatusProperty.XmlNodeName],			context.IssueStatuses.Lookup);
            _priority		= RedmineUtility.LoadNamedObject(node[PriorityProperty.XmlNodeName],		context.IssuePriorities.Lookup);

            _author			= RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName],			context.Users.Lookup);
            _assignedTo		= RedmineUtility.LoadNamedObject(node[AssignedToProperty.XmlNodeName],		context.Users.Lookup);

            _category		= RedmineUtility.LoadNamedObject(node[CategoryProperty.XmlNodeName],		context.IssueCategories.Lookup);
            _fixedVersion	= RedmineUtility.LoadNamedObject(node[FixedVersionProperty.XmlNodeName],	context.ProjectVersions.Lookup);

            _subject		= RedmineUtility.LoadString(node[SubjectProperty.XmlNodeName]);
            _description	= RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]);

            _startDate		= RedmineUtility.LoadDate(node[StartDateProperty.XmlNodeName]);
            _dueDate		= RedmineUtility.LoadDate(node[DueDateProperty.XmlNodeName]);

            _doneRatio		= RedmineUtility.LoadDouble(node[DoneRatioProperty.XmlNodeName]);
            _estimatedHours	= RedmineUtility.LoadDouble(node[EstimatedHoursProperty.XmlNodeName]);

            _customFields	= RedmineUtility.LoadCustomFields(node[CustomFieldsProperty.XmlNodeName],	context.CustomFields.Lookup);

            _createdOn		= RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]);
            _updatedOn		= RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]);
        }