public ActionResult StartMetadataEditor()
{
ViewBag.Title = PresentationModel.GetViewTitleForTenant("Create Dataset", this.Session.GetTenant());
ViewData["ShowOptional"] = false;
MetadataEditorModel Model = new MetadataEditorModel();
if (TaskManager == null) TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"];
if (TaskManager != null)
{
//load empty metadata xml if needed
if (!TaskManager.Bus.ContainsKey(CreateTaskmanager.METADATA_XML))
{
CreateXml();
}
bool loaded = false;
//check if formsteps are loaded
if (TaskManager.Bus.ContainsKey(CreateTaskmanager.FORM_STEPS_LOADED))
{
loaded = (bool)TaskManager.Bus[CreateTaskmanager.FORM_STEPS_LOADED];
}
// load form steps
if (loaded == false && TaskManager.Bus.ContainsKey(CreateTaskmanager.METADATASTRUCTURE_ID))
{
long metadataStrutureId = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.METADATASTRUCTURE_ID]);
// generate all steps
// one step for each complex type in the metadata structure
AdvanceTaskManager(metadataStrutureId);
}
List<StepModelHelper> stepInfoModelHelpers = new List<StepModelHelper>();
// foreach step and the childsteps... generate a stepModelhelper
foreach (var stepInfo in TaskManager.StepInfos)
{
StepModelHelper stepModelHelper = GetStepModelhelper(stepInfo.Id);
if (stepModelHelper.Model == null)
{
if (stepModelHelper.Usage is MetadataPackageUsage)
stepModelHelper.Model = CreatePackageModel(stepInfo.Id, false);
if (stepModelHelper.Usage is MetadataNestedAttributeUsage)
stepModelHelper.Model = CreateCompoundModel(stepInfo.Id, false);
getChildModelsHelper(stepModelHelper);
}
stepInfoModelHelpers.Add(stepModelHelper);
}
Model.StepModelHelpers = stepInfoModelHelpers;
//set import
if (TaskManager.Bus.ContainsKey(CreateTaskmanager.METADATASTRUCTURE_ID))
{
long id = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.METADATASTRUCTURE_ID]);
Model.Import = IsImportAvavilable(id);
}
//set addtionaly functions
Model.Actions = getAddtionalActions();
}
return View("MetadataEditor", Model);
}