private void SaveAction(object window) { if (AddMode) { var position = new Position() { Id = StructureService.GetNewPositionId(), Name = Name, PersonId = SelectedPerson.Id }; if (SelectedRole != null) { SelectedPerson.RoleId = SelectedRole.Id; } if (parentPositionId > 0) { var parentPosition = StructureService.GetPositionById(parentPositionId); parentPosition.SubPositions.Add(position); } else { var structure = new Structure() { Id = StructureService.GetNewStructureId(), Name = StructureName, RootPosition = position }; GlobalDataModel.Instance.Model.Structures.Add(structure); } } else { if (StructureMode) { var structure = GlobalDataModel.Instance.Model.Structures.Select(x => x).Where(x => x.RootPosition.Id == positionId).FirstOrDefault(); structure.Name = StructureName; } var position = StructureService.GetPositionById(positionId); position.Name = Name; position.PersonId = SelectedPerson != null ? SelectedPerson.Id : 0; if ((SelectedRole != null) && (SelectedPerson != null)) { SelectedPerson.RoleId = SelectedRole.Id; } } if (window != null) { ((Window)window).Close(); } }