Example #1
0
        public void TestCopyTo()
        {
            var jArray = new JArray
            {
                alice,
                bob
            };

            JObject[] jObjects1 = new JObject[2];
            jArray.CopyTo(jObjects1, 0);
            var jAlice1 = jObjects1[0];
            var jBob1   = jObjects1[1];

            Assert.AreEqual(alice, jAlice1);
            Assert.AreEqual(bob, jBob1);

            JObject[] jObjects2 = new JObject[4];
            jArray.CopyTo(jObjects2, 2);
            var jAlice2 = jObjects2[2];
            var jBob2   = jObjects2[3];

            jObjects2[0].Should().BeNull();
            jObjects2[1].Should().BeNull();
            Assert.AreEqual(alice, jAlice2);
            Assert.AreEqual(bob, jBob2);
        }
 /// <summary>
 /// called from JS
 /// </summary>
 /// <param name="args"></param>
 public void StartDrip(string args)
 {
     m_selectedTubes  = (JArray)JsonConvert.DeserializeObject(args.ToString());
     m_sortedTubesArr = new JToken[m_selectedTubes.Count];
     m_selectedTubes.CopyTo(m_sortedTubesArr, 0);
     Array.Sort(m_sortedTubesArr, (token1, token2) =>
     {
         int ret      = 1;
         JObject obj1 = (JObject)token1;
         JObject obj2 = (JObject)token2;
         int type     = int.Parse(obj1["type"].ToString());
         if (type == (int)BoardType.Site)
         {
             int site1, site2, row1, row2, col1, col2;
             site1 = int.Parse(obj1["site"].ToString());
             site2 = int.Parse(obj2["site"].ToString());
             row1  = int.Parse(obj1["row"].ToString());
             row2  = int.Parse(obj2["row"].ToString());
             col1  = int.Parse(obj1["col"].ToString());
             col2  = int.Parse(obj2["col"].ToString());
             if (col1 < col2)
             {
                 ret = -1;
             }
             else if (col1 == col2)
             {
                 ret = ((site1 - 1) * BoardSetting.GetInstance().CurrentBoard.RowCount + row1) < ((site2 - 1) * BoardSetting.GetInstance().CurrentBoard.RowCount + row2) ? -1 : 1;
             }
             else
             {
                 ret = 1;
             }
         }
         else
         {
             int grid1, grid2, row1, row2;
             grid1 = int.Parse(obj1["grid"].ToString());
             grid2 = int.Parse(obj2["grid"].ToString());
             row1  = int.Parse(obj1["row"].ToString());
             row2  = int.Parse(obj2["row"].ToString());
             if (grid1 < grid2)
             {
                 ret = -1;
             }
             else if (grid1 == grid2)
             {
                 ret = row1 < row2 ? -1 : 1;
             }
             else
             {
                 ret = 1;
             }
         }
         return(ret);
     });
     m_pipettingIndex = -1;
     DoPipetting();
     m_selectedTubes.Clear();
     //m_moveThread = new Thread(new ThreadStart(PipettingThread));
     //m_moveThread.Start();
 }