public bool Exists(string specialist)
        {
            if (!string.IsNullOrEmpty(specialist))
            {
                return(Specialists.Exists(x => x == specialist));
            }

            return(false);
        }
 IJsonResponse <unit> Update(int id, Action <Specialist> upd)
 {
     return((from s in Specialists.Find(id).MaybeDefined().OrFail("Not found.")
             from _ in Maybe.Do(() => upd(s))
             from __ in Maybe.Do(UnitOfWork.Commit)
             select unit.Default
             )
            .LogErrors(Log.Error)
            .AsJsonResponse());
 }
        public IJsonResponse <unit> Send([JsonRequestBody] JS.SpecialistRegistrationRequest request)
        {
            var res = from req in request.MaybeDefined()

                      where Maybe.Holds(!req.firstName.NullOrEmpty()).OrFail("Имя не указано.")
                      where Maybe.Holds(!req.lastName.NullOrEmpty()).OrFail("Отчество не указано.")
                      where Maybe.Holds(!req.city.NullOrEmpty()).OrFail("Город не указан.")
                      where Maybe.Holds(!req.resume.NullOrEmpty()).OrFail("Краткое резюме не заполнено.")
                      where Maybe.Holds(!req.regions.NullOrEmpty()).OrFail("Укажите хотя бы один регион.")

                      let professionIDs = req.professions.EmptyIfNull()
                                          let specializationIDs = req.specializations.EmptyIfNull()

                                                                  from created in Specialists.Add(new Specialist {
                Approved       = false,
                FirstName      = req.firstName,
                LastName       = req.lastName,
                PatronymicName = req.patronymicName,
                Resume         = req.resume,
                ContactEmail   = req.contactEmail,
                PublicEmail    = req.publicEmail,
                ContactPhone   = req.publicPhone,                                                       // We don't ask for contact phone right now
                PublicPhone    = req.publicPhone,
                Url            = req.url,

                City         = req.city,
                Regions      = Regions.All.Where(r => req.regions.Contains(r.ID)).ToList(),
                Organization = req.organization.NullOrEmpty() ? null :
                               Organizations.All.FirstOrDefault(x => x.Name == req.organization) ?? Organizations.Add(new Organization {
                    Name = req.organization
                }),

                Professions           = Professions.All.Where(p => professionIDs.Contains(p.Id)).ToList(),
                ProfessionDescription = req.professionDescription,

                Specializations           = Specializations.All.Where(s => specializationIDs.Contains(s.Id)).ToList(),
                SpecializationDescription = req.specializationDescription,

                Experience            = ExperienceBrackets.Find(req.experience),
                ExperienceDescription = req.experienceDescription,
                FormalEducation       = req.formalEducation,
                MusicTherapyEducation = req.musicTherapyEducation,

                Photo = Files.Find(req.photo)
            })

                                                                  where Maybe.Holds(created.Regions.EmptyIfNull().Any()).OrFail("Регион не указан.")
                                                                  where Maybe.Holds(!created.Professions.NullOrEmpty()).OrFail("Профессия не указана.")
                                                                  where Maybe.Holds(!created.Specializations.NullOrEmpty()).OrFail("Специализация не указана.")

                                                                  from _ in Maybe.Do(UnitOfWork.Commit)
                                                                  select unit.Default;

            return(res.LogErrors(Log.Error).AsJsonResponse());
        }
        private Specialists ParseSpecialistsNode(XmlNode specialistsNode)
        {
            try
            {
                Specialists specialists = new Specialists();

                foreach (XmlNode xmlNode in specialistsNode.ChildNodes)
                {
                    switch (xmlNode.Name)
                    {
                    case Tags.KeeperTrainers:
                        specialists.keeperTrainersField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;

                    case Tags.AssistantTrainers:
                        specialists.assistantTrainersField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;

                    case Tags.Psychologists:
                        specialists.psychologistsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;

                    case Tags.PressSpokesmen:
                        specialists.pressSpokesmenField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;

                    case Tags.Economists:
                        specialists.economistsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;

                    case Tags.Physiotherapists:
                        specialists.physiotherapistsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;

                    case Tags.Doctors:
                        specialists.doctorsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                        break;
                    }
                }

                return(specialists);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private Specialists ParseSpecialistsNode(XmlNode specialistsNode)
        {
            try
            {
                Specialists specialists = new Specialists();

                foreach (XmlNode xmlNode in specialistsNode.ChildNodes)
                {
                    switch (xmlNode.Name)
                    {
                        case Tags.KeeperTrainers:
                            specialists.keeperTrainersField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                        case Tags.AssistantTrainers:
                            specialists.assistantTrainersField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                        case Tags.Psychologists:
                            specialists.psychologistsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                        case Tags.PressSpokesmen:
                            specialists.pressSpokesmenField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                        case Tags.Economists:
                            specialists.economistsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                        case Tags.Physiotherapists:
                            specialists.physiotherapistsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                        case Tags.Doctors:
                            specialists.doctorsField = GenericFunctions.ConvertStringToUInt(xmlNode.InnerText);
                            break;
                    }
                }

                return specialists;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 6
0
        public void Show()
        {
            DataTarget = Spheris.Billing.Data.BillingDataFactory.NewInstance().CreateInvoiceGroupRepository();

            Specialists = DataTarget.GetSpecialists();
            BillingSpecialist allSpecialists = new Spheris.Billing.Core.Domain.BillingSpecialist("*", 0);

            Specialists.Insert(0, allSpecialists);
            SelectedSpecialist = allSpecialists;

            DeliveryMethods = DataTarget.GetDeliveryMethods();
            DeliveryMethod allDeliverys = new DeliveryMethod("*", "*");

            DeliveryMethods.Insert(0, allDeliverys);
            SelectedDeliveryMethod = allDeliverys;

            //ViewCore.Show();

            OnPropertyChanged("IsExpanded");
            OnPropertyChanged("IGroups");
            OnPropertyChanged("DeliveryMethods");
            OnPropertyChanged("Specialists");
        }
        public void SetItemDetails()
        {
            if (currentGroupItem == null || currentGroupItem.IsSpoof)
            {
                SelectedBrand          = null;
                SelectedFreq           = null;
                SelectedDeliveryMethod = null;
                SelectedPlatform       = null;
                SelectedSpecialist     = null;
                ContractName           = null;
                if (ReportTypes != null)
                {
                    ReportTypes.ForEach((thislist, thisreport) => RemoveWeakEventListener(thisreport, ReportListener));
                    ReportTypes = new ObservableReportTypes(safeReportTypes, true);
                    ReportTypes.ForEach((thislist, thisreport) => AddWeakEventListener(thisreport, ReportListener));
                }
                ClientLocations = null;

                RaisePropertyChanged("ReportTypes");
                ReportText = "Select Report Types...";
                return;
            }

            if (/*DB.Connnected &&*/ ReportTypes == null)
            {
                ReportTypes     = new ObservableReportTypes(ReportTypesTarget.GetReportTypesAsList());
                safeReportTypes = new ObservableReportTypes(ReportTypes, true);
            }

            if (CurrentGroupItem.ContractID == null)
            {
                ContractName = "No Contract assigned.";
            }
            else
            {
                Contract contract = ContractTarget.GetByContractID((int)CurrentGroupItem.ContractID);
                if (contract == null)
                {
                    ContractName = "No contract found for this Group.";
                }
                else
                {
                    ContractName = contract.DESCR;
                }
            }
            AddWeakEventListener(CurrentGroupItem, EncryptListener);

            IgReports = InvoiceGrpReportsTarget.GetById(currentGroupItem.InvoiceGrpId);

            foreach (ReportType reportType in ReportTypes)
            {
                foreach (InvoiceGrpReport igr in IgReports)
                {
                    if (igr.REPORT_TYPE_ID == reportType.REPORT_TYPE_ID)
                    {
                        reportType.IsSelected = true;
                    }
                    else
                    {
                        reportType.IsSelected = false;
                    }
                }
            }
            RaisePropertyChanged("ReportTypes");
            base.ViewCore.UpdateCB();

            SelectedSpecialist       = (Specialists.First(ss => ss.Id == currentGroupItem.BillingSpecialistID) as BillingSpecialist);
            SelectedFreq             = (Freqs.First(f => f.FREQ == currentGroupItem.BillingFrequency) as Freq);
            SelectedPlatform         = (Platforms.First(p => p.PLATFORM == currentGroupItem.PrimaryPlatform) as Platform);
            SelectedDeliveryMethod   = (DeliveryMethods.First(dm => dm.TheDeliveryMethod == currentGroupItem.DeliveryMethod) as DeliveryMethod);
            SelectedBrand            = (Brands.FirstOrDefault(b => b.BRAND == currentGroupItem.Brand) as Brand);
            SelectedRemitTo          = (RemitTos.First(r => r.REMIT_TO_ID == currentGroupItem.RemitToID) as RemitTo);
            SelectedInvoiceStyle     = (InvoiceStyles.First(i => i.INVOICE_STYLE == currentGroupItem.InvoiceStyle) as InvoiceStyle);
            SelectedInvoiceGrpStatus = (InvoiceGrpStatuss.First(i => i.INVOICE_GRP_STATUS == currentGroupItem.InvoiceGroupStatus) as InvoiceGrpStatus);

            if (ClientLocations != null)
            {
                ClientLocations.CollectionChanged -= ClientLocCollectionChanged;
            }
            ClientLocations = ExtClientTarget.FetchLocations(CurrentGroupItem.InvoiceGrpId, true);
            ClientLocations.CollectionChanged += ClientLocCollectionChanged;

            currentGroupItem.Modified = false;
            GroupVM.EnablePicker      = true;
        }