private void AddAreaAndCheckEnabledOnBacklog(string teamName, bool enableForTeam) { // arrange ProjectDetail projectDetail = TestConstants.TfsTeamProjectDetail; List <ProjectArea> initialList; List <ProjectArea> finalList; string newAreaName = null; IAreaManager manager = AreaManagerFactory.GetManager(projectDetail); ITeamManager teamManager = TeamManagerFactory.GetManager(projectDetail); initialList = manager.ListAreas(); newAreaName = "Area " + GetRandomGuid(); // act manager.AddNewArea(newAreaName, new List <ITfsTeam> { enableForTeam?teamManager.GetTfsTeam(teamName) : null }); // assert finalList = manager.ListAreas(); int expected = initialList.Count + 1; int actual = finalList.Count; Assert.AreEqual(expected, actual); ProjectArea addedItem = (from o in finalList where o.Name == newAreaName select o).FirstOrDefault(); Assert.IsNotNull(addedItem); Assert.AreEqual(enableForTeam, teamManager.GetTfsTeam(teamName).IsAreaPathEnabled(newAreaName)); }
private List <ProjectArea> LoadAreas(XmlNode parentNode, ProjectArea parentItem = null) { var result = new List <ProjectArea>(); foreach (XmlNode item in parentNode.ChildNodes) { if (item.Name == "Children") { result = this.LoadAreas(item, parentItem); } else { string nodeId = this.GetNodeID(item.OuterXml); NodeInfo nodeInfo = this.commonStructureService.GetNode(nodeId); var pi = new ProjectArea { Name = nodeInfo.Name, ParentUri = nodeInfo.ParentUri, Path = nodeInfo.Path, ProjectUri = nodeInfo.ProjectUri, StructureType = nodeInfo.StructureType, Uri = nodeInfo.Uri, FullPath = this.GetFullPath(parentItem, nodeInfo.Name), ParentProjectArea = parentItem }; pi.Children = this.LoadAreas(item, pi); result.Add(pi); } } return(result); }
public ProjectArea Update(ProjectArea obj) { ProjectAreaBO projectareaBO = new ProjectAreaBO(obj); projectareaDao.Update(projectareaBO); return(obj); }
public void DeleteArea(ProjectArea projectArea, ProjectArea reAssignArea = null) { if (projectArea != null) { ProjectArea newProjectArea = reAssignArea ?? projectArea.ParentProjectArea; this.commonStructureService.DeleteBranches(new[] { projectArea.Uri }, newProjectArea.Uri); } else { throw new ArgumentNullException("projectArea", "A valid Project Area is required to perform a delete"); } }
public void AddArea_passingInProjectDetailsWithThreeLevelsOfAreas_AreaCountStaysTheSameButTheChildOfChildAreaCountOfTheFirstAreaGoesUpByOne() { // arrange ProjectDetail projectDetail = TestConstants.TfsTeamProjectDetail; List <ProjectArea> initialList; ProjectArea initialFirstArea; List <ProjectArea> finalList; ProjectArea finalFirstArea; using (IAreaManager manager = AreaManagerFactory.GetManager(projectDetail)) { initialList = manager.ListAreas(); if (initialList.Count == 0) { Assert.Fail("No Areas found yet to add a duplication of"); } ProjectArea[] listOfAreas = initialList.Where(o => o.Children.Count > 0).ToArray(); if (listOfAreas.Length == 0) { Assert.Fail("No Areas found in the first interation yet to add a duplication of"); } listOfAreas = listOfAreas.Where(o => o.Children.Count > 0).ToArray(); if (listOfAreas.Length == 0) { Assert.Fail("The first interation has no children yet to add a duplication of"); } ProjectArea firstArea = listOfAreas[0]; initialFirstArea = firstArea.Children[0]; string newAreaName = firstArea.Name + "\\" + initialFirstArea.Name + "\\Area " + GetRandomGuid(); // act manager.AddNewArea(newAreaName); // assert finalList = manager.ListAreas(); listOfAreas = finalList.Where(o => o.Children.Count > 0).ToArray(); listOfAreas = listOfAreas.Where(o => o.Children.Count > 0).ToArray(); finalFirstArea = listOfAreas[0].Children[0]; } int expectedRoot = initialList.Count; int actualRoot = finalList.Count; // check root level Area count Assert.AreEqual(expectedRoot, actualRoot); int expectedChild = initialFirstArea.Children.Count + 1; int actualChild = finalFirstArea.Children.Count; // check child level Area count Assert.AreEqual(expectedChild, actualChild); }
public ProjectArea FindProjectArea(string fullAreaPath) { ProjectArea projectArea = null; foreach (ProjectArea pa in this.FlattenAreas(this.ListAreas())) { if (string.Compare(pa.FullPath, fullAreaPath, true) == 0) { projectArea = pa; break; } } return(projectArea); }
private string GetFullPath(ProjectArea parentItem, string name) { string result = name; while (parentItem != null) { result = parentItem.Name + "\\" + result; parentItem = parentItem.ParentProjectArea; } if (result.ToLower().StartsWith("area\\")) { result = result.Remove(0, result.IndexOf('\\') + 1); } return(this.FormatAreaName(result)); }
public async Task <ApiResponse> Handle(AddEditProjectAreaCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { var existRecord = await _dbContext.ProjectArea.FirstOrDefaultAsync(x => x.IsDeleted == false && x.ProjectId == request.ProjectId); if (existRecord == null) { ProjectArea obj = new ProjectArea(); obj.ProjectId = request.ProjectId; obj.AreaId = request.AreaId; obj.IsDeleted = false; obj.CreatedById = request.CreatedById; obj.CreatedDate = DateTime.UtcNow; await _dbContext.ProjectArea.AddAsync(obj); await _dbContext.SaveChangesAsync(); } else { existRecord.ProjectId = request.ProjectId; existRecord.AreaId = request.AreaId; existRecord.IsDeleted = false; existRecord.ModifiedById = request.ModifiedById; existRecord.ModifiedDate = DateTime.UtcNow; await _dbContext.SaveChangesAsync(); } response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } return(response); }
public void DeleteAreaUsingAreaPath(string areaPath, string reAssignAreaPath = null) { if (this.CheckIfPathAlreadyExists(areaPath)) { string formattedAreaPath = this.FormatAreaName(areaPath); ProjectArea projectArea = this.FindProjectArea(formattedAreaPath); ProjectArea newProjectArea = projectArea.ParentProjectArea; if (!string.IsNullOrEmpty(reAssignAreaPath)) { newProjectArea = this.FindProjectArea(reAssignAreaPath); if (newProjectArea == null) { throw new ArgumentOutOfRangeException("No path exists for " + reAssignAreaPath); } } this.DeleteArea(projectArea, newProjectArea); } else { throw new Exception("The iteration path " + areaPath + " doesn't exists in the project " + this.projectDetail.ProjectName); } }
public static void Load(SEGRepository segR) { Guid iId = ImageHelper.SaveImage(segR, @"Media\project_01.png"); List<Guid> assetImg = new List<Guid>(); for (int i = 1; i <= 135;i++ ) { Guid gi = ImageHelper.SaveImage(segR, @"C:\Develop\SEG\Multimedia\Taschibra\Final\"+i.ToString()+".jpg"); assetImg.Add(gi); } Guid pId; Guid uId; using (SEGContext seg = segR.GetContext()) { Project p = new Project(); p.Name = "Taschibra"; p.ImageId = iId; p.Active = true; seg.Projects.Add(p); User u = new User(); u.Active = true; u.FullName = "Isabela Paredes"; u.IsAdmin = true; u.IsApprover = true; u.IsExecutor = true; u.IsVerifier = true; u.Name = "isaparedes"; u.Password = "******"; seg.Users.Add(u); seg.SaveChanges(); pId = p.Id; uId = u.Id; } List<string> aNames = new List<string>(); List<Guid> aIds = new List<Guid>(); DiagnosticsType dtGen; DiagnosticsType dtMec; DiagnosticsType dtEle; ItemClass icGen; ItemClass icMec; ItemClass icEle; List<Item> dtGItems; List<Item> dtMItems; using (SEGContext seg = segR.GetContext()) { aNames.Add("1. INJEÇÃO"); aNames.Add("2. MOAGEM"); aNames.Add("3. FERRAMENTARIA"); aNames.Add("4. PERFILADEIRA"); aNames.Add("5. PEÇAS ESPECIAIS"); aNames.Add("6. PINTURA"); aNames.Add("7. PINTURA COLORIDA"); aNames.Add("8. OFICINA"); aNames.Add("9. REFLETOR"); aNames.Add("10. ALMOXARIFADO"); aNames.Add("11. MONTAGEM"); aNames.Add("12. RETRABALHO"); aNames.Add("13. PEÇAS SOLTAS"); aNames.Add("14. MARCENARIA"); aNames.Add("15. RECICLAGEM"); aNames.Add("16. FIGURAS"); dtGen = seg.DiagnosticsTypes.FirstOrDefault(a => a.Name == "General"); dtMec = seg.DiagnosticsTypes.FirstOrDefault(a => a.Name == "Mechanical"); dtEle = seg.DiagnosticsTypes.FirstOrDefault(a => a.Name == "Electrical"); icGen = seg.ItemClasses.FirstOrDefault(a => a.Name == "General"); icMec = seg.ItemClasses.FirstOrDefault(a => a.Name == "Mechanical"); icEle = seg.ItemClasses.FirstOrDefault(a => a.Name == "Electrical"); dtGItems = seg.Items.Where(x => x.ItemClassId == icGen.Id).OrderBy(x => x.Index).ToList(); dtMItems = seg.Items.Where(x => x.ItemClassId == icMec.Id).OrderBy(x => x.Index).ToList(); } using (SEGContext seg = segR.GetContext()) { foreach (string s in aNames) { ProjectArea a = new ProjectArea(); a.ProjectId = pId; a.Name = s; a.ImageId = Guid.Empty; a.Active = true; seg.ProjectAreas.Add(a); seg.SaveChanges(); aIds.Add(a.Id); Diagnostics d = new Diagnostics(); d.AreaId = a.Id; d.AssetId = Guid.Empty; d.DiagnosticsTypeId = dtGen.Id; d.Index = 0; seg.Diagnostics.Add(d); seg.SaveChanges(); foreach (Item i in dtGItems) { DiagnosticsDetail dd = new DiagnosticsDetail(); dd.Comments = ""; dd.DiagnosticsId = d.Id; dd.EntryDate = DateTime.MinValue; dd.ExecutorId = Guid.Empty; dd.ImageId = Guid.Empty; dd.ItemId = i.Id; dd.Status = "_new_"; dd.VerifierId = Guid.Empty; dd.VerifyDate = DateTime.MinValue; seg.DiagnosticsDetails.Add(dd); } seg.SaveChanges(); } } using (SEGContext seg = segR.GetContext()) { StreamReader sr = new StreamReader(@"Data\assets.txt", System.Text.Encoding.GetEncoding(1252), true); int assetidx=0; while (!sr.EndOfStream) { string sline = sr.ReadLine(); char[] delimiters = new char[] { '\t' }; string[] sitems = sline.Split(delimiters); int aidx = Convert.ToInt32(sitems[1]); string sid = sitems[2]; string stag = sitems[3]; string sdesc = sitems[4].Replace("\"", "").Trim(); Asset asset = new Asset(); asset.ProjectAreaId = aIds[aidx - 1]; asset.ExecutorId = uId; asset.VerifierId = Guid.Empty; asset.ApproverId = Guid.Empty; asset.ImageId = assetImg[assetidx]; asset.EntryDate = DateTime.Now; asset.VerifyDate = DateTime.MinValue; asset.ApprovalDate = DateTime.MinValue; seg.Assets.Add(asset); seg.SaveChanges(); AssetInfo aInfo = new AssetInfo(); aInfo.AssetId = asset.Id; aInfo.Key = "ID"; aInfo.Value = sid; seg.AssetInfos.Add(aInfo); aInfo = new AssetInfo(); aInfo.AssetId = asset.Id; aInfo.Key = "TAG"; aInfo.Value = stag; seg.AssetInfos.Add(aInfo); aInfo = new AssetInfo(); aInfo.AssetId = asset.Id; aInfo.Key = "LOCATION"; aInfo.Value = ""; seg.AssetInfos.Add(aInfo); aInfo = new AssetInfo(); aInfo.AssetId = asset.Id; aInfo.Key = "DESCRIPTION"; aInfo.Value = sdesc; seg.AssetInfos.Add(aInfo); // Mechanical Diagnostics Diagnostics d = new Diagnostics(); d.AreaId = Guid.Empty; d.AssetId = asset.Id; d.Index = 0; d.DiagnosticsTypeId = dtMec.Id; seg.Diagnostics.Add(d); seg.SaveChanges(); DiagnosticsImages di = new DiagnosticsImages(); di.DiagnosticID = d.Id; di.ImageId = asset.ImageId; di.Order = 0; seg.DiagnosticsImages.Add(di); seg.SaveChanges(); foreach (Item i in dtMItems) { DiagnosticsDetail dd = new DiagnosticsDetail(); dd.Comments = ""; dd.DiagnosticsId = d.Id; dd.EntryDate = DateTime.MinValue; dd.ExecutorId = Guid.Empty; dd.ImageId = Guid.Empty; dd.ItemId = i.Id; dd.Status = "_new_"; dd.VerifierId = Guid.Empty; dd.VerifyDate = DateTime.MinValue; seg.DiagnosticsDetails.Add(dd); } seg.SaveChanges(); assetidx++; } } }
public void TestCreateWithSingleItemLinkToNewObject() { // Setup _client.Clear().Wait(ScrumClient.TestTimeout); // Create a new project var project = new Project() { Key = "TESTPROJECTKEY", Name = "Test Project", Description = "This is a test project" }; // Create a new ProjectArea var projectArea = new ProjectArea() { Project = project, Description = "Test project area", Name = "Test Project Area" }; _client.ProjectAreas.Add(projectArea); Assert.True(_client.SaveChanges().Wait(ScrumClient.TestTimeout)); }
public int Insert(ProjectArea obj) { ProjectAreaBO projectareaBO = new ProjectAreaBO(obj); return(projectareaDao.Insert(projectareaBO)); }
protected override void Seed(ScrumDb scrumDb) { // Skip rest of seed iff values are already present if ((scrumDb.Priority.Count() >= Priority.All.Count()) && (scrumDb.Users.Count() >= 2) && (scrumDb.Projects.Count() >= 2)) { return; } // Add DbEnum-like values SeedStaticReadOnlyFieldValues <Priority>(scrumDb); SeedStaticReadOnlyFieldValues <Status>(scrumDb); User joeUser = new User { UserName = "******", Email = "*****@*****.**" }; User gailUser = new User { UserName = "******", Email = "*****@*****.**" }; scrumDb.Users.AddOrUpdate(user => user.UserName, joeUser, gailUser); Project infraProject = scrumDb.Projects.Create(); infraProject.Key = "INFRA"; infraProject.Name = "Infrastructure"; infraProject.Description = "Infrastructure tasks for development."; infraProject.Owners.Add(gailUser); scrumDb.Projects.Add(infraProject); infraProject.Areas.Add(new ProjectArea { Name = "Configuration" }); ProjectArea loggingArea = new ProjectArea { Name = "Logging" }; loggingArea.Owners.Add(gailUser); infraProject.Areas.Add(loggingArea); ProjectArea sourceControlArea = new ProjectArea { Name = "Source Control" }; sourceControlArea.Owners.Add(joeUser); infraProject.Areas.Add(sourceControlArea); ProjectVersion version020 = new ProjectVersion { Name = "0.2.0", ReleaseDate = new DateTime(2012, 10, 1), IsReleased = true }; infraProject.Versions.Add(version020); infraProject.Versions.Add(new ProjectVersion { Name = "0.4.0" }); infraProject.Versions.Add(new ProjectVersion { Name = "1.0" }); infraProject.Versions.Add(new ProjectVersion { Name = "Backlog" }); WorkItem item1 = new WorkItem(infraProject, gailUser, Priority.High) { //Number = 1, Title = "Some log entries are logged twice", Created = new DateTime(2013, 1, 12), Status = Status.WorkingOn, TimeEstimate = new TimeSpan(3, 0, 0), Description = "In the ingestion log, some of the log rows are logged twice." }; item1.AssignedTo.Add(gailUser); item1.Subscribers.Add(joeUser); item1.Areas.Add(loggingArea); item1.AffectsVersions.Add(version020); item1.TimeLog.Add(new WorkItemTimeLog { Worker = gailUser, TimeWorked = new TimeSpan(1, 20, 0), Comments = "Initial investigation." }); Project dwProject = scrumDb.Projects.Create(); dwProject.Key = "DW"; dwProject.Name = "Data Warehouse"; dwProject.Description = "Data Warehouse and BI development"; dwProject.Owners.Add(gailUser); scrumDb.Projects.Add(dwProject); dwProject.Areas.Add(new ProjectArea { Name = "Staging" }); dwProject.Areas.Add(new ProjectArea { Name = "Presentation" }); ProjectArea reportingArea = new ProjectArea { Name = "Reporting" }; reportingArea.Owners.Add(joeUser); dwProject.Areas.Add(reportingArea); dwProject.Versions.Add(new ProjectVersion { Name = "0.8.1" }); dwProject.Versions.Add(new ProjectVersion { Name = "1.0" }); dwProject.Versions.Add(new ProjectVersion { Name = "Backlog" }); }