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)); }
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(); }
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))); } }
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"); }
// 노드 이동 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(); }
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()); }
public void RedmineIssueCategory_ShouldGetIssueCategoryById() { IssueCategory issueCategory = redmineManager.GetObject <IssueCategory>(issueCategoryIdToGet, null); Assert.IsNotNull(issueCategory); Assert.IsTrue(issueCategory.AsignTo.Name.Contains(issueCategoryAsigneeNameToGet)); }
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(); }
public ProjectIssue(ProblemDescriptor descriptor, string description, IssueCategory category, string path, string[] customProperties) : this(descriptor, description, category, new Location(path), customProperties) { }
public ProjectIssue(ProblemDescriptor descriptor, string description, IssueCategory category, string[] customProperties) : this(descriptor, description, category) { this.customProperties = customProperties; }
public ProjectIssue(ProblemDescriptor descriptor, string description, IssueCategory category, CallTreeNode dependenciesNode) : this(descriptor, description, category) { dependencies = dependenciesNode; }
public int GetNumIssues(IssueCategory category) { mutex.WaitOne(); var result = m_Issues.Count(i => i.category == category); mutex.ReleaseMutex(); return(result); }
public Issue(string name, string description, IssueSeverity severity, IssueCategory category, TreeItem treeItem) { Severity = severity; Description = description; TreeItem = treeItem; Category = category; Name = name; }
public ProjectIssue[] GetIssues(IssueCategory category) { mutex.WaitOne(); var result = m_Issues.Where(i => i.category == category).ToArray(); mutex.ReleaseMutex(); return(result); }
public void RedmineIssueCategory_ShouldGetIssueCategoryById() { var issueCategoryId = "12"; IssueCategory issueCategory = redmineManager.GetObject <IssueCategory>(issueCategoryId, null); Assert.IsNotNull(issueCategory); Assert.IsTrue(issueCategory.AsignTo.Name.Contains("Alina")); }
void SelectView(IssueCategory category) { if (activeView.desc.category == category) { return; } OnViewChanged(GetViewIndex(category)); }
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); }
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); }
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); }
public ProjectIssue(ProblemDescriptor descriptor, string description, IssueCategory category, CallTreeNode dependenciesNode) { this.descriptor = descriptor; this.description = description; this.category = category; dependencies = dependenciesNode; }
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)); }
public async Task <bool> CreateCategory([FromBody] IssueCategory cat) { var result = await _categories.Add(cat); if (result.Id > 0) { return(true); } return(false); }
/// <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; }
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(); }
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)); }
// 노드 데이터 삭제 private void _RemoveNode(IssueCategory entity) { entity.IsDelete = true; if (entity.Childs != null) { foreach (var child in entity.Childs) { _RemoveNode(child); } } }
/** * 상품 상품카테고리 위치이동 * @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); }
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."); }
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."); }
int GetViewIndex(IssueCategory category) { for (int i = 0; i < m_Views.Length; i++) { if (m_Views[i].desc.category == category) { return(i); } } return(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; }
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); }
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); }
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."); }
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; }
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; }
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]); }