/// <summary>
 /// Initializes a new instance of the <see cref="ProductVM"/> class from the model.
 /// </summary>
 /// <param name="entity">The model.</param>
 /// <param name="access"></param>
 /// <param name="dataService"></param>
 public OrganizationChartPositionVM(OrganizationChart_Position entity, AccessType access, OrganizationChartPositionDataService dataService):base(access)
 {
     _model = entity;
     InitializeData(dataService);
     OrganizationChartId = entity.OrganizationChart.Id;
     PositionId = entity.Position.Id;
     ParentId = entity.Parent == null? -1: entity.Parent.Id;
     Title = entity.Position.Name;
     foreach (var child in entity.Children)
     {
         ChildNodes.Add(new OrganizationChartPositionVM(child, Access,dataService));
     }
     
 }
     private void FixupParent(OrganizationChart_Position previousValue)
     {
         if (previousValue != null && previousValue.Children.Contains(this))
         {
             previousValue.Children.Remove(this);
         }
 
         if (Parent != null)
         {
             if (!Parent.Children.Contains(this))
             {
                 Parent.Children.Add(this);
             }
         }
     }
         /// <summary>
 /// Initializes a new instance of the <see cref="ProductGroupVM"/> class initialized with default values.
 /// </summary>
 public OrganizationChartPositionVM(AccessType access, OrganizationChartPositionDataService dataService):base(access)
 {
     InitializeData(dataService);
     _model = new OrganizationChart_Position();
 }