Beispiel #1
0
        /// <summary>
        /// Save changes of exsiting Repository Item to file system
        /// </summary>
        /// <param name="repositoryItem"></param>
        public void SaveRepositoryItem(RepositoryItemBase repositoryItem)
        {
            if (String.IsNullOrEmpty(repositoryItem.ContainingFolder))
            {
                throw new Exception("Cannot save item, there is no containing folder defined - " + repositoryItem.GetType().FullName + ", " + repositoryItem.GetNameForFileName());
            }

            repositoryItem.UpdateBeforeSave();

            string txt              = RepositorySerializer.SerializeToString(repositoryItem);
            string filePath         = CreateRepositoryItemFileName(repositoryItem);
            RepositoryFolderBase rf = GetItemRepositoryFolder(repositoryItem);

            rf.SaveRepositoryItem(filePath, txt);
            repositoryItem.FileName = filePath;
            repositoryItem.FilePath = filePath;
            repositoryItem.RefreshSourceControlStatus();
            RefreshParentFoldersSoucerControlStatus(Path.GetDirectoryName(repositoryItem.FilePath));

            if (repositoryItem.DirtyStatus != Common.Enums.eDirtyStatus.NoTracked)
            {
                repositoryItem.SetDirtyStatusToNoChange();
            }
            repositoryItem.CreateBackup();
        }