public ControlModel() { ValueIndicators = ValueIndicatorsFactory.CreateCollection(); SolutionItem = new SolutionItem(); TextCurrentState = BuildMessages.GetBuildDoneMessage(null, null, null); ControlTemplate stateImage; ImageCurrentState = BuildImages.GetBuildDoneImage(null, null, out stateImage); ImageCurrentStateResult = stateImage; }
public static string GetBuildBeginMajorMessage( SolutionItem solutionItem, BuildInfo buildInfo, BuildMessagesSettings labelsSettings) { var buildAction = buildInfo.BuildAction; var buildScope = buildInfo.BuildScope; if (buildAction == null || buildScope == null) return Resources.UnknownBuildActionOrScope_BuildBeginText; if (buildInfo.BuildStartTime == null) throw new InvalidOperationException(); string timeString; try { timeString = buildInfo.BuildStartTime.Value.ToString(labelsSettings.DateTimeFormat); } catch (FormatException) { timeString = Resources.InvalidTimeStringFormat; } string unitName; switch (buildScope.Value) { case vsBuildScope.vsBuildScopeSolution: unitName = Resources.BuildScopeSolution_UnitName; if (labelsSettings.ShowSolutionName) unitName += string.Format(Resources.BuildScopeSolution_SolutionNameTemplate, solutionItem.Name); break; case vsBuildScope.vsBuildScopeBatch: unitName = Resources.BuildScopeBatch_UnitName; break; case vsBuildScope.vsBuildScopeProject: unitName = Resources.BuildScopeProject_UnitName; if (labelsSettings.ShowProjectName) { var proj = buildInfo.BuildScopeProject; if (proj != null) { unitName += string.Format(Resources.BuildScopeProject_ProjectNameTemplate, proj.Name); } else { unitName = Resources.BuildScopeBatch_UnitName; buildInfo.OverrideBuildProperties(buildScope: vsBuildScope.vsBuildScopeBatch); } } break; default: throw new ArgumentOutOfRangeException(); } string actionName; string beginAtString; switch (buildAction.Value) { case vsBuildAction.vsBuildActionRebuildAll: actionName = Resources.BuildActionRebuildAll; beginAtString = Resources.BuildActionRebuildAll_BeginAtString; break; case vsBuildAction.vsBuildActionBuild: actionName = Resources.BuildActionBuild; beginAtString = Resources.BuildActionBuild_BeginAtString; break; case vsBuildAction.vsBuildActionClean: actionName = Resources.BuildActionClean; beginAtString = Resources.BuildActionClean_BeginAtString; break; case vsBuildAction.vsBuildActionDeploy: return Resources.UnknownBuildActionOrScope_BuildBeginText; default: throw new ArgumentOutOfRangeException(); } string mainString; switch (labelsSettings.MajorMessageFormat) { case BuildMajorMessageFormat.Entire: mainString = string.Format(Resources.BuildBeginStateLabelTemplate_Default, actionName, unitName, beginAtString, timeString); break; case BuildMajorMessageFormat.Unnamed: mainString = string.Format(Resources.BuildBeginStateLabelTemplate_ShortForm, actionName, beginAtString, timeString); break; default: throw new ArgumentOutOfRangeException(); } string resultMainString = string.Format(labelsSettings.BuildBeginMajorMessageStringFormat, mainString); return resultMainString; }
private static void GetBuildDoneActionAndResultStrings( SolutionItem solutionItem, BuildInfo buildInfo, out string actionName, out string resultName) { vsBuildAction? buildAction = buildInfo.BuildAction; if (buildAction == null) throw new InvalidOperationException(); switch (buildAction.Value) { case vsBuildAction.vsBuildActionBuild: actionName = Resources.BuildActionBuild; break; case vsBuildAction.vsBuildActionRebuildAll: actionName = Resources.BuildActionRebuildAll; break; case vsBuildAction.vsBuildActionClean: actionName = Resources.BuildActionClean; break; case vsBuildAction.vsBuildActionDeploy: throw new InvalidOperationException(); default: throw new ArgumentOutOfRangeException(); } bool buildWithoutErrors = buildInfo.BuildedProjects.BuildWithoutErrors; int errorStateProjectsCount = solutionItem.Projects.Count(item => item.State.IsErrorState()); if (buildInfo.BuildIsCancelled) resultName = buildAction.Value == vsBuildAction.vsBuildActionClean ? Resources.BuildActionCancelled_Clean : Resources.BuildActionCancelled; else if (!buildWithoutErrors) resultName = buildAction.Value == vsBuildAction.vsBuildActionClean ? Resources.BuildActionFailed_Clean : Resources.BuildActionFailed; else if (/*buildWithoutErrors &&*/ errorStateProjectsCount == 0) resultName = buildAction.Value == vsBuildAction.vsBuildActionClean ? Resources.BuildActionFinishedSuccessfully_Clean : Resources.BuildActionFinishedSuccessfully; else resultName = buildAction.Value == vsBuildAction.vsBuildActionClean ? Resources.BuildActionFinished_Clean : Resources.BuildActionFinished; }
private static string GetBuildDoneMajorMessage( SolutionItem solutionItem, BuildInfo buildInfo, BuildMessagesSettings labelsSettings) { if (buildInfo == null) return Resources.BuildDoneText_BuildNotStarted; var buildAction = buildInfo.BuildAction; var buildScope = buildInfo.BuildScope; if (buildInfo.BuildFinishTime == null) throw new InvalidOperationException(); string timeString; try { timeString = buildInfo.BuildFinishTime.Value.ToString(labelsSettings.DateTimeFormat); } catch (FormatException) { timeString = Resources.InvalidTimeStringFormat; } if (buildAction == null || buildScope == null) return string.Format(Resources.BuildDoneText_NotSupported_BuildActionOrScopeIsNull_CompletedAtTemplate, timeString); //? WTF??? string unitName; switch (buildScope.Value) { case vsBuildScope.vsBuildScopeSolution: unitName = Resources.BuildScopeSolution_UnitName; if (labelsSettings.ShowSolutionName) unitName += string.Format(Resources.BuildScopeSolution_SolutionNameTemplate, solutionItem.Name); break; case vsBuildScope.vsBuildScopeBatch: unitName = Resources.BuildScopeBatch_UnitName; break; case vsBuildScope.vsBuildScopeProject: unitName = Resources.BuildScopeProject_UnitName; if (labelsSettings.ShowProjectName) { // Skip dependent projects. The last project in the list is the target project. string uniqProjName = buildInfo.BuildedProjects[buildInfo.BuildedProjects.Count - 1].UniqueName; ProjectItem projItem = solutionItem.Projects.FirstOrDefault(item => item.UniqueName == uniqProjName); Debug.Assert(projItem != null); unitName += string.Format(Resources.BuildScopeProject_ProjectNameTemplate, projItem.Name); } break; default: throw new ArgumentOutOfRangeException(); } string actionName; string resultName; GetBuildDoneActionAndResultStrings(solutionItem, buildInfo, out actionName, out resultName); string mainString; switch (labelsSettings.MajorMessageFormat) { case BuildMajorMessageFormat.Entire: mainString = string.Format(Resources.BuildDoneStateLabelTemplate_Default, actionName, unitName, resultName, timeString); break; case BuildMajorMessageFormat.Unnamed: mainString = string.Format(Resources.BuildDoneStateLabelTemplate_ShortForm, actionName, resultName, timeString); break; default: throw new ArgumentOutOfRangeException(); } string resultMainString = string.Format(labelsSettings.BuildDoneMajorMessageStringFormat, mainString); return resultMainString; }
public static string GetBuildDoneMessage( SolutionItem solutionItem, BuildInfo buildInfo, BuildMessagesSettings labelsSettings) { return GetBuildDoneMajorMessage(solutionItem, buildInfo, labelsSettings) + GetBuildDoneExtraMessage(buildInfo, labelsSettings); }