Ejemplo n.º 1
0
            /// <summary>
            /// Finds the add cost quality topic.
            /// </summary>
            /// <param name="list">The list.</param>
            /// <param name="dataserviceProvider">The dataservice provider.</param>
            /// <param name="topicCategoryName">Name of the topic category.</param>
            /// <param name="topicName">Name of the topic.</param>
            /// <param name="selectedMeasures">The selected measures.</param>
            public static void FindAddCostQualityTopic(
                List <CostQualityTopic> list,
                IDomainSessionFactoryProvider dataserviceProvider,
                string topicCategoryName,
                string topicName,
                IList <Measure> selectedMeasures)
            {
                using (var session = dataserviceProvider.SessionFactory.OpenSession())
                {
                    var measureTopics =
                        session.Query <MeasureTopic>()
                        .Where(mt => mt.Topic.Name == topicName && mt.Topic.Owner.Name == topicCategoryName)
                        .ToList()
                        .Where(mt => selectedMeasures.Select(sm => sm.Id).Contains(mt.Measure.Id))
                        .ToList();

                    if (measureTopics == null || measureTopics.Count == 0)
                    {
                        return;
                    }

                    var id       = measureTopics[0].Topic != null ? measureTopics[0].Topic.Id : 0;
                    var name     = measureTopics[0].Topic != null ? measureTopics[0].Topic.Name : String.Empty;
                    var measures = new List <CostQualityMeasure>();
                    measureTopics.ForEach(mt => measures.Add(new CostQualityMeasure(mt.Measure)));

                    list.Add(new CostQualityTopic(id, name, measures));
                }
            }
