Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        public ProjectArea Update(ProjectArea obj)
        {
            ProjectAreaBO projectareaBO = new ProjectAreaBO(obj);

            projectareaDao.Update(projectareaBO);
            return(obj);
        }
Пример #4
0
 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");
     }
 }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #9
0
 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);
     }
 }
Пример #10
0
        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));
        }
Пример #12
0
        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"
            });
        }