public IActionResult GcpAnalyze(List <IFormFile> files) { var googleCloudVisionLib = new GoogleCloudVisionLib(); var pageRects = files.SelectMany(file => { var stream = file.OpenReadStream(); if (file.FileName.ToLower().Contains(".pdf")) { return(googleCloudVisionLib.ConvertPdfToImage(stream)); } List <PageRect> pageRects = new List <PageRect> { googleCloudVisionLib.OcrAnalyze(stream) }; return(pageRects); }).ToList(); var viewModel = new AnalyzeViewModel { PageRects = pageRects }; return(View("Analyze", viewModel)); }
public WinSQLAnalyse(object WinPrincipal, AnalyzeViewModel ViewModel) { InitializeComponent(); this.ViewModel = ViewModel; this.WinPrincipal = WinPrincipal as Window; lbSelected.KeyDown += this.ViewModel.ListBox_KeyDown; lbSelected.SelectionChanged += this.ViewModel.lbSelected_SelectionChanged; this.ViewModel.dgvFieldSecundary = this.dgvFieldSecundary; this.ViewModel.dgvFieldPrimary = this.dgvFieldPrimary; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); _analyzeViewModel = new AnalyzeViewModel(); _recordViewModel = new RecordViewModel(); _voiceTextView = (EditText)(FindViewById(Resource.Id.voiceTextView)); _analyzeTextView = (TextView)(FindViewById(Resource.Id.analyzedTextView)); var recordButton = (Button)(FindViewById(Resource.Id.recordButton)); recordButton.Click += async(object sender, EventArgs e) => { _voiceTextView.Text = string.Empty; _analyzeTextView.Text = string.Empty; _activityTask = new TaskCompletionSource <Intent>(); _voiceTextView.Text = await _recordViewModel.RecordVoice(this, _activityTask); }; var analyzeButton = (Button)(FindViewById(Resource.Id.analyzeButton)); analyzeButton.Click += async(object sender, EventArgs e) => { var analyzedInfoList = await _analyzeViewModel.AnalyzeTextAsync(_voiceTextView.Text); var spannableString = new SpannableString(_voiceTextView.Text); foreach (var analyzedInfo in analyzedInfoList) { if (analyzedInfo.Item2 > 0.3) { continue; } var voiceText = _voiceTextView.Text; var foundIndex = voiceText.IndexOf(analyzedInfo.Item1, StringComparison.CurrentCultureIgnoreCase); if (foundIndex == -1) { continue; } spannableString.SetSpan(new ForegroundColorSpan(Color.Red), foundIndex, foundIndex + analyzedInfo.Item1.Length, SpanTypes.ExclusiveExclusive); } _analyzeTextView.SetText(spannableString, TextView.BufferType.Spannable); }; }
public IActionResult Analyze(AnalyzeViewModel model) { if (model.UseMinWordLen && model.MinWordLen < 1) { return(BadRequest("مقدار حداقل تعداد حروف هر کلمه باید بیش از ۱ باشد.")); } var longestWords = _analyzeService.LongestWordsAnalyzer(model.Text, new AnalyzeConfigDto() { UseMinWordLen = model.UseMinWordLen, MinWordLen = model.MinWordLen, UseStopwords = model.UseStopwords, StopwordId = model.StopwordId, ParseConnectedWords = model.ParseConnectedWords }); var mostRepetitiveWords = _analyzeService.MostRepetitiveWordsAnalyzer(model.Text, new AnalyzeConfigDto() { UseMinWordLen = model.UseMinWordLen, MinWordLen = model.MinWordLen, UseStopwords = model.UseStopwords, StopwordId = model.StopwordId, ParseConnectedWords = model.ParseConnectedWords }); var textWordCount = _analyzeService.CountTextWordsAnalyzer(model.Text, new AnalyzeConfigDto() { UseMinWordLen = model.UseMinWordLen, MinWordLen = model.MinWordLen, UseStopwords = model.UseStopwords, StopwordId = model.StopwordId, ParseConnectedWords = model.ParseConnectedWords }); var distinctTextWordCount = _analyzeService.CountTextDistinctWordsAnalyzer(model.Text, new AnalyzeConfigDto() { UseMinWordLen = model.UseMinWordLen, MinWordLen = model.MinWordLen, UseStopwords = model.UseStopwords, StopwordId = model.StopwordId, ParseConnectedWords = model.ParseConnectedWords }); return(Ok(new { longestWords, mostRepetitiveWords, textWordCount, distinctTextWordCount })); }
public ActionResult Analyze(string screenName) { if (!string.IsNullOrEmpty(screenName)) { if (Twitter.GetUser(screenName) != null) { if (Twitter.GetUser(screenName).Protected != true) { screenName = screenName.ToLower(); ViewBag.ScreenName = screenName; ViewBag.ImageUrl = Twitter.GetAvatar(screenName); ViewBag.TweetCount = Twitter.GetTweetCount(screenName); ViewBag.FollowersCount = Twitter.GetFollowerCount(screenName); ViewBag.FollowingCount = Twitter.GetFollowingCount(screenName); if (ViewBag.TweetCount > 0) { var model = new AnalyzeViewModel() { MostLikedStatuses = Twitter.GetMostLikedTweets(screenName).Take(10), MostReTweetStatuses = Twitter.GetMostReTweeted(screenName).Take(10) }; return(View(model)); } return(View()); } else { screenName = screenName.ToLower(); ViewBag.ScreenName = screenName; ViewBag.ImageUrl = Twitter.GetAvatar(screenName); ViewBag.TweetCount = Twitter.GetTweetCount(screenName); ViewBag.FollowersCount = Twitter.GetFollowerCount(screenName); ViewBag.FollowingCount = Twitter.GetFollowingCount(screenName); return(View()); } } else { ViewBag.Hata = "Böyle bir kullanıcı bulunamadı."; return(View()); } } return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> Index(string url) { var httpClient = new CbHttpClient(); var analyzeResult = await httpClient.RunAsync(url); var jsSerializer = new JavaScriptSerializer(); var jsonData = jsSerializer.Serialize(analyzeResult); var model = new AnalyzeViewModel { FilterType = "Achromatomaly", OriginalImagePath = analyzeResult.Normal.Url, FilterImagePath = analyzeResult.Achromatomaly.Url, JsonData = new HtmlString(jsonData) }; return(View(model)); }
private void PrepareView() { _recordViewModel = new RecordViewModel(); _analyzeViewModel = new AnalyzeViewModel(); AnalyzeButton.TouchUpInside += async(object sender, EventArgs e) => { var analyzedInfoList = await _analyzeViewModel.AnalyzeTextAsync(VoiceTextField.Text); var attributedStringM = new NSMutableAttributedString(VoiceTextField.Text); foreach (var analyzedInfo in analyzedInfoList) { if (analyzedInfo.Item2 > 0.3) { continue; } var voiceText = VoiceTextField.Text; var foundIndex = voiceText.IndexOf(analyzedInfo.Item1, StringComparison.CurrentCultureIgnoreCase); if (foundIndex == -1) { continue; } var analyzedAttributes = new UIStringAttributes(); analyzedAttributes.ForegroundColor = UIColor.Red; analyzedAttributes.UnderlineStyle = NSUnderlineStyle.Thick; attributedStringM.SetAttributes(analyzedAttributes, new NSRange(foundIndex, analyzedInfo.Item1.Length)); } var attributedString = new NSAttributedString(attributedStringM); AnalyzedLabel.AttributedText = attributedString; }; var tapGesture = new UITapGestureRecognizer(async(UITapGestureRecognizer obj) => { VoiceTextField.Text = string.Empty; VoiceTextField.Text = await _recordViewModel.RecordVoice(); }); VoiceImageView.AddGestureRecognizer(tapGesture); }
public AnalyzeCommand(AnalyzeViewModel ViewModel) { this.ViewModel = ViewModel; bWorkerTables = new BackgroundWorker(); bWorkerExecuteAnalyze = new BackgroundWorker(); this.ViewModel.servers.Add("SEARCHING SERVERS SQL . . ."); this.ViewModel.currentConexao.xServerName = "SEARCHING SERVERS SQL . . ."; this.ViewModel.AddCommand = new RelayCommand(execute: i => this.AddConexao(), canExecute: i => CanTesteAndADD()); this.ViewModel.TestarCommand = new RelayCommand(execute: i => this.TestConnection(), canExecute: i => CanTesteAndADD()); this.ViewModel.NextCommand = new RelayCommand(execute: i => this.Next(i), canExecute: i => CanNext()); this.ViewModel.TpAnalyseCommand = new RelayCommand(execute: i => this.SetTpAnalyse(i), canExecute: i => true); this.ViewModel.SelectAllCommand = new RelayCommand(execute: i => this.SelectAllCheckBox(), canExecute: i => true); this.ViewModel.FindTableCommand = new RelayCommand(execute: i => this.FindTable(), canExecute: i => CanFindTable()); this.ViewModel.ExecuteAnalyzeCommand = new RelayCommand(execute: i => this.ExecuteAnalyze(), canExecute: i => CanExecuteAnalyze()); this.ViewModel.fecharCommand = new RelayCommand(execute: i => Static.FecharWindow(i), canExecute: i => true); this.ViewModel.MinimizeCommand = new RelayCommand(execute: i => Static.MinimizeWindow(i), canExecute: i => true); this.ViewModel.FieldNotFoundCommand = new RelayCommand(execute: i => this.ViewModel.SetVisibleFields(this.ViewModel.currentModel.currentTablePrincipal), canExecute: i => true); // Pesquisa servidores SQL this.ViewModel.bWorkerPesquisa.DoWork += bWorkerPesquisa_DoWork; this.ViewModel.bWorkerPesquisa.RunWorkerAsync(); this.bWorkerTables.DoWork += bWorkerTables_DoWork; this.bWorkerExecuteAnalyze.DoWork += bWorkerExecuteAnalyze_DoWork; this.bWorkerExecuteAnalyze.RunWorkerCompleted += bWorkerExecuteAnalyze_RunWorkerCompleted; }
public void シナリオ_OK() { // Moqを使ったモック // インターフェイスでインスタンス生成 var eMock = new Mock <IDataBase>(); // Moqを使用しメソッドの戻り値を定義 eMock.Setup(x => x.GetDataBaseValue()).Returns(100); // ViewModelはMoqを使用してインスタンスを生成する var eViewModel = new AnalyzeViewModel(eMock.Object); // テストの実行 // 初期化テスト Assert.AreEqual("", eViewModel.ATextBoxText); Assert.AreEqual("", eViewModel.BTextBoxText); Assert.AreEqual("", eViewModel.ResultLabelText); // 分析ボタンのテスト eViewModel.ATextBoxText = "2"; eViewModel.BTextBoxText = "5"; eViewModel.Analyze(); // ①MSTestの構文 Assert.AreEqual("107", eViewModel.ResultLabelText); // ②ChainingAssertionの構文 ①②とも同じだが②が可読性が高い eViewModel.ResultLabelText.Is("107"); // 例外のテスト eViewModel.ATextBoxText = "-1"; eViewModel.BTextBoxText = "5"; // これだけで例外のテストが出来るが、戻り値からメッセージのテストもできる var ex = AssertEx.Throws <InputException>(() => eViewModel.Analyze()); ex.Message.Is("入力値異常"); }
public ActionResult Analyze(AnalyzeViewModel model) { SEOResultViewModel resultViewModel = new SEOResultViewModel(); if (!ModelState.IsValid) { resultViewModel.IsSuccess = false; resultViewModel.Error = "Invalid input"; return(Json(resultViewModel)); } if (String.IsNullOrEmpty(model.PageContent) && String.IsNullOrEmpty(model.PageUrl)) { resultViewModel.IsSuccess = false; resultViewModel.Error = "Page URL or page content is required"; return(Json(resultViewModel)); } if (model.Options == null) { resultViewModel.IsSuccess = false; resultViewModel.Error = "No analysis option is selected"; return(Json(resultViewModel)); } try { WebPage page; if (!String.IsNullOrEmpty(model.PageUrl)) { page = PageFactory.PageFromUrl(model.PageUrl); } else { page = PageFactory.PageFromText(model.PageContent); } var options = new List <Constants.AnalysisOption>(); foreach (var o in model.Options) { switch (o) { case "countExternalLink": options.Add(Constants.AnalysisOption.GetExternalLinks); break; case "countWords": options.Add(Constants.AnalysisOption.CountWords); break; case "countMetaTag": options.Add(Constants.AnalysisOption.CountMetaTags); break; default: break; } } SEOService seoService = new SEOService(page, options); var result = seoService.Analyze(); resultViewModel.IsSuccess = true; List <WordCount> wordCounts = new List <WordCount>(); foreach (var word in result.WordsOccurences) { wordCounts.Add(new WordCount { Word = word.Key, Total = word.Value }); } resultViewModel.WordCount = wordCounts; List <WordCount> metaTagsCounts = new List <WordCount>(); foreach (var word in result.MetaTagOccurences) { metaTagsCounts.Add(new WordCount { Word = word.Key, Total = word.Value }); } resultViewModel.MetaTagsCount = metaTagsCounts; resultViewModel.ExternalLinks = result.ExternalLinks.ConvertAll(e => new Link { Address = e }); } catch (Exception ex) { resultViewModel.IsSuccess = false; resultViewModel.Error = ex.Message; return(Json(resultViewModel)); } return(Json(resultViewModel)); }
public static void SetControls(AnalyzeViewModel viewModel, ObservableCollection<Result> results, WebBrowser wbChart, bool isPie, TextBlock tb, StackPanel stpTranOrCust) { _results = results; _wbChart = wbChart; _isPie = isPie; _tb = tb; _viewModel = viewModel; }