Automatr.Automatr.GetStatus C# (CSharp) Метод

GetStatus() публичный Метод

public GetStatus ( ) : BranchStatus
Результат BranchStatus
        public BranchStatus GetStatus()
        {
            var branches = m_Client.ListBranches();
            if (branches == null)
                return BranchStatus.Unknown;


            Branch remoteBranch = branches.Item1.FirstOrDefault(x => x.Name == Config.BranchName);
            Branch localBranch = m_Client.Workspace.GetBranch(remoteBranch.ID);

            KeyValuePair<Guid, Guid> id = branches.Item2.FirstOrDefault(x => x.Key == remoteBranch.ID);
            bool present = m_Client.Workspace.GetVersion(id.Value) != null;
            if (!present)
                return BranchStatus.Behind;
                
            if (present && localBranch != null)
            {
                var heads = m_Client.Workspace.GetBranchHeads(localBranch);
                if (heads.Count == 1 && heads[0].Version != id.Value)
                    return BranchStatus.Ahead;
            }
            return BranchStatus.Current;
        }