public void MobileDictionary_PrimitiveKey_PrimitiveValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary <string, int>(); d.Add("a", 12343); d.Add("z", 943204); d.Add("b", 77878); d.Add("x", 42343); d.Add("r", 45345); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary <string, int>)MobileFormatter.Deserialize(buffer); context.Assert.IsTrue(r.ContainsKey("a")); context.Assert.IsTrue(r.ContainsKey("z")); context.Assert.IsTrue(r.ContainsKey("b")); context.Assert.IsTrue(r.ContainsKey("x")); context.Assert.IsTrue(r.ContainsKey("r")); context.Assert.AreEqual(d["a"], r["a"]); context.Assert.AreEqual(d["z"], r["z"]); context.Assert.AreEqual(d["b"], r["b"]); context.Assert.AreEqual(d["x"], r["x"]); context.Assert.AreEqual(d["r"], r["r"]); context.Assert.Success(); context.Complete(); }
public void MobileDictionary_PrimitiveKey_PrimitiveValue_BF() { UnitTestContext context = GetContext(); var d = new MobileDictionary <string, int>(); d.Add("a", 12343); d.Add("z", 943204); d.Add("b", 77878); d.Add("x", 42343); d.Add("r", 45345); var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); var buffer = new System.IO.MemoryStream(); formatter.Serialize(buffer, d); buffer.Position = 0; var r = (MobileDictionary <string, int>)formatter.Deserialize(buffer); context.Assert.IsTrue(r.ContainsKey("a")); context.Assert.IsTrue(r.ContainsKey("z")); context.Assert.IsTrue(r.ContainsKey("b")); context.Assert.IsTrue(r.ContainsKey("x")); context.Assert.IsTrue(r.ContainsKey("r")); context.Assert.AreEqual(d["a"], r["a"]); context.Assert.AreEqual(d["z"], r["z"]); context.Assert.AreEqual(d["b"], r["b"]); context.Assert.AreEqual(d["x"], r["x"]); context.Assert.AreEqual(d["r"], r["r"]); context.Assert.Success(); context.Complete(); }
public void MobileDictionary_PrimitiveKey_MobileValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary <string, MockReadOnly>(); d.Add("a", new MockReadOnly(1)); d.Add("z", new MockReadOnly(2)); d.Add("b", new MockReadOnly(3)); d.Add("x", new MockReadOnly(4)); d.Add("r", new MockReadOnly(5)); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary <string, MockReadOnly>)MobileFormatter.Deserialize(buffer); context.Assert.IsTrue(r.ContainsKey("a")); context.Assert.IsTrue(r.ContainsKey("z")); context.Assert.IsTrue(r.ContainsKey("b")); context.Assert.IsTrue(r.ContainsKey("x")); context.Assert.IsTrue(r.ContainsKey("r")); context.Assert.AreEqual(d["a"].Id, r["a"].Id); context.Assert.AreEqual(d["z"].Id, r["z"].Id); context.Assert.AreEqual(d["b"].Id, r["b"].Id); context.Assert.AreEqual(d["x"].Id, r["x"].Id); context.Assert.AreEqual(d["r"].Id, r["r"].Id); context.Assert.Success(); context.Complete(); }
/// <summary> /// Use this if you have a list of lines (linenumber, text) in a given language. /// </summary> public LineInfosCriteria(string languageText, IDictionary <int, string> lineInfos) { LanguageText = languageText; LineInfos = new MobileDictionary <int, string>(); foreach (var line in lineInfos) { LineInfos.Add(line.Key, line.Value); } }
public void Handle(ReviewedPhraseEvent message) { History.Events.ThinkingAboutTargetEvent.Publish(System.Guid.Empty); //GET RELEVANT INFO FROM THE EVENT MESSAGE var phraseId = message.GetDetail <Guid>(History.HistoryResources.Key_PhraseId); var phraseText = message.GetDetail <string>(History.HistoryResources.Key_PhraseText); var languageText = message.GetDetail <string>(History.HistoryResources.Key_LanguageText); var feedbackAsDouble = message.GetDetail <double>(History.HistoryResources.Key_FeedbackAsDouble); //WE ONLY WANT FOREIGN PHRASES if (languageText.ToLower() == _CurrentUserNativeLanguageText.ToLower()) { return; } //CHECK TO SEE IF WE ALREADY HAVE A BELIEF ABOUT THIS PHRASE var cachedBelief = (from belief in _MostRecentPhraseBeliefsCache where belief.PhraseId == phraseId || belief.Phrase.Text == phraseText select belief).FirstOrDefault(); if (cachedBelief != null) { //WE HAVE A CACHED BELIEF FOR THIS PHRASE ALREADY //SO JUST REPLACE THE STRENGTH WITH THE NEW ONE, BUT //DO *NOT* SAVE THE BELIEF. THIS IS JUST A CACHE. cachedBelief.Strength = feedbackAsDouble; } else { if (_PseudoBeliefsCache == null) { _PseudoBeliefsCache = new MobileDictionary <string, Tuple <string, double> >(); } var languageAndFeedbackTuple = new Tuple <string, double>() { Item1 = languageText, Item2 = feedbackAsDouble }; //WE DO *NOT* HAVE A CACHED BELIEF FOR THIS PHRASE ALREADY //BUT WE NEED TO CHECK IF WE ALREADY HAVE A PSEUDO BELIEF //CACHED FIRST. if (_PseudoBeliefsCache.ContainsKey(phraseText)) { //WE'VE REVIEWED THIS PHRASE BEFORE, SO REPLACE THE //BELIEF STRENGTH _PseudoBeliefsCache[phraseText] = languageAndFeedbackTuple; } else { //THIS IS THE FIRST TIME WE'VE REVIEWED THE PHRASE _PseudoBeliefsCache.Add(phraseText, languageAndFeedbackTuple); } } }
/// <summary> /// DOES not create the dictionaries Ids, Strings, Ints, Doubles, even if these are not utilized. /// Create your own ctor if you want to keep from creating these would-be empty dictionaries. /// </summary> /// <param name="duration">event duration</param> /// <param name="text">text describing the event</param> /// <param name="details">key/value pairs of details of event. e.g. ("ChildId", 9579019B-A958-40EF-9021-D622FCD17DE7), ("ParentLanguage", "English")</param> public HistoryEventBase(TimeSpan duration, params KeyValuePair <string, object>[] details) : this() { Duration = duration; Ids = new MobileDictionary <string, Guid>(); Strings = new MobileDictionary <string, string>(); Ints = new MobileDictionary <string, int>(); Doubles = new MobileDictionary <string, double>(); AddDetails(details); }
public void MobileDictionary_MobileKey_PrimitiveValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary <MockReadOnly, string>(); d.Add(new MockReadOnly(1), "v1"); d.Add(new MockReadOnly(2), "v2"); d.Add(new MockReadOnly(3), "v3"); d.Add(new MockReadOnly(4), "v4"); d.Add(new MockReadOnly(5), "v5"); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary <MockReadOnly, string>)MobileFormatter.Deserialize(buffer); foreach (var key in r.Keys) { context.Assert.AreEqual(key.Id, Convert.ToInt32(r[key].Substring(1))); } context.Assert.Success(); context.Complete(); }
public void MobileDictionary_MobileKey_MobileValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary <MockReadOnly, MockReadOnly>(); d.Add(new MockReadOnly(21), new MockReadOnly(1)); d.Add(new MockReadOnly(22), new MockReadOnly(2)); d.Add(new MockReadOnly(23), new MockReadOnly(3)); d.Add(new MockReadOnly(24), new MockReadOnly(4)); d.Add(new MockReadOnly(25), new MockReadOnly(5)); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary <MockReadOnly, MockReadOnly>)MobileFormatter.Deserialize(buffer); foreach (var key in r.Keys) { context.Assert.AreEqual(key.Id, r[key].Id + 20); } context.Assert.Success(); context.Complete(); }
public void DataPortal_Create(Criteria.PhraseTextsCriteria criteria) { RetrieverId = Guid.NewGuid(); if (ExistenceDictionary == null) { ExistenceDictionary = new MobileDictionary <string, bool>(); } PhraseList allPhrases = PhraseList.GetAll(); var allPhrasesInLanguage = (from phrase in allPhrases where phrase.Language.Text == criteria.LanguageText select phrase); var phraseTextsNoDuplicates = criteria.PhraseTexts.Distinct(); foreach (var phraseText in phraseTextsNoDuplicates) { var count = (from phrase in allPhrasesInLanguage where phrase.Text == phraseText select phrase).Count(); var exists = count > 0; ExistenceDictionary.Add(phraseText, exists); } }
/// <summary> /// Gets the item values dictionary. /// </summary> private MobileDictionary<string, object> GetItemValuesDictionary() { var selectedFields = ModifyItemsPage.FieldsList.Where(f => f.IsSelected); var itemValuesDictionary = new MobileDictionary<string, object>(); foreach (ModifyItemsOptionsWizardPage.SelectableField field in selectedFields) { var vm = field.FieldVM; if (vm is MultiCrossRefFieldViewModel) { var link = (bool) vm.GetPropertyValue(ModifyItemsOptionsWizardPage.LinkProperty); var list = new MobileList<int>(); list.AddRange(from crossRefInfo in (IEnumerable<ICrossRefItemInfo>) vm.Value select link ? crossRefInfo.Id : -crossRefInfo.Id); if (itemValuesDictionary.ContainsKey(vm.Property.Name)) ((MobileList<int>) itemValuesDictionary[vm.Property.Name]).AddRange(list); else itemValuesDictionary.Add(vm.Property.Name, list); } else { itemValuesDictionary.Add(vm.Property.Name, vm.Value); } } return itemValuesDictionary; }
public Criteria(Dictionary <string, string> pFilters) { Filters = new MobileDictionary <string, string>(pFilters ?? new Dictionary <string, string>()); }
public void LoadProperty(string propertyName, object value) { ChartDescriptorExp = value as MobileDictionary<string, ChartPanel>; }
public void MobileDictionary_MobileKey_MobileValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary<MockReadOnly, MockReadOnly>(); d.Add(new MockReadOnly(21), new MockReadOnly(1)); d.Add(new MockReadOnly(22), new MockReadOnly(2)); d.Add(new MockReadOnly(23), new MockReadOnly(3)); d.Add(new MockReadOnly(24), new MockReadOnly(4)); d.Add(new MockReadOnly(25), new MockReadOnly(5)); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary<MockReadOnly, MockReadOnly>)MobileFormatter.Deserialize(buffer); foreach (var key in r.Keys) context.Assert.AreEqual(key.Id, r[key].Id + 20); context.Assert.Success(); context.Complete(); }
public void MobileDictionary_MobileKey_PrimitiveValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary<MockReadOnly, string>(); d.Add(new MockReadOnly(1), "v1"); d.Add(new MockReadOnly(2), "v2"); d.Add(new MockReadOnly(3), "v3"); d.Add(new MockReadOnly(4), "v4"); d.Add(new MockReadOnly(5), "v5"); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary<MockReadOnly, string>)MobileFormatter.Deserialize(buffer); foreach (var key in r.Keys) context.Assert.AreEqual(key.Id, Convert.ToInt32(r[key].Substring(1))); context.Assert.Success(); context.Complete(); }
public void MobileDictionary_PrimitiveKey_MobileValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary<string, MockReadOnly>(); d.Add("a", new MockReadOnly(1)); d.Add("z", new MockReadOnly(2)); d.Add("b", new MockReadOnly(3)); d.Add("x", new MockReadOnly(4)); d.Add("r", new MockReadOnly(5)); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary<string, MockReadOnly>)MobileFormatter.Deserialize(buffer); context.Assert.IsTrue(r.ContainsKey("a")); context.Assert.IsTrue(r.ContainsKey("z")); context.Assert.IsTrue(r.ContainsKey("b")); context.Assert.IsTrue(r.ContainsKey("x")); context.Assert.IsTrue(r.ContainsKey("r")); context.Assert.AreEqual(d["a"].Id, r["a"].Id); context.Assert.AreEqual(d["z"].Id, r["z"].Id); context.Assert.AreEqual(d["b"].Id, r["b"].Id); context.Assert.AreEqual(d["x"].Id, r["x"].Id); context.Assert.AreEqual(d["r"].Id, r["r"].Id); context.Assert.Success(); context.Complete(); }
private static ChartPanel GetChartDescriptor(IEditableRoot instance, string exprFieldName, string spcFieldName, ChartTypesEnum chartType, int subgroupSize, int dataPoints = 0) { ChartPanel chartDescriptor = null; MobileDictionary<string, ChartPanel> dict = null; if (!exprFieldName.Contains("_Rule")) { dict = instance.GetValueByPropertyName("ChartDescriptorExp") as MobileDictionary<string, ChartPanel>; if (dict != null) dict.TryGetValue(string.Format("{0}{1}", exprFieldName, spcFieldName), out chartDescriptor); else dict = new MobileDictionary<string, ChartPanel>(); } if (chartDescriptor == null) { chartDescriptor = SpcManager.CreateChartDescriptor(chartType); chartDescriptor.DataPoints = dataPoints; chartDescriptor.SubgroupSize = subgroupSize; chartDescriptor = MethodCaller.CallFactoryMethod(instance.GetType(), "GetSampleDataForSPC", spcFieldName, instance, chartType, chartDescriptor, true) as ChartPanel; if (!exprFieldName.Contains("_Rule")) { ChartPanel chartPanel; if (dict.TryGetValue(string.Format("{0}{1}", exprFieldName, spcFieldName), out chartPanel)) dict[string.Format("{0}{1}", exprFieldName, spcFieldName)] = chartDescriptor; else dict.Add(string.Format("{0}{1}", exprFieldName, spcFieldName), chartDescriptor); instance.LoadValueByPropertyName("ChartDescriptorExp", dict); } } else { chartDescriptor.DataPoints = dataPoints; chartDescriptor.SubgroupSize = subgroupSize; chartDescriptor = MethodCaller.CallFactoryMethod(instance.GetType(), "GetSampleDataForSPC", spcFieldName, instance, chartType, chartDescriptor, true) as ChartPanel; } return chartDescriptor; }
public IHttpActionResult ModifyOperation(string process, string ids, bool countOnly, IList<DetailsSaveFieldModel> fields) { if (string.IsNullOrEmpty(process) || string.IsNullOrEmpty(ids) || fields.Count == 0) return BadRequest(); try { var processIds = new MobileList<int>(Array.ConvertAll(ids.Split(','), int.Parse)); var itemsDictionary = new MobileDictionary<string, object>(fields.Count); foreach (var field in fields) { itemsDictionary.Add(field.SystemName, GetFieldValue(field)); } IBulkCommandInfo ret = BulkModifyCommand.ExecuteModify(process, processIds, itemsDictionary, countOnly); if (ret == null) throw new Exception(LanguageService.Translate("Error_OperationFailed")); if (ret.ErrorList != null && ret.ErrorList.Any()) throw new Exception(string.Join(Environment.NewLine, ret.ErrorList)); return Ok(ret.ResultsDictionary[string.Empty].Count); } catch (Exception ex) { return InternalServerError(ex); } }
public DefaultPhrasePercentKnownAdvisor() { Cache = new MobileDictionary <PhraseTextLanguageTextPair, double>(); History.HistoryPublisher.Ton.SubscribeToEvents(this); }
/// <summary> /// Gets the most recent phrase beliefs for all of the current user's phrases. /// </summary> /// <returns></returns> private async Task <PhraseEdit> GetRandomUnknownPhrase(MultiLineTextList multiLineTextList) { History.Events.ThinkingAboutTargetEvent.Publish(System.Guid.Empty); if (_MostRecentPhraseBeliefsCache == null) { throw new Exception("MostRecentPhraseBeliefsCache should not be null"); } if (_PseudoBeliefsCache == null) { _PseudoBeliefsCache = new MobileDictionary <string, Tuple <string, double> >(); } PhraseEdit retPhrase = null; //GET OUR UNKNOWNS OUT OF OUR CACHES var threshold = double.Parse(StudyResources.DefaultKnowledgeThreshold); var unknownBeliefsFromCache = (from belief in _MostRecentPhraseBeliefsCache where belief.Strength < threshold && PhraseTextIsInMultiLineTextList(belief.Phrase.Text, multiLineTextList) select belief).ToList(); var unknownPseudoBeliefsFromCache = (from entry in _PseudoBeliefsCache where entry.Value.Item2 < threshold && PhraseTextIsInMultiLineTextList(entry.Key, multiLineTextList) select entry).ToList(); //GET OUR UNKNOWN PHRASES THAT DONT HAVE A BELIEF OR PSUEDO BELIEF REGISTERED WITH THEM YET var unregisteredUnknownPhrases = GetUnregisteredUnknownPhraseBeliefs(multiLineTextList, unknownBeliefsFromCache, unknownPseudoBeliefsFromCache); var indexToPick = -1; //TOTAL COUNT = MOST RECENT PHRASE BELIEFS + PSEUDO BELIEFS COUNT + PHRASES WITHOUT BELIEFS var totalCountUnknown = 0; totalCountUnknown += unknownBeliefsFromCache.Count; if (_PseudoBeliefsCache != null) { totalCountUnknown += unknownPseudoBeliefsFromCache.Count; } totalCountUnknown += unregisteredUnknownPhrases.Count; if (totalCountUnknown == 0) { //EVERYTHING IS KNOWN, SO RETURN NULL return(null); } //IF WE TRY TO PICK FROM THE PSEUDO CACHE, THEN IT IS POSSIBLE //THAT OUR PHRASETEXT NO LONGER MATCHES A PHRASE. THEREFORE, WE //SET UP A LOOP TO KEEP TRYING TO PICK A RANDOM PHRASE FROM THE //ENTIRE LIST OF BOTH CACHES. IF WE FAIL TO DO THIS, THEN WE WILL //PICK FROM JUST THE ACTUAL BELIEF CACHE (NOT THE PSEUDO). var maxTries = int.Parse(StudyResources.MaxTriesToPickRandomFromEntireList); for (int i = 0; i < maxTries; i++) { History.Events.ThinkingAboutTargetEvent.Publish(System.Guid.Empty); indexToPick = RandomPicker.Ton.NextInt(0, totalCountUnknown); if (indexToPick < unknownBeliefsFromCache.Count) { //WE PICK FROM THE PHRASE BELIEF CACHE var belief = unknownBeliefsFromCache[indexToPick]; return(belief.Phrase); } else if (indexToPick < (unknownBeliefsFromCache.Count + unknownPseudoBeliefsFromCache.Count)) { //WE _TRY_ TO PICK FROM THE PSUEDO CACHE indexToPick -= unknownBeliefsFromCache.Count; var beliefEntry = unknownPseudoBeliefsFromCache[indexToPick]; var phraseText = beliefEntry.Key; var languageText = beliefEntry.Value.Item1; var phrase = await PhraseEdit.NewPhraseEditAsync(languageText); phrase.Text = phraseText; var phraseId = Guid.NewGuid(); phrase.Id = phraseId; var retriever = await PhrasesByTextAndLanguageRetriever.CreateNewAsync(phrase); retPhrase = retriever.RetrievedSinglePhrase; if (retPhrase != null) { //WE HAVE FOUND A RETURN PHRASE, SO BREAK OUT OF OUR ATTEMPT LOOP return(retPhrase); } } else { //WE PICK FROM THE UNKNOWN PHRASES WITHOUT BELIEFS I'M CONVERTING THIS //TO LIST THIS LATE BECAUSE WE DON'T NEED IT AS A LIST UNTIL NOW. var asList = unregisteredUnknownPhrases.ToList(); indexToPick -= (unknownBeliefsFromCache.Count + unknownPseudoBeliefsFromCache.Count); retPhrase = unregisteredUnknownPhrases[indexToPick]; return(retPhrase); } } //IF WE'VE GOTTEN THIS FAR, THEN WE COULDN'T FIND AN UNKNOWN PHRASE Services.PublishMessageEvent("Couldn't retrieve unknown phrase.", MessagePriority.Medium, MessageType.Warning); return(null); }
public void MobileDictionary_PrimitiveKey_PrimitiveValue() { UnitTestContext context = GetContext(); var d = new MobileDictionary<string, int>(); d.Add("a", 12343); d.Add("z", 943204); d.Add("b", 77878); d.Add("x", 42343); d.Add("r", 45345); byte[] buffer = MobileFormatter.Serialize(d); var r = (MobileDictionary<string, int>)MobileFormatter.Deserialize(buffer); context.Assert.IsTrue(r.ContainsKey("a")); context.Assert.IsTrue(r.ContainsKey("z")); context.Assert.IsTrue(r.ContainsKey("b")); context.Assert.IsTrue(r.ContainsKey("x")); context.Assert.IsTrue(r.ContainsKey("r")); context.Assert.AreEqual(d["a"], r["a"]); context.Assert.AreEqual(d["z"], r["z"]); context.Assert.AreEqual(d["b"], r["b"]); context.Assert.AreEqual(d["x"], r["x"]); context.Assert.AreEqual(d["r"], r["r"]); context.Assert.Success(); context.Complete(); }
public void MobileDictionary_PrimitiveKey_PrimitiveValue_BF() { UnitTestContext context = GetContext(); var d = new MobileDictionary<string, int>(); d.Add("a", 12343); d.Add("z", 943204); d.Add("b", 77878); d.Add("x", 42343); d.Add("r", 45345); var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); var buffer = new System.IO.MemoryStream(); formatter.Serialize(buffer, d); buffer.Position = 0; var r = (MobileDictionary<string, int>)formatter.Deserialize(buffer); context.Assert.IsTrue(r.ContainsKey("a")); context.Assert.IsTrue(r.ContainsKey("z")); context.Assert.IsTrue(r.ContainsKey("b")); context.Assert.IsTrue(r.ContainsKey("x")); context.Assert.IsTrue(r.ContainsKey("r")); context.Assert.AreEqual(d["a"], r["a"]); context.Assert.AreEqual(d["z"], r["z"]); context.Assert.AreEqual(d["b"], r["b"]); context.Assert.AreEqual(d["x"], r["x"]); context.Assert.AreEqual(d["r"], r["r"]); context.Assert.Success(); context.Complete(); }
public void DataPortal_Create(Criteria.ListOfPhrasesCriteria criteria) { //WE ARE GOING TO GET ALL THE PHRASES //WE WILL THEN ITERATE THROUGH OUR CRITERIA PHRASES, POPULATING OUR //RETRIEVED PHRASES //INITIALIZE RetrieverId = Guid.NewGuid(); if (RetrievedPhrases == null) { RetrievedPhrases = new MobileDictionary <Guid, PhraseEdit>(); } ////GET ALL PHRASES (FOR THIS USER ONLY) //PhraseList allPhrases = PhraseList.GetAll(); //KEY = TEXT, VALUE = PHRASELIST CONTAINING ALL PHRASES THAT CONTAIN THE KEY TEXT var phraseLists = new Dictionary <string, PhraseList>(); for (int i = 0; i < criteria.Phrases.Count; i++) { var criteriaPhrase = criteria.Phrases[i]; //IF WE'VE ALREADY DONE THIS PHRASE, THEN GO ON TO THE NEXT ONE, SO WE DON'T DUPLICATE WORK if (RetrievedPhrases.ContainsKey(criteriaPhrase.Id)) { continue; } //INITIALIZE RETRIEVED PHRASE PhraseEdit retrievedPhrase = null; //GET ALL PHRASES THAT CONTAIN THIS PHRASE, IN ANY LANGUAGE var allPhrasesContainingPhrase = PhraseList.GetAllContainingText(criteriaPhrase.Text); //IF WE FOUND A PHRASE/MULTIPLE PHRASES, THEN WE WANT THE ONE THAT MATCHES OUR //CRITERIA PHRASE IN TEXT AND LANGUAGE if (allPhrasesContainingPhrase.Count > 0) { retrievedPhrase = (from phrase in allPhrasesContainingPhrase where phrase.Text == criteriaPhrase.Text && phrase.Language.Text == criteriaPhrase.Language.Text select phrase).FirstOrDefault(); } if (retrievedPhrase != null && retrievedPhrase.IsChild) { //WE ONLY WANT NON-CHILD VERSIONS OF PHRASE var nonChildVersion = PhraseEdit.GetPhraseEdit(retrievedPhrase.Id); RetrievedPhrases.Add(criteriaPhrase.Id, nonChildVersion); } else if (retrievedPhrase != null && !retrievedPhrase.IsChild) { //PHRASE IS ALREADY NOT A CHILD, SO ADD IT RetrievedPhrases.Add(criteriaPhrase.Id, retrievedPhrase); } else { //NO RETRIEVED PHRASE, SO ADD NULL FOR THIS CRITERIAPHRASE.ID RetrievedPhrases.Add(criteriaPhrase.Id, null); } } }
private static Task<ChartPanel> GetChartDescriptorAsync(IEditableRoot instance, string exprFieldName, string spcFieldName, ChartTypesEnum chartType, int subgroupSize, int dataPoints = 0) { ChartPanel chartDescriptor = null; var dict = instance.GetValueByPropertyName("ChartDescriptorExp") as MobileDictionary<string, ChartPanel>; if (dict != null) dict.TryGetValue(string.Format("{0}{1}", exprFieldName, spcFieldName), out chartDescriptor); else dict = new MobileDictionary<string, ChartPanel>(); if (chartDescriptor == null) { return SpcManager.CreateChartDescriptorAsync(chartType) .ContinueWith(async task => { if (task.Result != null) { chartDescriptor = task.Result; chartDescriptor.DataPoints = dataPoints; chartDescriptor.SubgroupSize = subgroupSize; var getDataTask = MethodCaller.CallFactoryMethod( instance.GetType(), "GetSampleDataForSPCAsync", instance, spcFieldName, chartType, chartDescriptor, true) as Task<ChartPanel>; chartDescriptor = await getDataTask; ChartPanel chartPanel; if (dict.TryGetValue(string.Format("{0}{1}", exprFieldName, spcFieldName), out chartPanel)) dict[string.Format("{0}{1}", exprFieldName, spcFieldName)] = chartDescriptor; else dict.Add(string.Format("{0}{1}", exprFieldName, spcFieldName), chartDescriptor); instance.LoadValueByPropertyName("ChartDescriptorExp", dict); return chartDescriptor; } return task.Result; } , CancellationToken.None, TaskContinuationOptions.NotOnFaulted, TaskScheduler.FromCurrentSynchronizationContext()).Unwrap(); } chartDescriptor.DataPoints = dataPoints; chartDescriptor.SubgroupSize = subgroupSize; var getSamplesTask = MethodCaller.CallFactoryMethod( instance.GetType(), "GetSampleDataForSPCAsync", instance, spcFieldName, chartType, chartDescriptor, true) as Task<ChartPanel>; return getSamplesTask; }