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); } }
private static bool ProcessDetails(WebsiteImportTypeEnum importType, WebsiteExport websiteExport, Website existingWebsite, Website newWebsite, ILogWriter logger) { try { if (importType == WebsiteImportTypeEnum.File && websiteExport != null) { newWebsite.Name = string.Format("Copy of {0}", websiteExport.Name); newWebsite.StateContext = websiteExport.StateContext.ToList(); newWebsite.SelectedReportingStates = websiteExport.ReportingStates.ToList(); newWebsite.RegionTypeContext = websiteExport.RegionTypeContext; //newWebsite.CurrentStatus = websiteExport.CurrentStatus; newWebsite.Description = websiteExport.Description; newWebsite.ReportedYear = websiteExport.ReportedYear; newWebsite.ReportedQuarter = websiteExport.ReportedQuarterNullable; newWebsite.Audiences = websiteExport.Audiences.ToList(); newWebsite.DefaultAudience = websiteExport.DefaultAudienceNullable; } else if (importType == WebsiteImportTypeEnum.Existing && existingWebsite != null) { newWebsite.Id = 0; newWebsite.Name = string.Format("Copy of {0}", existingWebsite.Name); newWebsite.StateContext = existingWebsite.StateContext.ToList(); newWebsite.SelectedReportingStates = existingWebsite.SelectedReportingStates.ToList(); newWebsite.RegionTypeContext = existingWebsite.RegionTypeContext; //newWebsite.CurrentStatus = existingWebsite.CurrentStatus; newWebsite.Description = existingWebsite.Description; newWebsite.ReportedYear = existingWebsite.ReportedYear; newWebsite.ReportedQuarter = existingWebsite.ReportedQuarter; newWebsite.Audiences = existingWebsite.Audiences.ToList(); newWebsite.DefaultAudience = existingWebsite.DefaultAudience; } newWebsite.ActivityLog.Add(new ActivityLogEntry("Details created and/or updated", DateTime.Now)); return(true); } catch (Exception exc) { logger.Write(exc); return(false); } }
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); } }
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); } }
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); } }