Exemplo n.º 1
0
        public override void RemoveDetailEntities()
        {
            if (!SelectedEntities.Any())
            {
                return;
            }
            var entityKey = Repository.GetPrimaryKey(Entity);

            foreach (var selectedEntity in SelectedEntities)
            {
                var detailKey = DetailsRepository.GetPrimaryKey(selectedEntity);
                var junction  = JunctionRepository.First(GetJunctionPredicate(entityKey, detailKey));
                JunctionRepository.Remove(junction);
            }
            SaveChangesAndNotify(SelectedEntities);
            SelectedEntities.Clear();
        }
Exemplo n.º 2
0
        public override void AddDetailEntities()
        {
            var availableEntities       = DetailsRepository.ToList().Except(DetailEntities).ToArray();
            var selectEntitiesViewModel = new SelectDetailEntitiesViewModel <TDetailEntity>(availableEntities);

            if (DialogService.ShowDialog(MessageButton.OKCancel, CommonResources.AddRemoveDetailEntities_SelectObjects, selectEntitiesViewModel) == MessageResult.OK && selectEntitiesViewModel.SelectedEntities.Any())
            {
                foreach (var selectedEntity in selectEntitiesViewModel.SelectedEntities)
                {
                    var junction     = new TJunction();
                    var entityKey    = Repository.GetPrimaryKey(Entity);
                    var detailKey    = DetailsRepository.GetPrimaryKey(selectedEntity);
                    var junctionType = typeof(TJunction);
                    junctionType.GetProperty(ExpressionHelper.GetPropertyName(getEntityForeignKey)).SetValue(junction, entityKey, null);
                    junctionType.GetProperty(ExpressionHelper.GetPropertyName(getDetailForeignKey)).SetValue(junction, detailKey, null);
                    JunctionRepository.Add(junction);
                }
                SaveChangesAndNotify(selectEntitiesViewModel.SelectedEntities);
            }
        }