Example #1
0
        public void SearchTerm(OleMenuCmdEventArgs eventArgs)
        {
            var vOut = eventArgs.OutValue;

            if (vOut != IntPtr.Zero)
            {
                Marshal.GetNativeVariantForObject(SearchValues.ToArray(), vOut);
            }
        }
Example #2
0
        public void Search(OleMenuCmdEventArgs eventArgs)
        {
            var input = eventArgs.InValue;

            var vOut = eventArgs.OutValue;

            if (vOut != IntPtr.Zero)
            {
                Marshal.GetNativeVariantForObject(CurrentSearchString, vOut);
            }

            else if (input != null)
            {
                CurrentSearchString = input.ToString().Trim().ToLower();

                if (!string.IsNullOrWhiteSpace(CurrentSearchString))
                {
                    if (!SearchValues.Contains(CurrentSearchString))
                    {
                        SearchValues.Add(CurrentSearchString);
                    }

                    PagedSchemesView.Filter += delegate(object obj)
                    {
                        var scheme = obj as Scheme;

                        if (scheme == null)
                        {
                            return(false);
                        }

                        var matchingTitle  = false;
                        var matchingAuthor = false;

                        if (!string.IsNullOrWhiteSpace(scheme.Title))
                        {
                            matchingTitle = scheme.Title.ToLower().Contains(CurrentSearchString);
                        }

                        if (!string.IsNullOrWhiteSpace(scheme.Author))
                        {
                            matchingAuthor = scheme.Author.ToLower().Contains(CurrentSearchString);
                        }

                        return(matchingTitle || matchingAuthor);
                    };
                }
                else
                {
                    PagedSchemesView.Filter = null;
                }
            }

            UpdateInfoBar();
        }
Example #3
0
        public async void TestNeighborFail()
        {
            Peer sender = null;
            Peer recv1  = null;

            try
            {
                sender = new PeerBuilder(new Number160("0x50"))
                         .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask())
                         .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424))
                         .SetP2PId(55)
                         .SetPorts(2424)
                         .Start();
                recv1 = new PeerBuilder(new Number160("0x20"))
                        .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask())
                        .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(8088, 8088))
                        .SetP2PId(55)
                        .SetPorts(2424)
                        .Start();

                var neighbors1 = new NeighborRpc(sender.PeerBean, sender.ConnectionBean);
                var neighbors2 = new NeighborRpc(recv1.PeerBean, recv1.ConnectionBean);
                var cc         = await recv1.ConnectionBean.Reservation.CreateAsync(1, 0);

                try
                {
                    var sv        = new SearchValues(new Number160("0x30"), null);
                    var infConfig = Utils2.CreateInfiniteConfiguration();
                    await
                    neighbors2.CloseNeighborsAsync(sender.PeerAddress, sv, Message.MessageType.Exception, cc,
                                                   infConfig);

                    Assert.Fail("ArgumentException should have been thrown.");
                }
                catch (ArgumentException)
                {
                    cc.ShutdownAsync().Wait();
                }
            }
            finally
            {
                if (sender != null)
                {
                    sender.ShutdownAsync().Wait();
                }
                if (recv1 != null)
                {
                    recv1.ShutdownAsync().Wait();
                }
            }
        }
Example #4
0
        public async void TestNeighbor2()
        {
            Peer sender = null;
            Peer recv1  = null;

            try
            {
                sender = new PeerBuilder(new Number160("0x50"))
                         .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask())
                         .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424))
                         .SetP2PId(55)
                         .SetPorts(2424)
                         .Start();
                recv1 = new PeerBuilder(new Number160("0x20"))
                        .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask())
                        .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(8088, 8088))
                        .SetP2PId(55)
                        .SetPorts(2424)
                        .Start();

                var neighbors1 = new NeighborRpc(sender.PeerBean, sender.ConnectionBean);
                var neighbors2 = new NeighborRpc(recv1.PeerBean, recv1.ConnectionBean);
                var cc         = await recv1.ConnectionBean.Reservation.CreateAsync(1, 0);

                var sv        = new SearchValues(new Number160("0x30"), null);
                var infConfig = Utils2.CreateInfiniteConfiguration();
                var tr        = neighbors2.CloseNeighborsAsync(sender.PeerAddress, sv, Message.MessageType.Request2, cc,
                                                               infConfig);
                await tr;

                Assert.IsTrue(!tr.IsFaulted);

                var addresses = tr.Result.NeighborsSet(0);

                // I see noone, not even myself. My peer was added in the overflow map.
                Assert.AreEqual(0, addresses.Size);
                await cc.ShutdownAsync();
            }
            finally
            {
                if (sender != null)
                {
                    sender.ShutdownAsync().Wait();
                }
                if (recv1 != null)
                {
                    recv1.ShutdownAsync().Wait();
                }
            }
        }
