protected override void OnCreating(object sender, Storage.Events.CancellableNodeEventArgs e)
{
base.OnCreating(sender, e);
var searchPath = e.SourceNode.Parent.GetType().Name == "Survey" ? e.SourceNode.ParentPath : e.SourceNode.Parent.ParentPath;
// Count Survey Items
var surveyItemCount = ContentQuery.Query(string.Format("+Type:surveyitem +InTree:\"{0}\" .AUTOFILTERS:OFF .COUNTONLY", searchPath)).Count;
// Get children (SurveyItems) count
String tempName;
if (surveyItemCount < 10 && surveyItemCount != 9)
tempName = "SurveyItem_0" + (surveyItemCount + 1);
else
tempName = "SurveyItem_" + (surveyItemCount + 1);
// If node already exits
while (Node.Exists(RepositoryPath.Combine(e.SourceNode.Parent.Path, tempName)))
{
surveyItemCount++;
if (surveyItemCount < 10)
tempName = "SurveyItem_0" + (surveyItemCount + 1);
else
tempName = "SurveyItem_" + (surveyItemCount + 1);
}
e.SourceNode["DisplayName"] = tempName;
e.SourceNode["Name"] = tempName.ToLower();
}