Пример #1
0
        private void identifyClient(User user)
        {
            using (F2GContext db = new F2GContext())
            {
                String hostname = System.Net.Dns.GetHostName();
                String Ip       = System.Net.Dns.GetHostByName(hostname).AddressList[0].ToString();

                mycomputer = new Client()
                {
                    name = hostname, ip = Ip, active = true, User = user
                };
                List <Client> existingClients = db.Clients.Where(c => c.ip == Ip).ToList();
                foreach (Client existing in existingClients)
                {
                    existing.active = false;
                }
                db.SaveChanges();
                Client existingClient = db.Clients.FirstOrDefault(c => c.ip == Ip);
                if (existingClient == null)
                {
                    db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                    db.Clients.Add(mycomputer);
                }
                else
                {
                    existingClient.active = true;
                }
                db.SaveChanges();

                //try
                //{
                //    db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                //    db.Clients.Add(mycomputer);
                //    db.SaveChanges();
                //    Status.Content = "Sucessfully connected to DataBase";
                //    //db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                //    //db.Clients.Add(mycomputer);
                //    //db.SaveChanges();
                //    //Status.Content = "Sucessfully connected to DataBase";
                //}
                //catch (Exception e)
                //{
                //    Status.Content = "Something Went Wrong adjusting DataBase";
                //    removeClient();
                //    removeClient();
                //    identifyClient(user);
                //}
            }
        }
Пример #2
0
        private void removeClient()
        {
            //try
            //{
            using (F2GContext db = new F2GContext())
            {
                //db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                //db.Clients.Remove(mycomputer);
                db.Entry(mycomputer).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                mycomputer.active          = false;
                db.SaveChanges();
            }
            //}
            //catch (Exception e)
            //{

            //    // Do nothing for Database exception //
            //}
        }
Пример #3
0
        private void Listen_FileFound(object sender, F2GDBListner.FileFoundEventArgs e)
        {
            Console.WriteLine("in FileFound");
            string[] paths = Search4File.Search(e.RequestData.fileName).Split('\n').Where(p => !string.IsNullOrWhiteSpace(p)).ToArray();
            List <Tuple <string, byte[]> > files = new List <Tuple <string, byte[]> >();

            foreach (string path in paths)
            {
                files.Add(new Tuple <string, byte[]>(path, File2Bytes.ConvertFileToBytes(path)));
            }
            files = files.Where(f => f != null).ToList();
            using (F2GContext db = new F2GContext())
            {
                Request rsq = e.RequestData;
                db.Entry(rsq).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                User user = rsq.User;
                db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                Client client = rsq.client;
                db.Entry(client).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                Response rsp = new Response()
                {
                    success = (files.Count > 0), fileName = rsq.fileName, User = user, client = client
                };
                db.Responses.Add(rsp);
                foreach (Tuple <string, byte[]> file in files)
                {
                    Console.WriteLine("sending a file!");
                    db.Files.Add(new File()
                    {
                        name = e.RequestData.fileName, path = file.Item1, contents = file.Item2, response = rsp
                    });
                }
                db.Requests.Remove(rsq);
                db.SaveChanges();
            }
            startListening();
        }