Beispiel #1
0
        public SearchViewModel()
        {
            ContentId = ToolContentId;

            loader = new JsonOptionsLoader();

            QueryEditor = new QueryEditorViewModel(Session, () =>
            {
                if (SearchCommand.CanExecute(null))
                {
                    SearchCommand.Execute(null);
                }
            });
            QueryEditor.SendToSearchCommand.IsVisible = false;

            var ests = EntityQuery <Estimator> .All(Session)();

            Estimators        = new ObservableCollection <Estimator>(ests);
            SelectedEstimator = ests.FirstOrDefault();

            emh.Add(
                this.Subscribe(Event.SendToSearch, (e) =>
            {
                object pack = null;
                try
                {
                    pack = e.GetValue <object>(MessageKeys.ToSearchPackage);
                }
                catch
                {
                    return;
                }

                OpenHrSearch();

                var hrs  = pack as IEnumerable <HealthRecord>;
                var hios = pack as IEnumerable <ConfWithHio>;
                var opt  = pack as SearchOptions;

                if (hrs != null && hrs.Any())
                {
                    RecieveHealthRecords(hrs);
                }
                else if (hios != null && hios.Any())
                {
                    RecieveHrItemObjects(hios);
                }
                else if (opt != null)
                {
                    RecieveOptions(opt);
                }

                Contract.Assume(LastRecieverQueryBlock != null);
                Activate();
            })

                );

            ControlsVisible = true;
        }
Beispiel #2
0
 public async Task <IEnumerable <Entity> > GetAllAsync()
 {
     using (var connection = context.CreateConnection())
     {
         return(await connection.QueryAsync <Entity>(EntityQuery.All()));
     }
 }
Beispiel #3
0
        public LoginViewModel()
        {
            var doctors = EntityQuery <Doctor> .All(Session)()
                          .OrderBy(d => d.FullName)
                          .ToList();

            var adminPassport = PassportQuery.WithId(Session)(Admin.DefaultId);
            var admin         = new Admin(adminPassport);

            Passwords = new ConfirmPasswordViewModel();
            Users     = new ObservableCollection <IUser>(doctors);
            Users.Add(admin);

            Title        = "Вход";
            SelectedUser = Users[0];

            if (AuthorityController.AutoLogon)
            {
                var doc = doctors.Where(d => d.Passport.Remember).FirstOrDefault();
                if (doc != null)
                {
                    SelectedUser = doc;
                    AutoLogIn();
                }
            }
        }
Beispiel #4
0
        public SpecialityListViewModel()
        {
            Title = "Специальности";

            var specs = EntityQuery <Speciality> .All(Session)();

            Specialities.SyncWith(specs);
        }
Beispiel #5
0
        private void MakeVms()
        {
            var vocs = EntityQuery <Vocabulary> .All(Session)();

            var vms = vocs.Select(v => Vocs
                                  .Where(vm => vm.voc == v)
                                  .FirstOrDefault() ?? new VocabularyViewModel(v));

            Vocs.SyncWith(vms);
        }
Beispiel #6
0
        /// <summary>
        /// Удаляем убранные, обновляем оставшиеся загруженные словари
        /// </summary>
        /// <param name="mustBeDeletedIdsPerType"></param>
        public void AfterSyncVocs(Dictionary <Type, IEnumerable <object> > mustBeDeletedIdsPerType)
        {
            Contract.Requires(mustBeDeletedIdsPerType != null);

            IEnumerable <object> ids;

            if (mustBeDeletedIdsPerType.TryGetValue(typeof(Vocabulary), out ids))
            {
                var vocsToDel = VocabularyQuery.ByIds(session)(ids.Cast <Guid>());
                DeleteVocs(vocsToDel);
            }
            var vocs = EntityQuery <Vocabulary> .All(session)();

            LoadOrUpdateVocs(vocs);
        }
