Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
 /// <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);
                }
            }
        }
Example #6
0
        /// <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);
        }
Example #7
0
        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();
        }
Example #8
0
        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();
        }
Example #9
0
        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);
            }
        }
Example #10
0
        /// <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>;
 }
Example #13
0
    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();
    }
Example #14
0
    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();
    }
Example #15
0
    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;
        }        
Example #17
0
		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);
        }
Example #20
0
    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();
    }
Example #21
0
    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();
    }
Example #22
0
        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;
        }