示例#1
0
 public MusicDevice(IMusicPluginObject musicPlugin, string name, MusicType mt)
 {
     _musicDriverName = musicPlugin.Name;
     _musicDriverId   = musicPlugin.Id;
     _name            = name;
     _type            = mt;
     Handle           = new DeviceHandle(CompleteId.GetHashCode());
 }
示例#2
0
        /// <summary>
        /// Creates a new <see cref="Submodule"/> with the given information
        /// </summary>
        /// <param name="solutionPath">The path to the current opend solution</param>
        /// <param name="subModuleInformation">The <see cref="string"/>
        /// that contains informations of the submodule</param>
        internal Submodule(string solutionPath, string subModuleInformation)
        {
            ShowSlimInformations = true;

            if (string.IsNullOrEmpty(subModuleInformation))
            {
                return;
            }

            var lineSplit = subModuleInformation.TrimStart().Split(' ');

            CompleteId  = lineSplit.FirstOrDefault();
            Name        = lineSplit.ElementAtOrDefault(1) ?? "???";
            CompleteTag = lineSplit.ElementAtOrDefault(2) ?? "???";

            CompleteId = !string.IsNullOrEmpty(CompleteId)
                               ? CompleteId.Replace("U", string.Empty)
                         .Replace("+", string.Empty)
                         .Replace("-", string.Empty)
                         .TrimStart()
                               : "???";

            ShortId = CompleteId.Substring(0, 7);

            SetSubModuleStatus(solutionPath, subModuleInformation);
            SetBackgroundColor();

            // TODO: this if is useless, should be remove?
            if (string.IsNullOrEmpty(CompleteTag))
            {
                ChangeHealthStatus(HealthStatus.Unknown);
                return;
            }

            CompleteTag = CompleteTag.TrimStart('(').TrimEnd(')');

            if (CompleteTag.EndsWith("HEAD", StringComparison.Ordinal))
            {
                ChangeHealthStatus(HealthStatus.Head);
                return;
            }

            if (CompleteId.StartsWith(CompleteTag, StringComparison.Ordinal))
            {
                ChangeHealthStatus(HealthStatus.Okay);
                return;
            }

            if (CompleteTag.StartsWith("heads", StringComparison.Ordinal) && !CompleteTag.Contains("-"))
            {
                ChangeHealthStatus(HealthStatus.Okay);
                return;
            }

            var splittedTag = CompleteTag.Split('-');

            if ((splittedTag.Length - 2) < 1)
            {
                ChangeHealthStatus(HealthStatus.Unknown);
                return;
            }

            int numberOfAdditionalCommits;

            int.TryParse(splittedTag.ElementAtOrDefault(splittedTag.Length - 2), out numberOfAdditionalCommits);

            NumberOfAdditionalCommits = numberOfAdditionalCommits;

            ChangeHealthStatus(NumberOfAdditionalCommits == 0 ? HealthStatus.Unknown : HealthStatus.Warning);
        }