public MitarbeiterManager()
        {
            _serializationService = new SerializationService();

            var mitarbeiters = _serializationService.ReadMitarbeiterListe() ?? new List <Common.Entities.Mitarbeiter>();

            MitarbeiterCollection = new ObservableCollection <MitarbeiterViewmodel>(mitarbeiters.Select(x => x.MapMitarbeiterToViewmodel()));

            MitarbeiterView = CollectionViewSource.GetDefaultView(MitarbeiterCollection);
            MitarbeiterView.SortDescriptions.Add(new SortDescription("DefaultGruppe", ListSortDirection.Ascending));
            MitarbeiterView.SortDescriptions.Add(new SortDescription("IsHelfer", ListSortDirection.Ascending));
            MitarbeiterView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));

            _lazyCreateMitarbeiterCommand = new Lazy <DelegateCommand>(() => new DelegateCommand(CreateMitarbeiterCommandExecute, CanCreateMitarbeiterCommandExecute));
            _lazySaveMitarbeiterCommand   = new Lazy <DelegateCommand>(() => new DelegateCommand(SaveMitarbeiterCommandExecute, CanSaveMitarbeiterCommandExecute));
            _lazyDeleteMitarbeiterCommand = new Lazy <DelegateCommand>(() => new DelegateCommand(DeleteMitarbeiterCommandExecute, CanDeleteMitarbeiterCommandExecute));
        }
Esempio n. 2
0
        private void CreatePlanungswocheCommandExecute()
        {
            if (!CanCreatePlanungswocheCommandExecute())
            {
                return;
            }

            var am = new ArbeitswochenService();
            var aw = am.CreateArbeitswoche(Jahr, KalenderWoche);
            var ms = new SerializationService();

            aw.Mitarbeiter = new List <Common.Entities.Mitarbeiter>(ms.ReadMitarbeiterListe());
            var vm = aw.MapArbeitswocheToViewmodel();

            ArbeitswochenCollection.Add(vm);
            SelectedArbeitswoche = vm;

            ArbeitswocheVorschau.Refresh();
        }
        public bool HasChanges()
        {
            var mitarbeiters    = _serializationService.ReadMitarbeiterListe() ?? new List <Common.Entities.Mitarbeiter>();
            var savedCollection = new ObservableCollection <MitarbeiterViewmodel>(mitarbeiters.Select(x => x.MapMitarbeiterToViewmodel()));

            if (savedCollection.Count != MitarbeiterCollection.Count)
            {
                return(true);
            }

            var savedOrdered = savedCollection.OrderBy(x => x.Name).ToList();
            var checkOrdered = MitarbeiterCollection.OrderBy(x => x.Name).ToList();

            for (int i = 0; i < savedOrdered.Count; i++)
            {
                var saved = savedOrdered[i];
                var check = checkOrdered[i];

                if (saved.Name != check.Name ||
                    saved.DefaultGruppe != check.DefaultGruppe ||
                    saved.WochenStunden != check.WochenStunden ||
                    saved.Wunschdienste != check.Wunschdienste ||
                    saved.DefaultThema != check.DefaultThema ||
                    saved.KindFreieZeit != check.KindFreieZeit)
                {
                    return(true);
                }

                if (saved.NichtDaZeiten.Count != check.NichtDaZeiten.Count ||
                    saved.NichtDaZeiten.Intersect(check.NichtDaZeiten).Count() != saved.NichtDaZeiten.Count)
                {
                    return(true);
                }
            }

            return(false);
        }