Skip to content
This repository was archived by the owner on Jan 19, 2021. It is now read-only.

Allow removal of document set items & added name on document set items export #2624

Open
wants to merge 10 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -883,11 +883,11 @@ public void XMLSerializer_Deserialize_ContentTypes_201605()

Assert.IsNotNull(ct.DocumentSetTemplate);
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes);
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E002"));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f")));
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c.ContentTypeId == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E002"));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new SharedField { FieldId = new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3") }));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new SharedField { FieldId = new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc") }));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new WelcomePageField { FieldId = new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531") }));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new WelcomePageField { FieldId = new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f") }));
Assert.AreEqual("home.aspx", ct.DocumentSetTemplate.WelcomePage);
Assert.IsNotNull(ct.DocumentSetTemplate.DefaultDocuments);

Expand Down Expand Up @@ -937,13 +937,16 @@ public void XMLSerializer_Serialize_ContentTypes_201605()
};

var dt = new DocumentSetTemplate();
dt.AllowedContentTypes.Add("0x01005D4F34E4BE7F4B6892AEBE088EDD215E002");
dt.SharedFields.Add(new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3"));
dt.SharedFields.Add(new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc"));
dt.WelcomePageFields.Add(new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531"));
dt.WelcomePageFields.Add(new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f"));
dt.AllowedContentTypes.Add(new AllowedContentType
{
ContentTypeId = "0x01005D4F34E4BE7F4B6892AEBE088EDD215E002"
});
dt.SharedFields.Add(new SharedField { FieldId = new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3") });
dt.SharedFields.Add(new SharedField { FieldId = new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc") });
dt.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531") });
dt.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f") });
dt.WelcomePage = "home.aspx";
dt.DefaultDocuments.Add(new DefaultDocument()
dt.DefaultDocuments.Add(new DefaultDocument
{
ContentTypeId = "0x01005D4F34E4BE7F4B6892AEBE088EDD215E001",
FileSourcePath = "document.dotx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2402,10 +2402,10 @@ public void XMLSerializer_Deserialize_ContentTypes()
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes);
Assert.AreEqual("{sitecollection}/_cts/ProjectDocumentSet/ProjectHomePage.aspx", ct.DocumentSetTemplate.WelcomePage);
Assert.IsTrue(ct.DocumentSetTemplate.RemoveExistingContentTypes);
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E"));
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c.ContentTypeId == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E"));

Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new Guid("B01B3DBC-4630-4ED1-B5BA-321BC7841E3D")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new Guid("23203E97-3BFE-40CB-AFB4-07AA2B86BF45")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c.FieldId == new Guid("B01B3DBC-4630-4ED1-B5BA-321BC7841E3D")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c.FieldId == new Guid("23203E97-3BFE-40CB-AFB4-07AA2B86BF45")));

Assert.IsNotNull(ct.DocumentSetTemplate.DefaultDocuments);

Expand Down Expand Up @@ -2444,11 +2444,11 @@ public void XMLSerializer_Serialize_ContentTypes()
};

var documentSetTemplate = new DocumentSetTemplate { RemoveExistingContentTypes = true };
documentSetTemplate.AllowedContentTypes.Add("0x01005D4F34E4BE7F4B6892AEBE088EDD215E002");
documentSetTemplate.SharedFields.Add(new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3"));
documentSetTemplate.SharedFields.Add(new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc"));
documentSetTemplate.WelcomePageFields.Add(new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531"));
documentSetTemplate.WelcomePageFields.Add(new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f"));
documentSetTemplate.AllowedContentTypes.Add(new AllowedContentType { ContentTypeId = "0x01005D4F34E4BE7F4B6892AEBE088EDD215E002" });
documentSetTemplate.SharedFields.Add(new SharedField { FieldId = new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3") });
documentSetTemplate.SharedFields.Add(new SharedField { FieldId = new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc") });
documentSetTemplate.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531") });
documentSetTemplate.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f") });
documentSetTemplate.WelcomePage = "home.aspx";
documentSetTemplate.DefaultDocuments.Add(new DefaultDocument()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2965,10 +2965,10 @@ public void XMLSerializer_Deserialize_ContentTypes()
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes);
Assert.AreEqual("{sitecollection}/_cts/ProjectDocumentSet/ProjectHomePage.aspx", ct.DocumentSetTemplate.WelcomePage);
Assert.IsTrue(ct.DocumentSetTemplate.RemoveExistingContentTypes);
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E"));
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c.ContentTypeId == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E"));

Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new Guid("B01B3DBC-4630-4ED1-B5BA-321BC7841E3D")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new Guid("23203E97-3BFE-40CB-AFB4-07AA2B86BF45")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c.FieldId == new Guid("B01B3DBC-4630-4ED1-B5BA-321BC7841E3D")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c.FieldId == new Guid("23203E97-3BFE-40CB-AFB4-07AA2B86BF45")));

Assert.IsNotNull(ct.DocumentSetTemplate.DefaultDocuments);

Expand Down Expand Up @@ -3007,11 +3007,11 @@ public void XMLSerializer_Serialize_ContentTypes()
};

var documentSetTemplate = new DocumentSetTemplate { RemoveExistingContentTypes = true };
documentSetTemplate.AllowedContentTypes.Add("0x01005D4F34E4BE7F4B6892AEBE088EDD215E002");
documentSetTemplate.SharedFields.Add(new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3"));
documentSetTemplate.SharedFields.Add(new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc"));
documentSetTemplate.WelcomePageFields.Add(new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531"));
documentSetTemplate.WelcomePageFields.Add(new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f"));
documentSetTemplate.AllowedContentTypes.Add(new AllowedContentType { ContentTypeId = "0x01005D4F34E4BE7F4B6892AEBE088EDD215E002" });
documentSetTemplate.SharedFields.Add(new SharedField { FieldId = new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3") });
documentSetTemplate.SharedFields.Add(new SharedField { FieldId = new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc") });
documentSetTemplate.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531") });
documentSetTemplate.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f") });
documentSetTemplate.WelcomePage = "home.aspx";
documentSetTemplate.DefaultDocuments.Add(new DefaultDocument()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3064,10 +3064,10 @@ public void XMLSerializer_Deserialize_ContentTypes()
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes);
Assert.AreEqual("{sitecollection}/_cts/ProjectDocumentSet/ProjectHomePage.aspx", ct.DocumentSetTemplate.WelcomePage);
Assert.IsTrue(ct.DocumentSetTemplate.RemoveExistingContentTypes);
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E"));
Assert.IsNotNull(ct.DocumentSetTemplate.AllowedContentTypes.FirstOrDefault(c => c.ContentTypeId == "0x01005D4F34E4BE7F4B6892AEBE088EDD215E"));

Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c == new Guid("B01B3DBC-4630-4ED1-B5BA-321BC7841E3D")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c == new Guid("23203E97-3BFE-40CB-AFB4-07AA2B86BF45")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.SharedFields.FirstOrDefault(c => c.FieldId == new Guid("B01B3DBC-4630-4ED1-B5BA-321BC7841E3D")));
Assert.AreNotEqual(Guid.Empty, ct.DocumentSetTemplate.WelcomePageFields.FirstOrDefault(c => c.FieldId == new Guid("23203E97-3BFE-40CB-AFB4-07AA2B86BF45")));

Assert.IsNotNull(ct.DocumentSetTemplate.DefaultDocuments);

Expand Down Expand Up @@ -3106,11 +3106,11 @@ public void XMLSerializer_Serialize_ContentTypes()
};

var documentSetTemplate = new DocumentSetTemplate { RemoveExistingContentTypes = true };
documentSetTemplate.AllowedContentTypes.Add("0x01005D4F34E4BE7F4B6892AEBE088EDD215E002");
documentSetTemplate.SharedFields.Add(new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3"));
documentSetTemplate.SharedFields.Add(new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc"));
documentSetTemplate.WelcomePageFields.Add(new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531"));
documentSetTemplate.WelcomePageFields.Add(new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f"));
documentSetTemplate.AllowedContentTypes.Add(new AllowedContentType { ContentTypeId = "0x01005D4F34E4BE7F4B6892AEBE088EDD215E002" });
documentSetTemplate.SharedFields.Add(new SharedField { FieldId = new Guid("f6e7bdd5-bdcb-4c72-9f18-2bd8c27003d3") });
documentSetTemplate.SharedFields.Add(new SharedField { FieldId = new Guid("a8df65ec-0d06-4df1-8edf-55d48b3936dc") });
documentSetTemplate.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("c69d2ffc-0c86-474a-9cc7-dcd7774da531") });
documentSetTemplate.WelcomePageFields.Add(new WelcomePageField { FieldId = new Guid("b9132b30-2b9e-47d4-b0fc-1ac34a61506f") });
documentSetTemplate.WelcomePage = "home.aspx";
documentSetTemplate.DefaultDocuments.Add(new DefaultDocument()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
using System;

namespace OfficeDevPnP.Core.Framework.Provisioning.Model
{
/// <summary>
/// An allowed content type for a Document Set
/// </summary>
public partial class AllowedContentType : BaseModel, IEquatable<AllowedContentType>
{
#region Public Members

/// <summary>
/// The name of the allowed content type in a document set
/// </summary>
public String Name { get; set; }

/// <summary>
/// The content type id of the allowed content type in a document set
/// </summary>
public String ContentTypeId { get; set; }

/// <summary>
/// True to specify that the allowed content type should be removed from the document set. If False, it means it will be added to the document set.
/// </summary>
public bool Remove { get; set; }

#endregion

#region Comparison code

/// <summary>
/// Gets the hash code
/// </summary>
/// <returns>Returns HashCode</returns>
public override int GetHashCode()
{
return (String.Format("{0}|{1}|{2}|",
(this.Name != null ? this.Name.GetHashCode() : 0),
(this.ContentTypeId != null ? this.ContentTypeId.GetHashCode() : 0),
this.Remove.GetHashCode()
).GetHashCode());
}

/// <summary>
/// Compares object with AllowedContentType
/// </summary>
/// <param name="obj">Object that represents AllowedContentType</param>
/// <returns>True if the current object is equal to the AllowedContentType</returns>
public override bool Equals(object obj)
{
if (!(obj is AllowedContentType))
{
return (false);
}
return (Equals((AllowedContentType)obj));
}

/// <summary>
/// Compares AllowedContentType object based on Name, ContentTypeID and Remove.
/// </summary>
/// <param name="other">AllowedContentType object</param>
/// <returns>True if the AllowedContentType object is equal to the current object; otherwise, false.</returns>
public bool Equals(AllowedContentType other)
{
if (other == null)
{
return (false);
}

return (this.Name == other.Name &&
this.ContentTypeId == other.ContentTypeId &&
this.Remove == other.Remove
);

}

#endregion
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace OfficeDevPnP.Core.Framework.Provisioning.Model
{
public partial class AllowedContentTypeCollection : BaseProvisioningTemplateObjectCollection<AllowedContentType>
{
/// <summary>
/// Constructor for AllowedContentTypesCollection class.
/// </summary>
/// <param name="parentTemplate">Parent provisioning template</param>
public AllowedContentTypeCollection(ProvisioningTemplate parentTemplate) : base(parentTemplate)
{

}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OfficeDevPnP.Core.Framework.Provisioning.Model
{
Expand All @@ -28,6 +24,11 @@ public partial class DefaultDocument : BaseModel, IEquatable<DefaultDocument>
/// </summary>
public String FileSourcePath { get; set; }

/// <summary>
/// True to specify that the Default Document should be removed from the document set. If False, it means it will be added to the document set.
/// </summary>
public bool Remove { get; set; }

#endregion

#region Comparison code
Expand All @@ -41,7 +42,8 @@ public override int GetHashCode()
return (String.Format("{0}|{1}|{2}|",
(this.Name != null ? this.Name.GetHashCode() : 0),
(this.ContentTypeId != null ? this.ContentTypeId.GetHashCode() : 0),
(this.FileSourcePath != null ? this.FileSourcePath.GetHashCode() : 0)
(this.FileSourcePath != null ? this.FileSourcePath.GetHashCode() : 0),
this.Remove.GetHashCode()
).GetHashCode());
}

Expand All @@ -60,7 +62,7 @@ public override bool Equals(object obj)
}

/// <summary>
/// Compares DefaultDocument object based on Name, ContentTypeID and FileSourcePath.
/// Compares DefaultDocument object based on Name, ContentTypeID, FileSourcePath and Remove.
/// </summary>
/// <param name="other">DefaultDocument object</param>
/// <returns>true if the DefaultDocument object is equal to the current object; otherwise, false.</returns>
Expand All @@ -73,9 +75,9 @@ public bool Equals(DefaultDocument other)

return (this.Name == other.Name &&
this.ContentTypeId == other.ContentTypeId &&
this.FileSourcePath == other.FileSourcePath
this.FileSourcePath == other.FileSourcePath &&
this.Remove == other.Remove
);

}

#endregion
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OfficeDevPnP.Core.Framework.Provisioning.Model
namespace OfficeDevPnP.Core.Framework.Provisioning.Model
{
public partial class DefaultDocumentCollection : BaseProvisioningTemplateObjectCollection<DefaultDocument>
{
Expand Down
Loading