public void AssignSelectedMeasure(WebsiteMeasure websiteMeasure) { TopicTypeEnum?topicType; IsMeasureTopicsEnabled = true; if (websiteMeasure.OriginalMeasure is NursingHomeMeasure) { topicType = TopicTypeEnum.NursingHome; IsMeasureTopicsEnabled = false; } else if (websiteMeasure.OriginalMeasure is HospitalMeasure) { topicType = TopicTypeEnum.Hospital; } else { topicType = null; } TopicsCollectionView = CollectionViewSource.GetDefaultView(WebsiteDataService.GetTopicViewModels(topicType).ToObservableCollection()) as ListCollectionView; SelectedMeasure = GenMeasureModel(websiteMeasure); }
private void LoadAvailableWebsitePagesFromBaseData() { var baseWebsitePages = WebsiteDataService.GetBaseDataWebsitePages(BDWebsitePageQueryExpression); var baseWebsitePageZones = WebsiteDataService.GetBaseDataWebsitePageZones(_ => true); foreach (var bWebsitePage in baseWebsitePages) { // Find the baseWebsitePage's WebsitePage in AvailableWebsitePages; if cannot find, add it to the AvailableWebsitePages list. var aWebsitePageModel = ManageViewModel.AllAvailableWebsitePages.FirstOrDefault(wpm => wpm.WebsitePageName == bWebsitePage.Name); if (aWebsitePageModel == null) { aWebsitePageModel = new WebsitePageModel(new WebsitePage(bWebsitePage), false); ManageViewModel.AllAvailableWebsitePages.Add(aWebsitePageModel); } else { aWebsitePageModel.WebsitePages.AddIfUnique(new WebsitePage(bWebsitePage), (a, b) => a.Audience == b.Audience); } // Find the WebsitePage and BaseWebsitePageZones (using Name[from above] and Audience[below]) var aWebsitePage = aWebsitePageModel.WebsitePages.First(wp => wp.Audience == bWebsitePage.Audience); var bZones = baseWebsitePageZones.Where(bZone => bZone.WebsitePageName == aWebsitePage.Name && bZone.Audience == aWebsitePage.Audience); // Add BaseZones to their respective WebsitePage in AllAvailableWebsitePages. foreach (var bZone in bZones) { var aZone = aWebsitePage.Zones.FirstOrDefault(z => z.Name == bZone.Name); if (aZone == null) { aZone = new WebsitePageZone(bZone); aWebsitePage.Zones.Add(aZone); } } } }
private async Task <WebsiteController> GetWebsiteController() { var entityMapper = await InstanceFactory.GetInstance <WebsiteManagementEntityMapper>(); var websiteRepository = new WebsiteRepository(await GetDbContext(), entityMapper); var websiteValidator = await InstanceFactory.GetInstance <WebsiteValidator>(); var websiteDataService = new WebsiteDataService(websiteRepository, websiteValidator, new PagingValidator()); return(new WebsiteController(websiteDataService)); }
public void Setup() { var services = new ServiceCollection(); services.AddDbContext <WebsitesContext>(options => options.UseInMemoryDatabase(), ServiceLifetime.Singleton); services.AddSingleton <WebsiteDataService>(); var serviceProvider = services.BuildServiceProvider(); testContext = serviceProvider.GetService <WebsitesContext>(); testContext.SeedData().GetAwaiter().GetResult(); websiteService = new WebsiteDataService(testContext); }
private void ProcessWebsitesAndDatasets() { if (CurrentWebsite == null || InstalledDatasets == null) { return; } CurrentWebsite.Datasets.Clear(); // put the selected datasets into the website to be saved foreach (var ids in InstalledDatasets) { foreach (var wds in ids.WebsiteDatasets) { //if ((wds.DataSetFile.Dataset != null && CurrentWebsite.Datasets.All(d => d.Dataset.Id != wds.DataSetFile.Dataset.Id) // this is the simple object I think we SHOULD save for each website dataset... //var dataSetFile = new DataSetFile(wds.DataSetFile.DatasetId, wds.DataSetFile.Name, wds.DataSetFile.Year, wds.DataSetFile.Quarter); //if(CurrentWebsite.Datasets.All(ds => ds.Dataset.Id == )) // BUT this is what the current infrastructure requires... //var import = new DatasetImport {DatasetId = wds.DataSetFile.DatasetId}; //import.DatasetType = new TARGET() ????????????????? //import.ImportDate = IMPORT DATE ??????????????? var websiteDataset = new WebsiteDataset(); if (wds.DataSetFile.Dataset != null) { websiteDataset.Dataset = wds.DataSetFile.Dataset; } else if (wds.DataSetFile.DatasetId > 0) { WebsiteDataService.GetEntityById <Dataset>(wds.DataSetFile.DatasetId, (record, exception) => { if (exception == null && record != null) { websiteDataset.Dataset = record; } }); } if (websiteDataset.Dataset != null && CurrentWebsite.Datasets.All(d => d.Dataset.Id != websiteDataset.Dataset.Id)) { CurrentWebsite.Datasets.Add(websiteDataset); } } } RaisePropertyChanged(() => CurrentWebsite.Datasets); RaisePropertyChanged(() => ManageViewModel.WebsiteViewModel.Website.Datasets); }
void FillCombos(bool refresh = false) { if (!refresh) { Audiences = WebsiteDataService.Audiences.Select(o => new SelectListItem { Value = ((Audience)o.Value).ToString(), Text = o.Name, Model = o }).ToObservableCollection(); Audiences.RemoveAt(0); Audiences.Insert(0, new SelectListItem { Value = Audience.None.ToString(), Text = DEFAULT_AUDIENCE_SELECT_TEXT, Model = null }); Years = BaseDataService.ReportingYears.Select(o => new SelectListItem { Value = o, Text = o, Model = o }).ToObservableCollection(); Years.RemoveAt(0); Years.Insert(0, new SelectListItem { Value = string.Empty, Text = DEFAULT_YEAR_SELECT_TEXT, Model = null }); Quarters = BaseDataService.ReportingQuarters.Select(o => new SelectListItem { Value = o.Id, Text = o.Text, Model = o }).ToObservableCollection(); Quarters.RemoveAt(0); Quarters.Insert(0, new SelectListItem { Value = -1, Text = DEFAULT_QUARTER_SELECT_TEXT, Model = null }); RegionContextItems = new ObservableCollection <SelectListItem>(); // RegionContextItems.Insert( 0, new SelectListItem { Text= "Please Select Region", Value = null, Model = null } ); RegionContextItems.Add(new SelectListItem { Text = Inflector.Titleize(typeof(HospitalServiceArea).Name), Value = typeof(HospitalServiceArea).Name, Model = null }); RegionContextItems.Add(new SelectListItem { Text = Inflector.Titleize(typeof(HealthReferralRegion).Name), Value = typeof(HealthReferralRegion).Name, Model = null }); RegionContextItems.Add(new SelectListItem { Text = Inflector.Titleize(typeof(CustomRegion).Name), Value = typeof(CustomRegion).Name, Model = null }); } StateContextItems = new ObservableCollection <SelectListItem>(); // StateContextItems.Insert(0, new SelectListItem { Text = "Please Select State(s)", Value = null, Model = null }); StateContextItems = WebsiteDataService.GetStates().ToObservableCollection(); // else // StateContextItems = // WebsiteDataService.GetApplicableReportingStates( // ManageViewModel.WebsiteViewModel.Website.StateContext.ToArray()).ToObservableCollection(); }
/// <summary> /// Executes the delete command. /// </summary> /// <param name="vm">The vm.</param> private void ExecuteDeleteCommand(WebsiteViewModel vm) { if (MessageBox.Show( string.Format("Are you sure you want to delete this website: {0}", vm.Website.Name), "Delete Website?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No) { return; } if (!WebsiteDataService.DeleteWebsite(vm.Website)) { // publish so the WebsiteCollectionView will refresh without this web Events.GetEvent <WebsiteDeletedEvent>().Publish(vm); } }
public override void Save() { // TODO: change this to preferred validation model. These string messages are per the I-4 spec. if (!ValidateAllRequiredFields()) { return; } UpdateModelFromProperties(); CurrentWebsite.ActivityLog.Add(new ActivityLogEntry("Details created and/or updated", DateTime.Now)); bool saveErrorsOccurred; string eventMessage; if (!CurrentWebsite.IsPersisted) // If the website is not persisted, then add new, otherwise, update { // Add New saveErrorsOccurred = WebsiteDataService.SaveNewWebsite(ManageViewModel.WebsiteViewModel.Website); eventMessage = String.Format("Website {0} has been added", CurrentWebsite.Name); } else { // Update //// If the website is edited, the current status must change in order to allow for the dependency check to be readily available when publishing //WebsiteViewModel.Website.CurrentStatus = WebsiteState.Initialized; saveErrorsOccurred = WebsiteDataService.UpdateWebsite(CurrentWebsite); eventMessage = String.Format("Website {0} has been updated", CurrentWebsite.Name); } if (!saveErrorsOccurred) // If no errors in saving website, then publish events { // publish events so all the associated view models will get the updated item EventAggregator.GetEvent <WebsiteCreatedOrUpdatedEvent>().Publish(new ExtendedEventArgs <GenericWebsiteEventArgs>(new GenericWebsiteEventArgs() { Website = base.ManageViewModel.WebsiteViewModel, Message = eventMessage })); // EventAggregator.GetEvent<UpdateWebsiteTabContextEvent>().Publish( //new UpdateTabContextEventArgs() //{ // WebsiteViewModel = base.ManageViewModel.WebsiteViewModel, // ExecuteViewModel = WebsiteTabViewModels.Details //}); } }
public override void Continue() { ProcessWebsitesAndDatasets(); // update available website measures var datasetNames = CurrentWebsite.Datasets.Select(d => d.Dataset.ContentType.Name).ToList(); var availableMeasurs = WebsiteDataService.GetMeasureViewModels(m => m.IsOverride == false && datasetNames.Contains(m.Owner.Name)).ToList(); CurrentWebsite.Measures = CurrentWebsite.Measures.RemoveNullValues().ToList(); for (var i = CurrentWebsite.Measures.Count - 1; i >= 0; i--) { var item = CurrentWebsite.Measures[i]; if (availableMeasurs.All(m => m.Measure.MeasureCode != item.ReportMeasure.MeasureCode)) { CurrentWebsite.Measures.Remove(item); } } foreach (var item in availableMeasurs) { if (CurrentWebsite.Measures.All(m => m.ReportMeasure.MeasureCode != item.Measure.MeasureCode)) { CurrentWebsite.Measures.Add(new WebsiteMeasure() { OriginalMeasure = item.Measure, OverrideMeasure = null, IsSelected = true }); } } ListExtensions.ForEach(CurrentWebsite.Measures, wm => { if (!wm.IsPersisted && wm.ReportMeasure.Name.StartsWith("IP") && (wm.ReportMeasure.MeasureTitle.Clinical.ContainsIgnoreCase("median") || wm.ReportMeasure.MeasureTitle.Policy.ContainsIgnoreCase("median"))) { wm.IsSelected = false; } }); //EventAggregator.GetEvent<UpdateWebsiteTabContextEvent>().Publish(new UpdateTabContextEventArgs() //{ // WebsiteViewModel = base.ManageViewModel.WebsiteViewModel, // ExecuteViewModel = WebsiteTabViewModels.Datasets //}); }
public override void RefreshUIElements() { base.RefreshUIElements(); if (SelectedReports == null || !SelectedReports.Any()) { return; } foreach (var report in SelectedReports) // Refresh associated websites { if (report.Websites == null) { report.Websites = new ObservableCollection <string>(); } report.Websites = WebsiteDataService.GetWebsiteNamesForReport(report.Report.Id).ToObservableCollection(); } }
// clear WebsiteViewModel.Website.Datasets; populate it from the OC of selected datasets; save it public override void Save() { string message; bool errorsOccurredWhenSaving; ProcessWebsitesAndDatasets(); if (CurrentWebsite.Datasets != null && CurrentWebsite.Datasets.Any()) { //WebsiteViewModel.Website.CurrentStatus = WebsiteState.HasDatasources; base.ManageViewModel.WebsiteViewModel.Website.ActivityLog.Add(new ActivityLogEntry("Datsets selected and/or updated.", DateTime.Now)); } //else //{ // WebsiteViewModel.Website.ActivityLog.Add(new ActivityLogEntry("Measures removed and/or updated.", DateTime.Now)); //} if (!CurrentWebsite.IsPersisted) { errorsOccurredWhenSaving = WebsiteDataService.SaveNewWebsite(CurrentWebsite); message = String.Format("Website {0} has been added", CurrentWebsite.Name); } else { // If the website is edited, the current status must change in order to allow for the dependency check to be readily available when publishing base.ManageViewModel.WebsiteViewModel.Website.CurrentStatus = WebsiteState.Initialized; errorsOccurredWhenSaving = WebsiteDataService.UpdateWebsite(CurrentWebsite); message = String.Format("Website {0} has been updated", CurrentWebsite.Name); } // If no errors, move to the next tab if (!errorsOccurredWhenSaving) { EventAggregator.GetEvent <WebsiteCreatedOrUpdatedEvent>() .Publish(new ExtendedEventArgs <GenericWebsiteEventArgs>(new GenericWebsiteEventArgs { Website = base.ManageViewModel.WebsiteViewModel, Message = message })); //EventAggregator.GetEvent<UpdateWebsiteTabContextEvent>().Publish(new UpdateTabContextEventArgs() { WebsiteViewModel = base.ManageViewModel.WebsiteViewModel }); } }
/// <summary> /// Saves the Measure Model /// </summary> /// <param name="measureToSave"></param> private void SaveMeasureModel(MeasureModel measureToSave, bool isBatchLoading = false) { if (!isBatchLoading) { measureToSave.UpdateForMeasureOverride(); } //measureToSave.ReconcileTopics(this, measureToSave.MeasureOverwrite); measureToSave.WasMeasureOverrideEdited = true; measureToSave.MeasureOverwrite.MeasureTitle.Selected = (measureToSave.IsPlainTitleSelected) ? SelectedMeasuretitleEnum.Plain : SelectedMeasuretitleEnum.Clinical; if (!isBatchLoading) { ReverseHydrateTopics(measureToSave.MeasureOverwrite); } WebsiteDataService.SaveMeasureOverride(measureToSave.MeasureOverwrite, (result, error) => { if (error == null) { var msg = string.Format("Measure \"{0}\" was successfully overwritten. Please save website \"{1}\".", measureToSave.MeasureOverwrite.MeasureTitle.Clinical, base.ManageViewModel.WebsiteViewModel.Website.Name); EventAggregator.GetEvent <GenericNotificationEvent>().Publish(msg); if (!isBatchLoading) { HydrateTopics(measureToSave.MeasureOverwrite); } //EventAggregator.GetEvent<ForceTabSaveEvent>().Publish(true); measureToSave.MeasureOverwrite = result; } else { EventAggregator.GetEvent <ErrorNotificationEvent>().Publish(error); } }); if (measureToSave.WebsiteMeasure != null) { measureToSave.WebsiteMeasure.OverrideMeasure = measureToSave.MeasureOverwrite; } }
private void ExecuteExportCommand(WebsiteViewModel vm) { try { if (vm == null) { return; } //if (WebsiteDataService == null) //Events.GetEvent<ErrorNotificationEvent>().Publish(); base.Logger.Information($"Exporting configuration for website \"{vm.DisplayName}\""); Website websiteToExport = null; using (ApplicationCursor.SetCursor(Cursors.Wait)) { WebsiteDataService.GetEntityById <Website>(vm.Website.Id, (website, exception) => { if (exception == null) { websiteToExport = website; } else { Events.GetEvent <ErrorNotificationEvent>().Publish(exception); } }); if (websiteToExport == null) { return; } WebsiteExporter.Export(websiteToExport); } } catch (Exception exc) { Events.GetEvent <ErrorNotificationEvent>().Publish(exc); } }
public override void Save() { UpdateVmWithSelectedReports(); string message; bool errorsOccurredWhenSaving; if (!ManageViewModel.WebsiteViewModel.Website.IsPersisted) { errorsOccurredWhenSaving = WebsiteDataService.SaveNewWebsite(ManageViewModel.WebsiteViewModel.Website); message = string.Format("Website {0} has been added", ManageViewModel.WebsiteViewModel.Website.Name); } else { // If the website is edited, the current status must change in order to allow for the dependency check to be readily available when publishing ManageViewModel.WebsiteViewModel.Website.CurrentStatus = WebsiteState.Initialized; errorsOccurredWhenSaving = WebsiteDataService.UpdateWebsite(ManageViewModel.WebsiteViewModel.Website); message = string.Format("Website {0} has been updated", ManageViewModel.WebsiteViewModel.Website.Name); } // If no errors, move to the next tab if (!errorsOccurredWhenSaving) { RefreshUIElements(); var eventArgs = new ExtendedEventArgs <GenericWebsiteEventArgs> { Data = new GenericWebsiteEventArgs { Website = ManageViewModel.WebsiteViewModel, Message = message } }; EventAggregator.GetEvent <WebsiteCreatedOrUpdatedEvent>().Publish(eventArgs); //EventAggregator.GetEvent<UpdateWebsiteTabContextEvent>().Publish( // new UpdateTabContextEventArgs // { // WebsiteViewModel = base.ManageViewModel.WebsiteViewModel, // ExecuteViewModel = WebsiteTabViewModels.Reports // }); } }
/// <summary> /// Saves the complete Website object to DB. /// </summary> public override void Save() { string message = string.Empty; if (!WebsiteDataService.SaveOrUpdateWebsite(CurrentWebsite)) { message = CurrentWebsite.IsPersisted ? String.Format("Website {0} has been updated", CurrentWebsite.Name) : String.Format("Website {0} has been added", CurrentWebsite.Name); } if (!string.IsNullOrEmpty(message)) { var eventArgs = new ExtendedEventArgs <GenericWebsiteEventArgs> { Data = new GenericWebsiteEventArgs { Website = ManageViewModel.WebsiteViewModel, Message = message } }; EventAggregator.GetEvent <WebsiteCreatedOrUpdatedEvent>().Publish(eventArgs); } }
private void LoadData() { //var baseData = ServiceLocator.Current.GetInstance<IBaseDataService>(); //var quarters = baseData.ReportingQuarters.Where(data => data.Id != null); if (WebsiteViewModels != null) { WebsiteViewModels.Clear(); } SortEnumeration = new ObservableCollection <string> { _websiteDisplayName, _WebSiteReportedPeriod, _WebsiteTargetAudience, _WebsiteStatusInProgress, _WebsitestatusComplete }; WebsiteViewModels = WebsiteDataService.GetAllWebsites(); WebsitesCVS = new CollectionViewSource { Source = WebsiteViewModels }; WebsiteCount = WebsiteViewModels.Count; }
///// <summary> ///// Determines whether this instance can execute. ///// </summary> ///// <returns></returns> //private bool CanExecute() //{ // return true; //} ///// <summary> ///// Executes the import command. ///// </summary> //private void ExecuteImportCommand() //{ // RegionManager.RequestNavigate(RegionNames.MainContent, new Uri(ViewNames.WebsiteImportView, UriKind.Relative)); //} public void LoadData() { // For each installed dataset, for each imported file, find the matches in the selected datasets saved in the website... try { // could move this into the loop and pass outer.Id, but here it's a single query var importedDatasets = WebsiteDataService.GetDatasetSummary(); //if (InstalledDatasets == null || !InstalledDatasets.Any()) //{ var datasets = WebsiteDataService.GetInstalledDatasets(); // create an OC of datasets for binding in the view InstalledDatasets = datasets.Distinct().Select(target => new InstalledDataset { Id = target.Id, IsTrendingEnabled = target.IsTrendingEnabled, NameOfInstalledDataset = target.Name, WebsiteViewModel = ManageViewModel.WebsiteViewModel, Manager = ManageViewModel, Events = EventAggregator }).ToObservableCollection(); //} foreach (var outer in InstalledDatasets) { // it should return an empty ToList if there are none, but just to be safe if (!importedDatasets.Any(x => x.DatasetTypeId == outer.Id)) { var specialRow = new ImportedFile(outer.Id, false, outer.NameOfInstalledDataset, "", "", "", "", ImportedFileRowTypes.NoneImported); outer.ImportedFiles.Add(specialRow); } else { var specialRow = new ImportedFile(outer.Id, false, outer.NameOfInstalledDataset, "", "", "", "", ImportedFileRowTypes.PleaseSelect); outer.ImportedFiles.Add(specialRow); foreach (var inner in importedDatasets.Where(x => x.DatasetTypeId == outer.Id)) { // This imported dataset is 'unselected' if there are no datasets in the website, or if none have id == inner.DatasetTypeId bool selected = ManageViewModel.WebsiteViewModel != null && CurrentWebsite != null && CurrentWebsite.Datasets != null && CurrentWebsite.Datasets.Any(d => d.Dataset.ContentType.Id == inner.DatasetTypeId && d.Dataset.Id == inner.DatasetImport.Id); var name = string.Format("{0}: {1}", outer.NameOfInstalledDataset, inner.Name); var websiteDataSet = (ManageViewModel.WebsiteViewModel != null && CurrentWebsite != null && CurrentWebsite.Datasets != null && CurrentWebsite.Datasets.Any(ds => ds.Dataset.Id == inner.DatasetImport.Id)) ? CurrentWebsite.Datasets.SingleOrDefault(ds => ds.Dataset.Id == inner.DatasetImport.Id) : null; var file = new ImportedFile(inner.DatasetId, selected, name, inner.Year.ToString(), inner.Quarter, inner.VersionMonth, inner.VersionYear, ImportedFileRowTypes.Normal, websiteDataSet != null ? websiteDataSet.Dataset : null); // Add selected files to the website list of datasets; add unselected files to the list of "available" files if (selected) { outer.WebsiteDatasets.Add(file); } else { outer.ImportedFiles.Add(file); } } } // select the first row outer.SelectedImportedFile = outer.ImportedFiles[0]; } } catch (Exception ex) { EventAggregator.GetEvent <ErrorNotificationEvent>().Publish(ex); } }
private ObservableCollection <string> _getWebsites() { return(WebsiteDataService.GetWebsiteNamesForReport(Id).ToObservableCollection()); }
public IActionResult Index(InputWords words) { //10 watkow, 11s int threads = 16; var database = new WebsiteDataService(); var ways = new List <List <Word_n_Sim> >(); var begin = DateTime.Now; var time = new TimeSpan(0); try { int temp = 0; var result = database.wordnet_go(new List <Word_n_Sim>() { new Word_n_Sim("0", words.BeginWord) }, words.BeginWord, new List <List <Word_n_Sim> >() { }, ref temp, thisLock); result = database.wordnet_go(new List <Word_n_Sim>() { new Word_n_Sim("0", words.EndWord) }, words.EndWord, new List <List <Word_n_Sim> >() { }, ref temp, thisLock); } catch (Exception) { var endtime = DateTime.Now; time = endtime - begin; ViewBag.ways = ways; ViewBag.multiply_simmilarity = 0; ViewBag.time = time; return(View()); } var first_search = new List <Word_n_Sim>(); first_search.Add(new Word_n_Sim("0", words.BeginWord)); var search_lst = new List <List <Word_n_Sim> >(); search_lst.Add(first_search); int length = int.MaxValue; var alrdy_searched = new Dictionary <string, int>(); var tasklist = new List <Task <List <List <Word_n_Sim> > > >(); while (true) { if (tasklist.Count == 0) { if (search_lst.Count == 0 || (search_lst.Count > 0 && search_lst.First().Count >= length)) { //Console.WriteLine("\nPrzerywam!"); break; } } if (tasklist.Count < threads) { if (search_lst.Count > 0 && search_lst.First().Count < length) { var way = search_lst.First(); search_lst.Remove(way); if (way.Count() < length) { if (alrdy_searched.ContainsKey(way.Last().Word) == false) { alrdy_searched.Add(way.Last().Word, way.Count); var task = Task.Run(() => database.wordnet_go(way, words.EndWord, ways, ref length, thisLock)); tasklist.Add(task); } else if (alrdy_searched[way.Last().Word] >= way.Count) { alrdy_searched[way.Last().Word] = way.Count; var task = Task.Run(() => database.wordnet_go(way, words.EndWord, ways, ref length, thisLock)); tasklist.Add(task); } } } } if (tasklist.Count >= threads || search_lst.Count == 0 || (search_lst.Count > 0 && search_lst.First().Count >= length)) { //Console.WriteLine("\nCzekam na zakonczenie " + tasklist.Count + " watkow."); Task.WaitAll(tasklist.ToArray()); foreach (var singletask in tasklist) { var result = singletask.Result; if (result.Count > 0) { search_lst = search_lst.Concat(result).ToList(); } } tasklist = new List <Task <List <List <Word_n_Sim> > > >(); } } NumberFormatInfo provider = new NumberFormatInfo(); provider.NumberDecimalSeparator = "."; List <double> multiply_simmilarity = new List <double>(); foreach (var way in ways) { double multiply = 1; foreach (var step in way) { if (step.Similarity != "0") { multiply *= Convert.ToDouble(step.Similarity, provider); } } multiply_simmilarity.Add(multiply); } var end = DateTime.Now; time = end - begin; Console.WriteLine("\n" + words.BeginWord + " -> " + words.EndWord); Console.WriteLine("Time: " + time.TotalSeconds); ViewBag.ways = ways; ViewBag.multiply_simmilarity = multiply_simmilarity; ViewBag.time = time; return(View()); }