//class for handling the document Object
public class DocumentObject
{
public string TemplateName{get;set;}
public string NodeName{get;set;}
// this should be the node alias and the values
public Dictionary<string, string> NodeItems{get;set;}
public int ParentNodeId { get; set; }
public string DocumentName { get; set; }
}
public int AddNodesToUmbraco(DocumentObject documentObject)
{
//what kind of document is the published nodes
DocumentType documentType = DocumentType.GetByAlias(documentObject.DocumentName);
umbraco.cms.businesslogic.member.Member currentMember = umbraco.cms.businesslogic.member.Member.GetCurrentMember();
Document doc = Document.MakeNew(documentObject.NodeName, documentType, currentMember.User, documentObject.ParentNodeId);
foreach (var pair in documentObject.NodeItems)
{
var propertyType = doc.getProperty(pair.Key).PropertyType.DataTypeDefinition.Text;
if (pair.Value != "")
{
//checking whether it is a check box or not
if (propertyType.ToUpper().Contains("TRUE/FALSE"))
{
doc.getProperty(pair.Key).Value = pair.Value.ToUpper() == "YES" ? true : false;
}
else
{
doc.getProperty(pair.Key).Value = pair.Value;
}
}
}
if (documentObject.TemplateName != null)
{
var alternateTemplate = 0;
var templates = umbraco.cms.businesslogic.template.Template.GetAllAsList();
foreach (var t in templates.Where(t => t.Alias == documentObject.TemplateName))
alternateTemplate = t.Id;
doc.Template = alternateTemplate;
}
doc.Save();
bool success = doc.PublishWithResult(currentMember.User);
umbraco.library.UpdateDocumentCache(doc.Id);
return doc.Id;//return id of the newly created item
}