Beispiel #7
0
        public CriteriaViewModel()
        {
            viewer = new HierViewer <Estimator, CriteriaGroup, Criterion, ICrit>(
                cg => cg.Estimator,
                cr => cr.Group,
                e => e.CriteriaGroups,
                cg => cg.Criteria
                );
            Navigator = new CritNavigator(viewer, beforeInsert: CloseEditor); // first save editing crit
            Navigator.CurrentChanged += (s, e) =>
            {
                var c = e.arg != null ? (e.arg as CriteriaItemViewModel).Crit : null;
                ShowEditor(c);
            };
            Navigator.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == "CurrentTitle")
                {
                    Title = Navigator.CurrentTitle;
                }
            };

            var ests = EntityQuery <Estimator> .All(Session)();

            ests.ForEach(x =>
                         Navigator.AddRootItemFor(x));

            emh.Add(this.Subscribe(Event.DeleteCrit, (e) =>
            {
                var crit = e.GetValue <ICrit>(MessageKeys.Crit);
                DeleteCrit(crit);
            }));

            emh.Add(this.Subscribe(Event.EntityDeleted, (e) =>
            {
                var entity = e.GetValue <IEntity>(MessageKeys.Entity);
                if (entity is ICrit)
                {
                    OnCritDeleted(entity as ICrit);
                }
            }));

            //var last = ests.LastOrDefault();
            //if (last != null)
            //{
            //    Open(last);
            //}
        }
Beispiel #8
0
        private int MakeAvailableVms()
        {
            var ids = EntityQuery <Vocabulary> .All(Session)().Select(y => y.Id).ToList();

            var notInstalled = serverNonCustomVocs
                               .Where(x => !ids.Contains(x.Id));

            var vms = notInstalled.Select(voc => AvailableVocs
                                          .Where(vm => vm.voc == voc)
                                          .FirstOrDefault() ?? new VocabularyViewModel(voc))
                      .ToList();

            uiTaskFactory.StartNew(() =>
                                   AvailableVocs.SyncWith(vms));

            return(vms.Count());
        }
        /// <summary>
        /// Начинает редактировать врача.
        /// </summary>
        public DoctorEditorViewModel(Doctor doctor)
        {
            this.doctor = doctor;

            _specialities = new List <Speciality> {
                Speciality.Null
            };
            _specialities.AddRange(EntityQuery <Speciality> .All(Session)()
                                   .OrderBy(s => s.Title));

            Doctor = new DoctorViewModel(doctor);
            (doctor as IEditableObject).BeginEdit();
            Doctor.canEditComboBoxValues = true;

            Title          = "Данные врача";
            HelpTopic      = "editdoctor";
            WithHelpButton = false;
        }
Beispiel #10
0
        protected override IEnumerable <HealthRecord> GetResultForGroup(SearchOptions qb)
        {
            var or     = base.GetResultForGroup(qb);
            var allHrs = allHrsCache ?? (allHrsCache = EntityQuery <HealthRecord> .All(session)()); // минимизировать блоки Nor/выбор всех записей

            switch (qb.SearchScope)
            {
            case SearchScope.HealthRecord:
                return(allHrs.Except(or));

            case SearchScope.Holder:
                return(NotAnyInHolderScope(or, allHrs, h => h.Holder));

            case SearchScope.Patient:
                return(NotAnyInHolderScope(or, allHrs, h => h.GetPatient()));

            default:
                throw new NotImplementedException();
            }
        }
Beispiel #11
0
        public UomEditorViewModel(Uom uom)
        {
            Contract.Requires(uom != null);
            this.uom = uom;

            Types   = new List <UomType>(EntityQuery <UomType> .All(Session)());
            Formats = new ObservableCollection <UomFormat>(uom.Formats);

            (uom as IEditableObject).BeginEdit();
            Uom        = new UomViewModel(uom);
            Uom.IsBase = false; // не делать новые единицы базовыми по умолчанию

            // Нельзя добавить единицу с таким же описанием или обозначением в группе.
            var customEqTest = (Expression <Func <Uom, bool> >)((x) => (x.Description == uom.Description || x.Abbr == uom.Abbr) && x.Type == uom.Type);

            tester = new ExistanceTester <Uom>(uom, Uom, Session, customEqTest);
            tester.Test();

            Title          = "Единица";
            HelpTopic      = "edituom";
            WithHelpButton = false;
        }
Beispiel #12
0
        public DoctorsListViewModel()
        {
            Title = "Врачи";
            var docs = EntityQuery <Doctor> .All(Session)()
                       .OrderBy(d => d.FullName).ToList();

            var specs = EntityQuery <Speciality> .All(Session)()
                        .OrderBy(s => s.Title).ToList();

            Doctors.SyncWith(docs);

            emh.Add(this.Subscribe(Event.EntitySaved, (e) =>
            {
                // выбираем нового доктора или изменившегося
                var doc = e.GetValue <IEntity>(MessageKeys.Entity) as Doctor;
                if (doc != null)
                {
                    SelectDoctor(doc);
                }
            }
                                   ));
        }