Example #5
0
        public async Task<IHttpActionResult> PostSearch([FromUri]SearchValues searchValues)
        {
            // create a default searchValues, this should probably just be a strut
            if (searchValues == null)
            {
                searchValues = new SearchValues
                {
                    OrderBy = "Id",
                    Page = 1,
                    PageSize = 20,
                    SortDirection = SortDirection.Ascending
                };
            }


            int totalItemCount;
            int skip = (searchValues.Page - 1) * searchValues.PageSize;
            List<User> userList;

            // TODO repository, caching etc.
            using (var context = new DataContext())
            {
                context.Configuration.ProxyCreationEnabled = false;
                totalItemCount = context.Users.Count();

                userList = await (from x in context.Users
                                         .Include(u => u.Profile)
                                  orderby searchValues.OrderBy
                                  select x
                   ).Skip(skip).Take(searchValues.PageSize).ToListAsync();
            }


            var model = new SerializablePagination<User>(
                userList.ToList(),
                totalItemCount,
                searchValues.Page,
                searchValues.PageSize)
            {
                BaseUrl = "User",
                SortBy = searchValues.OrderBy,
                SortDirection = searchValues.SortDirection
            };

            return await Task.FromResult((IHttpActionResult)this.Ok(model));
        }
Example #6
0
        public async void TestNeighborTcp()
        {
            Peer sender = null;
            Peer recv1  = null;

            try
            {
                sender = new PeerBuilder(new Number160("0x50"))
                         .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask())
                         .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424))
                         .SetP2PId(55)
                         .SetPorts(2424)
                         .Start();

                // add neighbors to the sender's peer map
                var addresses = Utils2.CreateDummyAddresses(300, PortTcp, PortUdp);
                for (int i = 0; i < addresses.Length; i++)
                {
                    sender.PeerBean.PeerMap.PeerFound(addresses[i], null, null);
                }

                // register neighbor RPC handlers
                var neighbors1 = new NeighborRpc(sender.PeerBean, sender.ConnectionBean); // TODO needed? registering?

                recv1 = new PeerBuilder(new Number160("0x20"))
                        .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask())
                        .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(8088, 8088))
                        .SetP2PId(55)
                        .SetPorts(8088)
                        .Start();
                var neighbors2 = new NeighborRpc(recv1.PeerBean, recv1.ConnectionBean);

                // ask sender for his neighbors
                var cc = await recv1.ConnectionBean.Reservation.CreateAsync(0, 1);

                var sv        = new SearchValues(new Number160("0x1"), null);
                var infConfig = Utils2.CreateInfiniteConfiguration()
                                .SetIsForceTcp();
                var tr = neighbors2.CloseNeighborsAsync(sender.PeerAddress, sv, Message.MessageType.Request2, cc,
                                                        infConfig);
                await tr;

                Assert.IsTrue(!tr.IsFaulted);

                // check if receiver got the neighbors
                var neighborSet = tr.Result.NeighborsSet(0);

                // 33 peer addresses can be stored in 1000 bytes (NeighborsLimit)
                Assert.IsTrue(neighborSet.Size == 33);
                var neighbors = neighborSet.Neighbors.ToList();
                Assert.AreEqual(new Number160("0x1"), neighbors[0].PeerId);
                Assert.AreEqual(PortTcp, neighbors[1].TcpPort);
                Assert.AreEqual(PortUdp, neighbors[2].UdpPort);
                await cc.ShutdownAsync();
            }
            finally
            {
                if (sender != null)
                {
                    sender.ShutdownAsync().Wait();
                }
                if (recv1 != null)
                {
                    recv1.ShutdownAsync().Wait();
                }
            }
        }
 public static double SearchArrayValues(this double[] array, SearchValues searchVal)
 {
     return(searchVal.Invoke(array));
 }
 public IList <string> GetSearchValueList()
 {
     return(SearchValues?.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
 }
        public List<SearchValues> SearchAllDB(string[] input)
        {
            //declare values
            List<SearchValues> tapeDBValues = new List<SearchValues>();
            string preQuery = "";
            string query = "";

            try
            {
                //start new sqlite connection
                SQLiteConnection searchConnection = new SQLiteConnection(database);
                searchConnection.Open();
                SQLiteCommand command = new SQLiteCommand(searchConnection);

                //start of query pieces for tape Database
                preQuery = "select * from TapeDatabase";

                //add query based on number of entries
                if (input.Length > 0)
                {
                    //iterate over all entries
                    for (int i = 0; i < input.Length; i++)
                    {
                        //set up value for each input
                        string term = "@input" + i;
                        string value = "'%" + input[i].ToLower() + "%'";
                        if (i == 0)
                        {
                            preQuery += " where";
                        }

                        if (i > 0)
                        {
                            preQuery += " or";
                        }

                        //set up the regex part of the query
                        preQuery += String.Format(" project_id like {0} or project_name like {0} or tape_name like {0} or tape_tags like {0} or date_shot like {0} or master_archive like {0}", value);
                        Debug.WriteLine(input[i].ToLower());
                    }
                }
                preQuery += " order by project_id asc";
                Debug.WriteLine(preQuery);

                //Set assembled query to final query
                query = preQuery;
                command.CommandText = query;
                Debug.WriteLine("Command Text: " + command.CommandText);

                using (SQLiteDataReader reader = command.ExecuteReader())
                {
                    //If there are return values then parse them and display them
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            SearchValues dbData = new SearchValues();
                            dbData.TapeName = reader["tape_name"].ToString();
                            dbData.TapeNumber = reader["tape_number"].ToString();
                            dbData.ProjectID = reader["project_id"].ToString();
                            dbData.ProjectName = reader["project_name"].ToString();
                            dbData.Camera = commonMethod.GetCameraName(Convert.ToInt32(reader["camera"]));
                            dbData.TapeTags = reader["tape_tags"].ToString();
                            dbData.DateShot = reader["date_shot"].ToString();
                            dbData.MasterArchive = reader["master_archive"].ToString();
                            dbData.Person = reader["person_entered"].ToString();
                            dbData.ID = Convert.ToInt32(reader["id"]);
                            dbData.FilterName = "tapes";

                            tapeDBValues.Add(dbData);
                        }
                    }
                }

                //start of query pieces for Projects
                preQuery = "select * from Projects";

                //add query based on number of entries
                if (input.Length > 0)
                {
                    //iterate over all entries
                    for (int i = 0; i < input.Length; i++)
                    {
                        //set up value for each input
                        string value = "'%" + input[i].ToLower() + "%'";
                        if (i == 0)
                        {
                            preQuery += " where";
                        }

                        if (i > 0)
                        {
                            preQuery += " or";
                        }

                        //set up the regex part of the query
                        preQuery += String.Format(" project_id like {0} or project_name like {0}", value);
                        Debug.WriteLine(input[i].ToLower());
                    }
                }
                preQuery += " order by project_id asc";
                Debug.WriteLine(preQuery);

                //Set assembled query to final query
                query = preQuery;
                command.CommandText = query;
                Debug.WriteLine("Command Text: " + command.CommandText);

                using (SQLiteDataReader reader = command.ExecuteReader())
                {
                    //If there are return values then parse them and display them
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            //Add values to returned list
                            SearchValues dbData = new SearchValues();
                            dbData.ProjectID = reader["project_id"].ToString();
                            dbData.ProjectName = reader["project_name"].ToString();
                            dbData.ID = Convert.ToInt32(reader["id"]);
                            dbData.FilterName = "projects";

                            tapeDBValues.Add(dbData);
                        }
                    }
                }

                //start of query pieces for Master Archive Videos
                preQuery = "select * from MasterArchiveVideos";

                //add query based on number of entries
                if (input.Length > 0)
                {
                    //iterate over all entries
                    for (int i = 0; i < input.Length; i++)
                    {
                        //set up value for each input
                        string value = "'%" + input[i].ToLower() + "%'";
                        if (i == 0)
                        {
                            preQuery += " where";
                        }

                        if (i > 0)
                        {
                            preQuery += " or";
                        }

                        //set up the regex part of the query
                        preQuery += String.Format(" project_id like {0} or video_name like {0} or master_tape like {0}", value);
                        Debug.WriteLine(input[i].ToLower());
                    }
                }
                preQuery += " order by project_id asc";
                Debug.WriteLine(preQuery);

                //Set assembled query to final query
                query = preQuery;
                command.CommandText = query;
                Debug.WriteLine("Command Text: " + command.CommandText);

                using (SQLiteDataReader reader = command.ExecuteReader())
                {
                    //If there are return values then parse them and display them
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            //Add values to returned list
                            SearchValues dbData = new SearchValues();
                            dbData.ProjectID = reader["project_id"].ToString();
                            dbData.ProjectName = reader["video_name"].ToString();
                            dbData.MasterArchive = reader["master_tape"].ToString();
                            dbData.ClipNumber = reader["clip_number"].ToString();
                            dbData.ID = Convert.ToInt32(reader["id"]);
                            dbData.FilterName = "archive";

                            tapeDBValues.Add(dbData);
                        }
                    }
                }

                //close connection and return final list
                searchConnection.Close();
            }
            catch (SQLiteException e)
            {
                MainForm.LogFile("SQLite Error: " + e.Message);
            }

            return tapeDBValues;
        }