/// <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(); }