Esempio n. 1
0
        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();
            }
        }