Esempio n. 1
0
 public void SetValues(PiData newData)
 {
     nonHighlightedColor = newData.nonHighlightedColor;
     highlightedColor    = newData.highlightedColor;
     disabledColor       = newData.disabledColor;
     icon           = newData.icon;
     sliceLabel     = newData.sliceLabel;
     angle          = newData.angle;
     iconSize       = newData.iconSize;
     isInteractable = newData.isInteractable;
 }
        public void SetPiData(PiData piData)
        {
            piData.PiRecordStamp = $"{DateTime.Now}";
            var recordToUpdate = _context.PiDatas.Where(s => s.Id == 1).First();

            recordToUpdate.Blocks24Hours = piData.Blocks24Hours;
            recordToUpdate.DNSQ24Hours   = piData.DNSQ24Hours;
            recordToUpdate.PiRecordStamp = piData.PiRecordStamp;

            // _context.PiDatas.Add(piData);
            _context.SaveChanges();
        }
Esempio n. 3
0
        public void OnGet()
        {
            int group = 0;

            //var output = "cat /etc/dhcpcd.conf"


            if (isWind)
            {
                var output = "ipconfig".Bash();
                var lines  = output.Split("\r\n");
                var cards  = lines.Select(x => ((!x.StartsWith(" ") && x != "") ? ++group : group, x))
                             .Where(b => b.x != "")
                             .GroupBy(v => v.Item1)
                             .ToList();
                var lanCard     = cards.FirstOrDefault(y => y.First().x.Contains("Wi-Fi"));
                var lanCardData = lanCard.Select(x => x.x.Split(":"));
                var IP          = lanCardData.First(x => x[0].Contains("IPv4"))[1];
                var Mask        = lanCardData.First(x => x[0].Contains("Mask"))[1];
                var Gate        = lanCardData.First(x => x[0].Contains("Gate"))[1];
                Data = new PiData()
                {
                    IP   = IP,
                    Mask = Mask,
                    Gate = Gate
                };
            }
            else
            {
                var output = "cat /etc/dhcpcd.conf".Bash();
                var lines  = output.Split("\r\n");
                var groups = lines.Select(x => ((!x.StartsWith(" ") && x != "") ? ++group : group, x))
                             .Where(b => b.x != "")
                             .GroupBy(v => v.Item1)
                             .ToList();
                var lanCard = groups.FirstOrDefault(y => y.First().x.Contains("wlan0"));

                var lanCardData = lanCard.Select(x => x.x.Split("="));
                var IP          = lanCardData.First(x => x[0].Contains("ip"))[1].Split("/")[0] ?? "192.168.1.144";
                var Mask        = lanCardData.First(x => x[0].Contains("Mask"))[1] ?? "255.255.255.0";
                var Gate        = lanCardData.First(x => x[0].Contains("routers"))[1] ?? "192.168.1.1";
                Data = new PiData()
                {
                    UseDHCP = lines.First(x => x.Contains("Interface wlan0"))?.Trim().StartsWith("#") ?? false,
                    IP      = IP,
                    Mask    = Mask,
                    Gate    = Gate
                };
            }
        }
Esempio n. 4
0
        public IActionResult OnPost(PiData data)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }


            if (!isWind)
            {
                int group = 0;

                //Saving global

                var output = "cat /etc/dhcpcd.conf".Bash();
                var lines  = output.Split("\r\n");
                var groups = lines.Select(x => ((!x.StartsWith(" ") && x != "") ? ++group : group, x))
                             .Where(b => b.x != "")
                             .GroupBy(v => v.Item1)
                             .ToList();
                var lanCard     = groups.FirstOrDefault(y => y.First().x.Contains("wlan0"));
                var lanCardData = lanCard.Select(x => x.x.Split("=")).ToList();

                var newlines = lines.ToList();

                StringBuilder s = new StringBuilder();
                if (!data.UseDHCP)
                {
                    newlines.RemoveAll(x => lanCard.Any(y => y.x == x));

                    //calculate mask:
                    var    mask = data.Mask.Split(".");
                    string _mask;
                    string maskConverted = "";
                    try
                    {
                        foreach (var submask in mask)
                        {
                            maskConverted += Convert.ToString(Convert.ToInt16(submask), 2);
                        }
                        _mask = "/" + maskConverted.TakeWhile(x => x == '1').Count().ToString();
                    }
                    catch
                    {
                        _mask = "/24";
                    }
                    s.AppendJoin("\r\n", newlines);
                    s.AppendLine("");
                    s.AppendLine("interface wlan0");
                    s.AppendLine($"static ip_adress={data.IP + mask}");
                    s.AppendLine($"static routers={data.Gate}");
                    s.AppendLine($"static domain_name_servers={data.Gate} 8.8.8.8");
                }
                else
                {
                    newlines.Select(x => lanCard.Any(y => y.x == x) ? x.Insert(0, "#") : x);
                    s.AppendJoin("\r\n", newlines);
                }



                $"sudo {s.ToString()} > /etc/dhcpcd.conf".Bash();



                //Saving actual
                "sudo ifconfig eth0 0.0.0.0 0.0.0.0 && sudo dhclient".Bash();                         //create dhcliect and nullify adress/mask
                $"sudo killall dhclient && sudo ifconfig wlan0 {Data.IP} netmask {Data.Mask}".Bash(); //assign IP and mask
                $"sudo route add default gw {Data.Gate} eth0".Bash();                                 //Add router
            }



            return(RedirectToPage("./Reset"));
        }
Esempio n. 5
0
 public void OnGet()
 {
     PiDatas = _db.PiDatas.OrderByDescending(s => s.Id).FirstOrDefault();
 }
Esempio n. 6
0
 public ActionResult <PiData> SetPiData(PiData piData)
 {
     _repository.SetPiData(piData);
     _repository.SaveChanges();
     return(Ok());
 }