public bool CheckOutFile(Cdc.MetaManager.DataAccess.IVersionControlled domainObject, Cdc.MetaManager.DataAccess.Domain.Application application, out string errorMessage)
        {
            System.Configuration.AppSettingsReader appReader = new System.Configuration.AppSettingsReader();

            string rootPath   = appReader.GetValue("RepositoryPath", typeof(System.String)).ToString();
            string parentPath = System.IO.Path.Combine(rootPath, application.Name + (application.IsFrontend.Value ? "_Frontend" : "_Backend"));
            string filePath   = System.IO.Path.Combine(parentPath, NHibernate.Proxy.NHibernateProxyHelper.GetClassWithoutInitializingProxy(domainObject).Name);
            string fileName   = domainObject.RepositoryFileName + ".xml";
            string fullPath   = System.IO.Path.Combine(filePath, fileName);

            bool success = true;

            errorMessage = string.Empty;

            if (IsFileInClearCase(fullPath))
            {
                if (!IsCheckedOutByMe(fullPath))
                {
                    errorMessage = ExecuteClearCaseCommand(ClearCaseCommands.CHECK_OUT, fullPath).Error;
                    success      = string.IsNullOrEmpty(errorMessage);
                }
            }

            return(success);
        }
        public bool CheckInFile(Cdc.MetaManager.DataAccess.IVersionControlled domainObject, Cdc.MetaManager.DataAccess.Domain.Application application, out string errorMessage)
        {
            string parentPath = System.IO.Path.Combine(_workspacePath, application.Name + (application.IsFrontend.Value ? "_Frontend" : "_Backend"));
            string filePath   = System.IO.Path.Combine(parentPath, NHibernate.Proxy.NHibernateProxyHelper.GetClassWithoutInitializingProxy(domainObject).Name);
            string fileName   = domainObject.RepositoryFileName + ".xml";
            string fullPath   = System.IO.Path.Combine(filePath, fileName);

            errorMessage = string.Empty;

            try
            {
                if (!_versionControlServer.ServerItemExists(_workspace.GetServerItemForLocalItem(fullPath), ItemType.Any))
                {
                    _workspace.PendAdd(fullPath);
                }

                CheckIn(domainObject, fullPath);

                return(true);
            }
            catch (Exception ex)
            {
                errorMessage = ex.ToString();
                return(false);
            }
        }