//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
}