/// <summary> /// Initializes a new instance of the <see cref="FilterSettings"/> class. /// </summary> /// <param name="clientParameters">The ClientParameters.</param> public FilterSettings(ClientParameters clientParameters) { PersonWhereSearch = ArrayQSFilterSetting.CreateInstance().InitFromQueryString("PersonWhereSearch", clientParameters.PersonWhereSearch).SetEnable(true); PersonHowSearch = PersonHowSearchFilterSetting.CreateInstance().InitFromQueryString("PersonHowSearch", clientParameters.PersonHowSearch).SetEnable(true); Search = StringQSFilterSetting.CreateInstance().InitFromQueryString("Search", ""); PersonValidAt = StringQSFilterSetting.CreateInstance().InitFromQueryString("PersonValidAt", ""); PersonType = ArrayQSFilterSetting.CreateInstance().InitFromQueryString("PersonType", clientParameters.PersonType); Veracity = ArrayQSFilterSetting.CreateInstance().InitFromQueryString("PersonCheck", clientParameters.PersonCheck); Uri myUri = new Uri(HttpContext.Current.Request.Url.AbsoluteUri); string PersonAllBProject = HttpUtility.ParseQueryString(myUri.Query).Get("PersonAllBProject"); clientParameters.PersonAllBProject = Convert.ToInt32(PersonAllBProject); BusinessProject = BusinessProjectFilterSetting.CreateInstance().InitFromQS( "PersonBProject", (clientParameters.PersonBProject == "" ? "0" : clientParameters.PersonBProject), "PersonSubBProject ", clientParameters.PersonSubBProject, "PersonAllBProject ", clientParameters.PersonAllBProject); if (clientParameters.PersonAllBProject != 0) { BusinessProject.SetEnable(true); } PersonArea = PersonAreaFilterSetting.CreateInstance().InitFromQueryString("PersonArea", clientParameters.PersonArea == "" ? "0" : clientParameters.PersonArea); PersonOPForma = UniqueIdQSFilterSetting.CreateInstance().InitFromQueryString("PersonOPForma", clientParameters.PersonOPForma); PersonUsers = PersonUsersFilterSetting.CreateInstance() .SetListAccessor(ids => Kesco.Employees.BusinessLogic.Repository.Employees.GetListByIds(ids)) .InitFromQueryString("PersonUsers", clientParameters.PersonUsers); PersonThemes = PersonThemesFilterSetting.CreateInstance() .SetListAccessor(ids => Repository.PersonThemes.GetListByIds(ids)) .InitFromQS("PersonThemes", clientParameters.PersonThemes, "PersonSubThemes", clientParameters.PersonSubThemes); PersonTUnion = StringQSFilterSetting.CreateInstance().InitFromQueryString("PersonTUnion", ""); PersonLink = StringQSFilterSetting.CreateInstance().InitFromQueryString("PersonLink", ""); int personID; if (int.TryParse(PersonLink.GetValue(), out personID)) { var p = Repository.Persons.GetInstance(personID); PersonLinkNickname = p != null ? p.Nickname : "#PersonLink"; } else { PersonLinkNickname = ""; } PersonLinkType = StringQSFilterSetting.CreateInstance().InitFromQueryString("PersonLinkType", ""); PersonForSend = StringQSFilterSetting.CreateInstance().InitFromQueryString("PersonForSend", "0"); PersonAdvSearch = StringQSFilterSetting.CreateInstance().InitFromQueryString("PersonAdvSearch", ""); //PersonSelectTop = PersonSelectTopFilterSetting.CreateInstance().InitFromQueryString("PersonSelectTop", 30); }
/// <summary> /// Преобразование настроек фильтров к параметрам поиска /// </summary> /// <returns>Параметры для хранимой процедуры поиска</returns> public PersonAccessor.SearchParameters ToSearchParameters() { var searchParams = new PersonAccessor.SearchParameters(); if (PersonWhereSearch.Enable) { searchParams.PersonWhereSearch = PersonWhereSearch.GetValue() ?? 0; } if (PersonHowSearch.Enable) { searchParams.PersonHowSearch = PersonHowSearch.GetValue(); } searchParams.Search = Search.Enable ? Search.GetValue() : String.Empty; if (PersonType.Enable) { searchParams.PersonType = PersonType.GetValue(); } if (Veracity.Enable) { searchParams.PersonCheck = Veracity.GetValue(); } if (BusinessProject.Enable) { searchParams.PersonBProject = BusinessProject.GetValue(); searchParams.PersonSubBProject = BusinessProject.SubBProject? 1 : 0; if (BusinessProject.AllBProject) { searchParams.PersonAllBProject = 1; } } if (PersonArea.Enable) { searchParams.PersonArea = (PersonArea == null ? 0 : PersonArea.GetValue()); } if (PersonOPForma.Enable) { searchParams.PersonOPForma = PersonOPForma.GetValue(); } searchParams.PersonUsers = PersonUsers.Enable ? PersonUsers.GetValue() : String.Empty; searchParams.PersonThemes = PersonThemes.Enable ? PersonThemes.GetValue() : String.Empty; if (PersonThemes.Enable) { searchParams.PersonSubThemes = PersonThemes.Subthemes ? 1 : 0; } if (PersonValidAt.GetValue().Length > 0) { searchParams.PersonValidAtTicks = String2Ticks(PersonValidAt.GetValue()); } return(searchParams); }
/// <summary> /// Create Build definition based on template /// </summary> /// <param name="businessProject"></param> /// <param name="buildDefTemplate"></param> private static void CreateBuildDefinition(BusinessProject businessProject, BuildDefTemplate buildDefTemplate) { var buildManager = new BuildManager(businessProject.TeamProjectCollectionUrl, businessProject.TeamProjectName, businessProject.BusinessProjectName); buildManager.CreateBuildDefinition(buildDefTemplate); }
/// <summary> /// Create Team Foundation Version Control repository folders /// </summary> /// <param name="businessProject"></param> /// <param name="tfvcFolder"></param> private static void CreateTfvcRepositoryFolders(BusinessProject businessProject, TfvcFolder tfvcFolder) { var respositoryManager = new RepositoryManager(businessProject.TeamProjectCollectionUrl, businessProject.TeamProjectName, businessProject.BusinessProjectName); respositoryManager.CreateTfvcFolders(tfvcFolder); }
/// <summary> /// Add members to identity /// </summary> /// <param name="businessProject"></param> /// <param name="identity"></param> /// <param name="members"></param> private static void AddTfsTeamMembers(BusinessProject businessProject, TeamFoundationIdentity identity, List <TeamFoundationIdentity> members) { var securityManager = new SecurityManager(businessProject.TeamProjectCollectionUrl); securityManager.AddMembers(identity, members); }
/// <summary> /// Create new Team with Areas, Iterations /// </summary> /// <param name="businessProject"></param> /// <param name="workItemAreaIteration"></param> /// <returns></returns> private static TeamFoundationTeam CreateTeam(BusinessProject businessProject, WorkItemAreaIteration workItemAreaIteration) { var teamManager = new TeamManager(businessProject.TeamProjectCollectionUrl, businessProject.TeamProjectName, businessProject.BusinessProjectName, businessProject.BusinessProjectDescription); teamManager.CreateWorkItemAreaIteration(workItemAreaIteration); return(teamManager.CreateTeam()); }
/// <summary> /// Create new TFS Security Groups for software project roles /// </summary> /// <param name="businessProject"></param> /// <param name="securityGroup"></param> /// <returns></returns> private static List <TeamFoundationIdentity> CreateGroups(BusinessProject businessProject, SecurityGroup securityGroup) { List <TeamFoundationIdentity> securityGroups = new List <TeamFoundationIdentity>(); var groupManager = new GroupManager(businessProject.TeamProjectCollectionUrl, businessProject.TeamProjectName); foreach (var groupName in securityGroup.Identities) { var tfsGroup = groupManager.CreateGroup(groupName); securityGroups.Add(tfsGroup); } return(securityGroups); }
/// <summary> /// Entry point /// </summary> /// <param name="args"></param> static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("TfsSoftwareProjectCreator tool.\n Usage: TfsSoftwareProjectCreator <Excel input file absolute path>\n"); return; } // Read argument string excelFilePath = args[0]; // Read content from Excel sheet var excelContent = ExcelReader.GetExcelContent(excelFilePath, WORKSHEETNAME); // Read structured information from content var businessProject = new BusinessProject(excelContent); var workItemAreaIteration = new WorkItemAreaIteration(excelContent); var securityGroup = new SecurityGroup(excelContent); var tfvcFolders = new TfvcFolder(excelContent); var buildDefTemplate = new BuildDefTemplate(excelContent); //Create new Team with Areas, Iterations var team = CreateTeam(businessProject, workItemAreaIteration); //Create new TFS Groups var tfsGroups = CreateGroups(businessProject, securityGroup); //Add TFS Groups as a member to the TFS Team AddTfsTeamMembers(businessProject, team.Identity, tfsGroups); //Create TFVC repository folders if (tfvcFolders.Folders.Any()) { CreateTfvcRepositoryFolders(businessProject, tfvcFolders); } // NEXT: Create GIT repository and folders // Create Build definition CreateBuildDefinition(businessProject, buildDefTemplate); Console.WriteLine("TfsSoftwareProjectCreator finished. Press Enter to finish..."); Console.ReadLine(); }