private void SetUnsuccessfulParseEvals(IWfiWordform wordform, Opinions opinion) { var segmentAnalyses = new HashSet <IAnalysis>(); foreach (ISegment seg in wordform.OccurrencesBag) { segmentAnalyses.UnionWith(seg.AnalysesRS); } foreach (IWfiAnalysis analysis in wordform.AnalysesOC) { // ensure that used analyses have a user evaluation if (segmentAnalyses.Contains(analysis) || analysis.MeaningsOC.Any(gloss => segmentAnalyses.Contains(gloss))) { m_userAgent.SetEvaluation(analysis, Opinions.approves); } if (analysis.GetAgentOpinion(m_parserAgent) == Opinions.noopinion) { if (analysis.GetAgentOpinion(m_userAgent) == Opinions.noopinion) { analysis.Delete(); } else if (opinion != Opinions.noopinion) { m_parserAgent.SetEvaluation(analysis, opinion); } } } }
/// <summary> /// Initialize the combo contents. /// </summary> public void SetupCombo() { CheckDisposed(); ITsStrBldr builder = TsStrBldrClass.Create(); m_fInitializing = true; int wordformHvo = m_owner.GetWordformHvoOfAnalysis(); // Add the analyses, and recursively the other items. foreach (int hvoAnalysis in m_cache.GetVectorProperty(wordformHvo, (int)WfiWordform.WfiWordformTags.kflidAnalyses, false)) { IWfiAnalysis wa = (IWfiAnalysis)CmObject.CreateFromDBObject(m_cache, hvoAnalysis, CmObject.GetTypeFromFullClassName(m_cache, "SIL.FieldWorks.FDO.Ling.WfiAnalysis"), false, false); Opinions o = wa.GetAgentOpinion( m_cache.LangProject.DefaultUserAgent); // skip any analysis the user has disapproved. if (o != Opinions.disapproves) { AddAnalysisItems(hvoAnalysis); AddSeparatorLine(); } } // Add option to clear the analysis altogeter. AddItem(wordformHvo, MakeSimpleString(ITextStrings.ksNewAnalysis), false, WfiWordform.kclsidWfiWordform); // Add option to reset to the default AddItem(0, MakeSimpleString(ITextStrings.ksUseDefaultAnalysis), false); m_fInitializing = false; }
/// <summary> /// Initialize the combo contents. /// </summary> public void SetupCombo() { CheckDisposed(); m_fInitializing = true; var wordform = m_owner.GetWordformOfAnalysis(); // Add the analyses, and recursively the other items. foreach (var wa in wordform.AnalysesOC) { Opinions o = wa.GetAgentOpinion( m_cache.LangProject.DefaultUserAgent); // skip any analysis the user has disapproved. if (o != Opinions.disapproves) { AddAnalysisItems(wa); AddSeparatorLine(); } } // Add option to clear the analysis altogeter. AddItem(wordform, MakeSimpleString(ITextStrings.ksNewAnalysis), false, WfiWordformTags.kClassId); // Add option to reset to the default AddItem(null, MakeSimpleString(ITextStrings.ksUseDefaultAnalysis), false); m_fInitializing = false; }
public void AddOpinion(int value, string description, string customerId) { var isAlreadyRatedByUser = Opinions.Any(o => o.CustomerId == customerId); if (isAlreadyRatedByUser) { throw new AlreadyRatedException(Id, customerId); } var opinion = new Opinion(value, description, customerId); _opinions.Add(opinion); }
private void OnReturnFromNewOpinion(OpinionVmi opinion) { Opinions.Insert(0, opinion); }
/// <summary> /// Tells whether the giving agent has approved or disapproved of this analysis, or has not given an opinion. /// </summary> /// <param name="agent"></param> /// <param name="opinion"></param> /// <returns>one of the enumerated values in Opinions.</returns> public void SetAgentOpinion(ICmAgent agent, Opinions opinion) { int wasAccepted = 0; //now set the opinion to what it should be switch(opinion) { case Opinions.approves: wasAccepted = 1; break; case Opinions.disapproves: wasAccepted = 0; break; case Opinions.noopinion: wasAccepted = 2; break; } agent.SetEvaluation(Hvo, wasAccepted, ""); }
private List<int> AnalysesWithHumanEvaluation(Opinions opinion) { List<int> matchingHvos = new List<int>(); ICmAgent humanAgent = m_cache.LangProject.DefaultUserAgent; // Dummy wordforms shouldn't have any analyses. if (IsDummyObject) return matchingHvos; foreach(IWfiAnalysis wa in AnalysesOC) { if (wa.GetAgentOpinion(humanAgent) == opinion) matchingHvos.Add(wa.Hvo); } return matchingHvos; }
public void SortOpinions() { Opinions = Opinions.OrderByDescending(o => o.DateCreated); }
private void SetUnsuccessfulParseEvals(IWfiWordform wordform, Opinions opinion) { var segmentAnalyses = new HashSet<IAnalysis>(); foreach (ISegment seg in wordform.OccurrencesBag) segmentAnalyses.UnionWith(seg.AnalysesRS); foreach (IWfiAnalysis analysis in wordform.AnalysesOC) { // ensure that used analyses have a user evaluation if (segmentAnalyses.Contains(analysis) || analysis.MeaningsOC.Any(gloss => segmentAnalyses.Contains(gloss))) m_userAgent.SetEvaluation(analysis, Opinions.approves); if (analysis.GetAgentOpinion(m_parserAgent) == Opinions.noopinion) { if (analysis.GetAgentOpinion(m_userAgent) == Opinions.noopinion) analysis.Delete(); else if (opinion != Opinions.noopinion) m_parserAgent.SetEvaluation(analysis, opinion); } } }
public void SecondStepExtractOpinions() { bool moreOpinionsExist = false; int opinionNumberPage = 1; string opinionUrl = "opinie-"; string opinionFirstPage = "#tab=reviews"; OpinionDataHTML opinionData = new OpinionDataHTML(); Dictionary <int, List <string> > dictionaryWithHTMLOpinions = new Dictionary <int, List <string> >(); ProductData mainData = new ProductData(url, pathToFileWebsiteTxt); this.Brand = mainData.Brand; this.BriefDescription = mainData.BriefDescription; this.NumberOfReviews = mainData.NumberOfReviews; this.Price = mainData.Price; this.ProductName = mainData.ProductName; this.Rating = mainData.Rating; this.Type = mainData.Type; this.Variants = mainData.Variants; moreOpinionsExist = mainData.MoreOpinionsExist; if (moreOpinionsExist) { bool isMorePage = ExistMoreThanOnePage(pathToFileWebsiteTxt); if (opinionNumberPage == 1) { string subUrl = string.Format( "{0}/{1}", url, opinionFirstPage ); ConvertHTMLToTxt(subUrl); GetHTMLOpinions(pathToFileWebsiteTxt, opinionData); } while (isMorePage) { opinionNumberPage++; string subUrl = string.Format( "{0}/{1}{2}", url, opinionUrl, opinionNumberPage.ToString() ); ConvertHTMLToTxt(subUrl); GetHTMLOpinions(pathToFileWebsiteTxt, opinionData); isMorePage = ExistMoreThanOnePage(pathToFileWebsiteTxt); } } else { GetHTMLOpinions(pathToFileWebsiteTxt, opinionData); } dictionaryWithHTMLOpinions = opinionData.DictionaryWithHTMLOpinions; Opinions = new Opinions(dictionaryWithHTMLOpinions, pathToFileOneOpinion); RemoveFilesFromTemp(); }
private IEnumerable<IWfiAnalysis> AnalysesWithHumanEvaluation(Opinions opinion) { ICmAgent humanAgent = m_cache.LangProject.DefaultUserAgent; return from wa in AnalysesOC where wa.GetAgentOpinion(humanAgent) == opinion select wa; }
/// <summary> /// Tells whether the giving agent has approved or disapproved of this analysis, or has not given an opinion. /// </summary> /// <param name="agent"></param> /// <param name="opinion"></param> /// <returns>one of the enumerated values in Opinions.</returns> public void SetAgentOpinion(ICmAgent agent, Opinions opinion) { //int wasAccepted = 0; ////now set the opinion to what it should be //switch (opinion) //{ // case Opinions.approves: // wasAccepted = 1; // break; // case Opinions.disapproves: // wasAccepted = 0; // break; // case Opinions.noopinion: // wasAccepted = 2; // break; //} agent.SetEvaluation(this, opinion); }
public double GetRating() => Opinions.Any() ? Opinions.Select(o => o.OfferRate.Rating).Sum() / Opinions.Count : 0;