Ejemplo n.º 2
0
 public MonthAndYearBaseDataVersionStrategy(
     [Import(LogNames.Session)] ILogWriter logger,
     IDomainSessionFactoryProvider sessionFactoryProvider,
     Type entityType)
     : base(logger, sessionFactoryProvider, entityType)
 {
 }
        /// <summary>
        /// Clears the regions.
        /// </summary>
        /// <param name="sessionFactory">The session factory.</param>
        /// <param name="selectedRegionType">Type of the selected region.</param>
        /// <param name="selectedStates">The selected states.</param>
        public void ClearRegions(IDomainSessionFactoryProvider sessionFactory, Type selectedRegionType, SelectListItem[] selectedStates)
        {
            if (selectedRegionType == typeof(CustomRegion))
            {
                return;
            }

            var states = selectedStates.Aggregate(string.Empty, (current, state) => current + string.Format("'{0}',", state.Text));

            states = states.SubStrBeforeLast(",");

            var updateQuery = @"UPDATE [dbo].[Hospitals]
SET [CustomRegion_Id] = null
Where [CustomRegion_Id] is not null or [CustomRegion_Id]=0
AND [State] in (" + states + ") AND [IsArchived]=0 AND [IsDeleted]=0; ";

            using (var session = sessionFactory.SessionFactory.OpenStatelessSession())
            {
                using (var trans = session.BeginTransaction())
                {
                    session.CreateSQLQuery(updateQuery)
                    .ExecuteUpdate();

                    trans.Commit();
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ReportingEntityModule"/> class and initializes other private members.
 /// </summary>
 /// <param name="logger">The logger.</param>
 /// <param name="factoryProvider">The factory provider.</param>
 /// <param name="dataLoaders">The data loaders.</param>
 protected ReportingEntityModule(
     IDomainSessionFactoryProvider factoryProvider,
     IEnumerable <IDataLoader> dataLoaders)
 {
     FactoryProvider = factoryProvider;
     DataLoaders     = dataLoaders;
 }
 public SessionLocator(
     IDomainSessionFactoryProvider sessionFactoryHolder,
     [Import(LogNames.Operations)] ILogWriter logger)
     : this(sessionFactoryHolder)
 {
     Logger = logger;
 }
Ejemplo n.º 6
0
        private void RunPendingStatements()
        {
            //var session = SessionLocator.For(_baseType);

            try
            {
                IDomainSessionFactoryProvider provider = ServiceLocator.Current.GetInstance <IDomainSessionFactoryProvider>();

                using (var session = provider.SessionFactory.OpenStatelessSession())
                {
                    //using(var connection = session.Connection;)
                    foreach (var sqlStatement in _sqlStatements.Distinct())
                    {
                        Logger.Debug(sqlStatement);
                        session.CreateSQLQuery(sqlStatement)
                        .SetTimeout((int)Math.Round(MonahrqConfiguration.SettingsGroup
                                                    .MonahrqSettings().LongTimeout.TotalSeconds))
                        .ExecuteUpdate();

                        _reportsCoordinator.Information("Data Migration{0}\tExecuting SQL Query: {1}",
                                                        System.Environment.NewLine, String.Format("{0}", sqlStatement));
                    }
                }
            }
            finally
            {
                _sqlStatements.Clear();
            }
        }
Ejemplo n.º 7
0
 public CustomRegionFileImporter(IUserFolder folder
                                 , IDomainSessionFactoryProvider provider
                                 , IHospitalRegistryService hospitalRegistryService
                                 , IEventAggregator events
                                 , [Import(LogNames.Session)] ILogWriter logger)
     : base(folder, provider, hospitalRegistryService, events, logger)
 {
 }
Ejemplo n.º 8
0
 public Module(IConfigurationService configService,
               [Import(LogNames.Session)] ILogWriter logger,
               IDomainSessionFactoryProvider sessionFactoryProvider,
               Monahrq.Infrastructure.Configuration.IConfigurationService configurationService)
 {
     ConnectionSettings = configService.ConnectionSettings;
     Logger             = Logger ?? NullLogger.Instance;
 }
Ejemplo n.º 9
0
 public DrgSourceLoader([Import(LogNames.Session)] ILogWriter logger,
                        IDomainSessionFactoryProvider sessionFactoryProvider
                        , [ImportMany(DataImportContracts.ClincialDimensions)]
                        IEnumerable <IDataReaderDictionary> dataproviders
                        , Monahrq.Infrastructure.Configuration.IConfigurationService configurationService)
     : base(logger, sessionFactoryProvider, dataproviders, configurationService)
 {
 }
Ejemplo n.º 10
0
 public YearOnlyBaseDataVersionStrategy(
     [Import(LogNames.Session)] ILogWriter logger,
     IDomainSessionFactoryProvider sessionFactoryProvider,
     Type entityType, bool isReplaced = false)
     : base(logger, sessionFactoryProvider, entityType)
 {
     IsReplaced = isReplaced;
 }
 public CountyModule([Import(LogNames.Session)] ILogWriter logger,
                     IDomainSessionFactoryProvider sessionFactoryProvider
                     , [ImportMany(DataImportContracts.BaseData)]
                     IEnumerable <IDataReaderDictionary> dataproviders
                     , Monahrq.Infrastructure.Configuration.IConfigurationService configurationService)
     : base(logger, sessionFactoryProvider, dataproviders, configurationService)
 {
 }
Ejemplo n.º 12
0
 public Module(
     IDomainSessionFactoryProvider factoryProvider,
     [ImportMany(DataImportContracts.BaseData)] IEnumerable <IProgrammability> programmability,
     [ImportMany(DataImportContracts.BaseData)] IEnumerable <IDataLoader> dataLoaders
     )
     : base(factoryProvider,
            dataLoaders.Where(d => d.DataProvider.VersionAttribute.Version == dataLoaders.Max(d1 => d1.DataProvider.VersionAttribute.Version)).Distinct().Prioritize())
 {
 }
Ejemplo n.º 13
0
 protected BaseDataVersionStrategy(
     [Import(LogNames.Session)] ILogWriter logger,
     IDomainSessionFactoryProvider sessionFactoryProvider,
     Type entityType)
 {
     EntityType   = entityType;
     DataProvider = sessionFactoryProvider;
     Logger       = logger;
 }
 public DataSetListViewModel(IDomainSessionFactoryProvider sessionProvider)
 {
     IsValid                         = true;
     SessionProvider                 = sessionProvider;
     RegionMgr                       = ServiceLocator.Current.GetInstance <IRegionManager>();
     ImportDataFileClick             = new DelegateCommand <object>(ImportDataFileClickExecute, ImportDataFileClickCanExecute);
     EditDatasetMetadataCommand      = new DelegateCommand <object>(OnEditDatasetMetadata, CanEditDatasetMetadata);
     HideDatasetMetadataPopUpCommand = new DelegateCommand(OnCloseEditDatasetMetadata, () => true);
     UpdateDatasetMetadataCommand    = new DelegateCommand(OnUpdateDatasetMetadata, () => true);
 }
 public PhysicianFileImporter(IUserFolder folder
                              , IDomainSessionFactoryProvider provider
                              , IHospitalRegistryService hospitalRegistryService
                              , IEventAggregator events
                              , [Import(LogNames.Session)] ILogWriter logger
                              , IConfigurationService configurationService)
     : base(folder, provider, hospitalRegistryService, events, logger)
 {
     _configurationService = configurationService;
 }
Ejemplo n.º 16
0
        public BaseDataModule(
            [Import(LogNames.Session)] ILogWriter logger,
            IDomainSessionFactoryProvider factoryProvider,
            [ImportMany(DataImportContracts.BaseDataLoader)] IEnumerable <IBasedataImporter> baseDataLoaders)
        {
            Logger          = logger;
            FactoryProvider = factoryProvider;
            BaseDataLoaders = baseDataLoaders.OrderBy(x => x.LoaderPriority);

            OnFeedback += (sender, args) => Events.GetEvent <MessageUpdateEvent>().Publish(new MessageUpdateEvent {
                Message = args.Data
            });
        }
 protected EntityFileImporter(IUserFolder folder
                              , IDomainSessionFactoryProvider provider
                              , IHospitalRegistryService hospitalRegistryService
                              , IEventAggregator events
                              , [Import(LogNames.Session)] ILogWriter logger)
 {
     Provider = provider;
     Logger   = logger;
     Folder   = folder;
     Events   = events;
     HospitalRegistryService = hospitalRegistryService;
     Description             = string.Format("{0} Import", ExportAttribute.ContractName);
     Inserted     = new List <object>();
     ImportErrors = new List <ImportError>();
 }
        private static bool ProcessDatasets(WebsiteImportTypeEnum importType, WebsiteExport websiteExport, Website existingWebsite, Website newWebsite,
                                            IDomainSessionFactoryProvider provider, ILogWriter logger)
        {
            try
            {
                if (importType == WebsiteImportTypeEnum.File && websiteExport != null)
                {
                    List <Dataset> datasets;
                    List <string>  datasetNameList = websiteExport.Datasets.Select(ds => ds.Name).ToList();

                    using (var session = provider.SessionFactory.OpenSession())
                    {
                        datasets = session.Query <Dataset>()
                                   .Where(d => datasetNameList.Contains(d.File))
                                   .ToFuture()
                                   .ToList();
                    }

                    if (datasets.Any())
                    {
                        if (newWebsite.Datasets == null)
                        {
                            newWebsite.Datasets = new List <WebsiteDataset>();
                        }
                        datasets.ForEach(d =>
                        {
                            newWebsite.Datasets.Add(new WebsiteDataset {
                                Dataset = d
                            });
                        });
                    }
                }
                else if (importType == WebsiteImportTypeEnum.Existing && existingWebsite != null)
                {
                    newWebsite.Datasets = existingWebsite.Datasets.DistinctBy(d => d.Dataset.Id).Select(wd => new WebsiteDataset {
                        Dataset = wd.Dataset, Index = wd.Index
                    }).ToList();
                    //newWebsite.Datasets.ForEach(wd => wd.Id= 0);
                }

                return(true);
            }
            catch (Exception exc)
            {
                logger.Write(exc);
                return(false);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="EntityImporter{TStrategy, TEntity, TKey}"/> class.
        /// </summary>
        /// <param name="logger">The logger.</param>
        /// <param name="sessionFactoryProvider">The session factory provider.</param>
        /// <param name="dataproviders">The dataproviders.</param>
        /// <param name="configurationService">The configuration service.</param>
        protected EntityImporter(ILogWriter logger
                                 , [Import(RequiredCreationPolicy = CreationPolicy.NonShared)]
                                 IDomainSessionFactoryProvider sessionFactoryProvider
                                 , IEnumerable <IDataReaderDictionary> dataproviders
                                 , IConfigurationService configurationService)
        {
            Logger          = logger;
            SessionFactory  = sessionFactoryProvider.SessionFactory;
            SessionProvider = sessionFactoryProvider;
            FirstImport     = false;
            EntityStrategy  = new TStrategy();
            var max = dataproviders.Max(d => d.VersionAttribute.Version);

            DataProvider         = dataproviders.FirstOrDefault(d => d.VersionAttribute.Version == max);
            ConfigurationService = configurationService;

            EventAggregator = ServiceLocator.Current.GetInstance <IEventAggregator>();

            OnFeedback += (sender, args) =>
            {
                if (!IsBackground)
                {
                    EventAggregator.GetEvent <MessageUpdateEvent>()
                    .Publish(new MessageUpdateEvent {
                        Message = args.Data.ToString()
                    });
                }
                else
                {
                    EventAggregator.GetEvent <UiMessageUpdateEventForeGround>()
                    .Publish(new UiMessageUpdateEventForeGround()
                    {
                        Message = args.Data.ToString()
                    });
                }
            };
        }
        private static bool ProcessMeasures(WebsiteImportTypeEnum importType, WebsiteExport websiteExport, Website existingWebsite, Website newWebsite,
                                            IDomainSessionFactoryProvider provider, ILogWriter logger)
        {
            try
            {
                if (importType == WebsiteImportTypeEnum.File && websiteExport != null)
                {
                    List <WebsiteMeasure> measures;

                    using (var session = provider.SessionFactory.OpenSession())
                    {
                        measures = (from measure in websiteExport.Measures
                                    let originalMeasure = session.Query <Measure>().Where(m => m.Name.ToUpper() == measure.OrginalCode.ToUpper() && !m.IsOverride).ToFuture().FirstOrDefault()
                                                          where originalMeasure != null
                                                          let overrideMeasure = session.Query <Measure>().Where(m => m.Name.ToUpper() == (!string.IsNullOrEmpty(measure.OverrideCode) ? measure.OverrideCode.ToUpper() : string.Empty) && m.IsOverride).ToFuture().FirstOrDefault()
                                                                                select new WebsiteMeasure
                        {
                            OriginalMeasure = originalMeasure,
                            OverrideMeasure = overrideMeasure,
                            IsSelected = measure.IsSelected
                        }).ToList();
                    }

                    if (measures.Any())
                    {
                        if (newWebsite.Measures == null)
                        {
                            newWebsite.Measures = new List <WebsiteMeasure>();
                        }

                        if (newWebsite.Datasets.Any())
                        {
                            var targetNames = newWebsite.Datasets.DistinctBy(d => d.Dataset.Id).Select(d => d.Dataset.ContentType.Name).ToList();
                            //newWebsite.Measures.ToList().RemoveAll(m => !m.OriginalMeasure.Owner.Name.In(targetNames));

                            foreach (var measure in measures.Where(measure => measure.OriginalMeasure.Owner.Name.In(targetNames)).ToList())
                            {
                                newWebsite.Measures.Add(measure);
                            }
                        }
                        else
                        {
                            newWebsite.Measures = new List <WebsiteMeasure>();
                        }
                    }
                }
                else if (importType == WebsiteImportTypeEnum.Existing && existingWebsite != null)
                {
                    newWebsite.Measures = existingWebsite.Measures.DistinctBy(d => d.OriginalMeasure.Id).Select(wm => new WebsiteMeasure {
                        OriginalMeasure = wm.OriginalMeasure, OverrideMeasure = wm.OverrideMeasure, IsSelected = wm.IsSelected, Index = wm.Index
                    })
                                          .ToList();
                    // newWebsite.Measures.ForEach(wd => wd.Id = 0);
                }

                return(true);
            }
            catch (Exception exc)
            {
                logger.Write(exc);
                return(false);
            }
        }
 public MeasureService(IDomainSessionFactoryProvider provider, [Import(LogNames.Session)] ILogWriter logger)
 {
     Logger   = logger ?? NullLogger.Instance;
     Provider = provider;
 }
 public SessionLocator(
     IDomainSessionFactoryProvider sessionFactoryHolder)
 {
     _sessionFactoryHolder = sessionFactoryHolder;
     Logger = NullLogger.Instance;
 }
        /// <summary>
        /// Gets the CMS zones.
        /// </summary>
        /// <param name="DataProvider">The data provider.</param>
        /// <param name="CurrentWebsite">The current website.</param>
        /// <returns></returns>
        private static IList <CMSZone> GetCMSZones(IDomainSessionFactoryProvider DataProvider, Website CurrentWebsite)
        {
            IList <CMSZone> zones;
            List <int>      applicableReportIds = CurrentWebsite.Reports
                                                  .Select(wr => wr.Report.Id).ToList();

            //	Retrieve CMS Zone data from DB.
            using (var session = DataProvider.SessionFactory.OpenSession())
            {
                //try
                //{
                //	var q2 = (session
                //		.CreateSQLQuery(sqlGetWebsitePagesX)
                //		.AddEntity("z", typeof(CMSZone))
                //		.SetResultTransformer(new DistinctRootEntityResultTransformer()) as NHibernate.ISQLQuery)
                //		.AddJoin("zv", "z.ZoneValue")
                //		.SetParameter("websiteID", CurrentWebsite.Id)
                //		.SetParameterList("applicableReportIds", applicableReportIds); ;
                //
                //	var zone2 = q2.List<CMSZone>();
                //}
                //catch (Exception ex)
                //{
                //	ex.GetType();
                //}

                var query = session
                            .CreateSQLQuery(sqlGetWebsitePages)
                            .SetResultTransformer(Transformers.AliasToBean(typeof(CMSZoneDTO)))
                            .SetParameter("websiteID", CurrentWebsite.Id)
                            .SetParameterList("applicableReportIds", applicableReportIds);
                zones = query
                        .List <CMSZoneDTO>()
                        .Select(zoneDTO => new CMSZone()
                {
                    Id           = zoneDTO.ZoneId,
                    Type         = zoneDTO.ZoneType,
                    PageType     = zoneDTO.ZonePageType,
                    CMSZoneValue = new CMSZoneValue()
                    {
                        Path            = zoneDTO.ZoneValuePath.Replace("\\", "/"),
                        Product         = zoneDTO.ZoneValueProduct,
                        ReportName      = zoneDTO.ZoneValueReportName,
                        ReportGUID      = zoneDTO.ZoneValueReportGUID.ToLower(),
                        ZoneName        = zoneDTO.ZoneValueZoneName.ToLower(),
                        TemplateContent = zoneDTO.ZoneValueTemplateContent,
                    },
                }).ToList <CMSZone>();
            }

            //	Fill in CMS Zone objects with data from ReportManifest.
            foreach (var zone in zones)
            {
                if (zone.PageType == "Report")
                {
                    var report = CurrentWebsite.Reports.Where(r => r.Report.Name == zone.CMSZoneValue.ReportName).FirstOrDefault();
                    if (report == null)
                    {
                        //throw new InvalidOperationException("Something seriously went wrong. The reporting website can not be null.");
                        continue;
                    }
                    zone.CMSZoneValue.ReportGUID = report.Report.SourceTemplate.RptId.ToLower();
                }
            }

            return(zones);
        }
 public BaseDataService(IDomainSessionFactoryProvider provider)
 {
 }
Ejemplo n.º 25
0
 public WebsiteReportDataService(IDomainSessionFactoryProvider provider) : base(provider)
 {
     //var m = _getModelFromEnums<Audience, AudienceModel>();
 }
 public CategoryService(IDomainSessionFactoryProvider provider,
                        IConfigurationService conf)
 {
     Provider             = provider;
     ConfigurationService = conf;
 }
        private static bool ProcessSettings(WebsiteImportTypeEnum importType, WebsiteExport websiteExport, Website existingWebsite, Website newWebsite, IDomainSessionFactoryProvider provider, ILogWriter logger)
        {
            try
            {
                var config = ServiceLocator.Current.GetInstance <IConfigurationService>();
                var availableWebsiteThemes = config.MonahrqSettings.Themes.Cast <MonahrqThemeElement>();
                var defaultTheme           = availableWebsiteThemes.FirstOrDefault(x => x.Name.Contains("Default"));

                if (importType == WebsiteImportTypeEnum.File && websiteExport != null)
                {
                    newWebsite.OutPutDirectory = websiteExport.OutPutDirectory;

                    newWebsite.SelectedZipCodeRadii  = websiteExport.SelectedZipCodeRadii.ToList();
                    newWebsite.GeographicDescription = websiteExport.GeographicDescription;

                    newWebsite.AboutUsSectionSummary = websiteExport.AboutUsSectionSummary;
                    newWebsite.AboutUsSectionText    = websiteExport.AboutUsSectionText;

                    newWebsite.CustomFeedbackFormUrl            = websiteExport.CustomFeedbackFormUrl;
                    newWebsite.FeedBackEmail                    = websiteExport.FeedBackEmail;
                    newWebsite.FeedbackTopics                   = websiteExport.FeedbackTopics.ToList();
                    newWebsite.IncludeFeedbackFormInYourWebsite = websiteExport.IncludeFeedbackFormInYourWebsite;

                    newWebsite.IncludeGuideToolInYourWebsite = websiteExport.IncludeGuideToolInYourWebsite;

                    newWebsite.GoogleAnalyticsKey = websiteExport.GoogleAnalyticsKey;
                    newWebsite.GoogleMapsApiKey   = websiteExport.GoogleMapsApiKey;

                    newWebsite.BrowserTitle = websiteExport.BrowserTitle;
                    newWebsite.HeaderTitle  = websiteExport.HeaderTitle;
                    newWebsite.Keywords     = websiteExport.Keywords;

                    var theme = availableWebsiteThemes.FirstOrDefault(x => x.Name.ContainsCaseInsensitive(websiteExport.SelectedTheme));
                    var professionalWebsiteTheme = GetWebsiteTheme(Audience.Professionals, websiteExport.SelectedTheme, websiteExport.AccentColor, websiteExport.SelectedFont, websiteExport.BrandColor, theme);

                    if (!string.IsNullOrEmpty(websiteExport.ConsumerBrandColor))
                    {
                        var consumerWebsiteTheme = GetWebsiteTheme(Audience.Consumers, websiteExport.ConsumerSelectedTheme, websiteExport.AccentColor, websiteExport.ConsumerSelectedFont, websiteExport.ConsumerBrandColor, theme);
                        newWebsite.Themes.Add(consumerWebsiteTheme);
                    }
                    newWebsite.Themes.Add(professionalWebsiteTheme);
                    newWebsite.Menus = !string.IsNullOrEmpty(websiteExport.Menus.Value) ?
                                       JsonHelper.Deserialize <List <Menu> >(websiteExport.Menus.Value).Select(x => new WebsiteMenu {
                        Menu = x
                    }).ToList()
                         : new List <WebsiteMenu>();;

                    if (websiteExport.BannerImage != null)
                    {
                        // Encoding.UTF8.GetBytes(websiteExport.BannerImage.Image),
                        newWebsite.BannerImage = new WebsiteImage
                        {
                            Image     = websiteExport.BannerImage.Image,
                            MemeType  = websiteExport.BannerImage.MemeType,
                            ImagePath = websiteExport.BannerImage.Path
                        };
                    }

                    if (websiteExport.LogoImage != null)
                    {
                        //Encoding.UTF8.GetBytes(websiteExport.LogoImage.Image),
                        newWebsite.LogoImage = new WebsiteImage
                        {
                            Image     = websiteExport.LogoImage.Image,
                            MemeType  = websiteExport.LogoImage.MemeType,
                            ImagePath = websiteExport.LogoImage.Path
                        };
                    }

                    if (websiteExport.Hospitals != null && websiteExport.Hospitals.Any())
                    {
                        var hospitals     = new List <Hospital>();
                        var hositalIdList = websiteExport.Hospitals.Select(ds => ds.Id).ToList();

                        var hospitExportList = websiteExport.Hospitals
                                               .ToDictionary(wh => wh.ProviderId,
                                                             wh => new Holder {
                            Hospital = null, ProviderId = wh.ProviderId, Ccr = wh.Ccr
                        });

                        using (var session = provider.SessionFactory.OpenSession())
                        {
                            hospitals = session.CreateCriteria <Hospital>()
                                        .Add(Restrictions.In("State", newWebsite.StateContext.Cast <object>().ToArray()))
                                        .Add(Restrictions.And(Restrictions.Eq("IsArchived", false), Restrictions.Eq("IsDeleted", false)))
                                        .Future <Hospital>()
                                        .ToList();
                        }

                        if (hospitals.Any())
                        {
                            if (newWebsite.Hospitals == null)
                            {
                                newWebsite.Hospitals = new List <WebsiteHospital>();
                            }
                            foreach (var hospital in hospitals)
                            {
                                if (hospitExportList.Values.All(x => x.ProviderId.ToUpper() != hospital.CmsProviderID.ToUpper()))
                                {
                                    continue;
                                }

                                hospitExportList[hospital.CmsProviderID].Hospital = hospital;
                            }

                            foreach (var hospitalHolder in hospitExportList.Where(x => x.Value.Hospital != null).ToList())
                            {
                                newWebsite.Hospitals.Add(new WebsiteHospital
                                {
                                    Hospital = hospitalHolder.Value.Hospital,
                                    CCR      = hospitalHolder.Value.Ccr
                                });
                            }
                        }
                        else
                        {
                            newWebsite.Hospitals = new List <WebsiteHospital>();
                        }
                    }

                    if (websiteExport.NursingHomes != null && websiteExport.NursingHomes.Any())
                    {
                        var nursingHomes = new List <NursingHome>();
                        // var nursingHomeList = websiteExport.NursingHomes.Select(ds => ds.Id).ToList();

                        var nursingHomeExportList = websiteExport.NursingHomes.ToDictionary(h => h.ProviderId,
                                                                                            h => new Holder {
                            NursingHome = null
                        });

                        using (var session = provider.SessionFactory.OpenSession())
                        {
                            nursingHomes = session.CreateCriteria <NursingHome>()
                                           .Add(Restrictions.In("State", newWebsite.StateContext.Cast <object>().ToArray()))
                                           //.Add(Restrictions.Eq("IsDeleted",false))
                                           .Future <NursingHome>()
                                           .ToList();
                        }

                        if (nursingHomes.Any())
                        {
                            if (newWebsite.NursingHomes == null)
                            {
                                newWebsite.NursingHomes = new List <WebsiteNursingHome>();
                            }
                            foreach (var nursingHome in nursingHomes)
                            {
                                if (!nursingHomeExportList.ContainsKey(nursingHome.ProviderId))
                                {
                                    continue;
                                }

                                nursingHomeExportList[nursingHome.ProviderId].NursingHome = nursingHome;
                            }

                            foreach (var hospitalHolder in nursingHomeExportList.Where(x => x.Value != null && x.Value.NursingHome != null).ToList())
                            {
                                newWebsite.NursingHomes.Add(new WebsiteNursingHome
                                {
                                    NursingHome = hospitalHolder.Value.NursingHome
                                });
                            }
                        }
                        else
                        {
                            newWebsite.NursingHomes = new List <WebsiteNursingHome>();
                        }
                    }
                }
                else if (importType == WebsiteImportTypeEnum.Existing && existingWebsite != null)
                {
                    newWebsite.OutPutDirectory = existingWebsite.OutPutDirectory;

                    newWebsite.SelectedZipCodeRadii  = existingWebsite.SelectedZipCodeRadii.ToList();
                    newWebsite.GeographicDescription = existingWebsite.GeographicDescription;

                    newWebsite.AboutUsSectionSummary = existingWebsite.AboutUsSectionSummary;
                    newWebsite.AboutUsSectionText    = existingWebsite.AboutUsSectionText;

                    newWebsite.CustomFeedbackFormUrl            = existingWebsite.CustomFeedbackFormUrl;
                    newWebsite.FeedBackEmail                    = existingWebsite.FeedBackEmail;
                    newWebsite.FeedbackTopics                   = existingWebsite.FeedbackTopics.ToList();
                    newWebsite.IncludeFeedbackFormInYourWebsite = existingWebsite.IncludeFeedbackFormInYourWebsite;

                    newWebsite.IncludeGuideToolInYourWebsite = existingWebsite.IncludeGuideToolInYourWebsite;

                    newWebsite.GoogleAnalyticsKey = existingWebsite.GoogleAnalyticsKey;
                    newWebsite.GoogleMapsApiKey   = existingWebsite.GoogleMapsApiKey;

                    newWebsite.BrowserTitle = existingWebsite.BrowserTitle;
                    newWebsite.HeaderTitle  = existingWebsite.HeaderTitle;
                    newWebsite.Keywords     = existingWebsite.Keywords;

                    if (existingWebsite.Themes != null && existingWebsite.Themes.Any())
                    {
                        newWebsite.Themes = existingWebsite.Themes.Select(t => new WebsiteTheme
                        {
                            AudienceType    = t.AudienceType,
                            SelectedTheme   = t.SelectedTheme ?? defaultTheme.Name,
                            AccentColor     = t.AccentColor ?? defaultTheme.AccentColor,
                            BrandColor      = t.BrandColor ?? defaultTheme.BrandColor,
                            SelectedFont    = t.SelectedFont ?? "'Droid Sans', Arial, sans-serif;",
                            BackgroundColor = t.BackgroundColor ?? defaultTheme.BackgroundColor,
                            BodyTextColor   = t.BodyTextColor ?? defaultTheme.BodyTextColor,
                            LinkTextColor   = t.LinkTextColor ?? defaultTheme.LinkTextColor
                        }).ToList();
                    }

                    if (existingWebsite.Hospitals != null && existingWebsite.Hospitals.Any())
                    {
                        newWebsite.Hospitals = existingWebsite.Hospitals.Select(wh => new WebsiteHospital {
                            Hospital = wh.Hospital, CCR = wh.CCR, Index = wh.Index
                        })
                                               .ToList();
                    }

                    if (existingWebsite.NursingHomes != null && existingWebsite.NursingHomes.Any())
                    {
                        newWebsite.NursingHomes = existingWebsite.NursingHomes.Select(nh => new WebsiteNursingHome {
                            NursingHome = nh.NursingHome, Index = nh.Index
                        })
                                                  .ToList();
                    }

                    if (existingWebsite.BannerImage != null)
                    {
                        newWebsite.BannerImage = existingWebsite.BannerImage;
                    }

                    if (existingWebsite.LogoImage != null)
                    {
                        newWebsite.LogoImage = existingWebsite.LogoImage;
                    }
                }

                newWebsite.ActivityLog.Add(new ActivityLogEntry("Settings have be saved and/our updated.", DateTime.Now));

                return(true);
            }
            catch (Exception exc)
            {
                logger.Write(exc);
                return(false);
            }
        }
Ejemplo n.º 28
0
 public TopicService(IDomainSessionFactoryProvider factoryProvider) :
     base(factoryProvider)
 {
 }
        private static bool ProcessReports(WebsiteImportTypeEnum importType, WebsiteExport websiteExport, Website existingWebsite,
                                           Website newWebsite, IDomainSessionFactoryProvider provider, ILogWriter logger)
        {
            try
            {
                if (importType == WebsiteImportTypeEnum.File && websiteExport != null)
                {
                    var reports = new List <WebsiteReport>();

                    using (var session = provider.SessionFactory.OpenSession())
                    {
                        foreach (var wr in websiteExport.Reports.ToList())
                        {
                            var report = session.Query <Report>()
                                         .FirstOrDefault(r => r.Name.ToUpper() == wr.Name.ToUpper() &&
                                                         r.ReportType.ToUpper() == wr.ReportType.ToUpper());

                            if (report != null)
                            {
                                reports.Add(new WebsiteReport
                                {
                                    Report = report,
                                    DefaultSelectedYear = wr.DefaultSelectedYear,
                                    SelectedYears       = wr.SelectedYears,
                                });
                            }
                        }
                    }

                    if (reports.Any())
                    {
                        if (newWebsite.Reports == null)
                        {
                            newWebsite.Reports = new List <WebsiteReport>();
                        }
                        //newWebsite.Reports = reports;

                        if (newWebsite.Datasets.Any())
                        {
                            var targetNames = newWebsite.Datasets.DistinctBy(d => d.Dataset.Id).Select(d => d.Dataset.ContentType.Name).ToList();
                            foreach (var report in reports.ToList())
                            {
                                if (!report.Report.Datasets.Any(ds => ds.In(targetNames)))
                                {
                                    continue;
                                }
                                newWebsite.Reports.Add(report);
                            }
                        }
                        else
                        {
                            newWebsite.Reports = new List <WebsiteReport>();
                        }
                    }
                }
                else if (importType == WebsiteImportTypeEnum.Existing && existingWebsite != null)
                {
                    newWebsite.Reports = existingWebsite.Reports.DistinctBy(d => d.Report.Id).Select(wr =>
                                                                                                     new WebsiteReport
                    {
                        Report = wr.Report,
                        DefaultSelectedYear = wr.DefaultSelectedYear,
                        SelectedYears       = wr.SelectedYears,
                        Index = wr.Index
                    }).ToList();

                    //newWebsite.Reports.ForEach(wd => wd.Id = 0);
                }

                return(true);
            }
            catch (Exception exc)
            {
                logger.Write(exc);
                return(false);
            }
        }
Ejemplo n.º 30
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EntityService{T, TKey}"/> class.
 /// </summary>
 /// <param name="factoryProvider">The factory provider.</param>
 public EntityService(IDomainSessionFactoryProvider factoryProvider)
 {
     FactoryProvider = factoryProvider;
 }