コード例 #1
0
        public IActionResult EditPost(int seqId, DateTime ATo, string Notes, IPv4Addresses model)
        {
            try
            {
                var data = _context.IpAddresses.Where(f => f.SeqId == seqId).ToList();
                data.ForEach(a => a.ATo   = ATo);
                data.ForEach(a => a.Notes = Notes);

                EventsModel eventsModel = new EventsModel()
                {
                    SeqId     = model.SeqId,
                    AFrom     = model.AFrom,
                    ATo       = ATo,
                    UserEmail = model.UserEmail,
                    Notes     = Notes,
                    Event     = "Edit" + DateTime.Now
                };
                _context.Eventlog.Add(eventsModel);
                _context.SaveChanges();
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(RedirectToAction(nameof(Index)));
            }
            return(RedirectToAction(nameof(Index)));
        }
コード例 #2
0
        /*  Get a new stack of IPv4 addresses (x5)
         *  First IPv4-address stack starts from 192.169.000.00 and increase by 1 in each for-loop.
         *  192.169.000.250 -> 192.169.001.000
         *  All data will be set here so user doesn't have to do anything. Users can edit End date and Notes later via Edit component.
         *
         *  From = now
         *  To = 3 months from now
         *  User = current user
         *
         *  EndDateChecker application will check for rows where To date is ending within 7 days and send email to the user.
         *  If the user doesn't update To -date, data will be cleared and other users can get the IP-stack.
         */
        public async Task <IActionResult> GetIPv4()
        {
            try
            {
                var iPv = _context.IpAddresses.Where(m => m.UserEmail == "").FirstOrDefault();
                if (iPv == null)
                {
                    var last = await _context.IpAddresses.OrderBy(x => x.IpaddressSeqment).LastOrDefaultAsync();

                    if (last == null)
                    {
                        var ip = "192.169.000.00";
                        for (var i = 0; i < 5; i++)
                        {
                            var newip = new IPv4Addresses
                            {
                                IpaddressSeqment = ip + i.ToString(),
                                SeqId            = 1,
                                UserEmail        = "*****@*****.**",
                                //UserEmail = User.Identity.Name,
                                AFrom = DateTime.Now,
                                ATo   = DateTime.Now.AddMonths(3),
                            };
                            _context.IpAddresses.Add(newip);
                        }
                    }
                    else
                    {
                        var seqId = await _context.IpAddresses.MaxAsync(p => p.SeqId);

                        seqId++;
                        var ip = last.IpaddressSeqment;
                        for (var i = 0; i < 5; i++)
                        {
                            var s = ip.Split('.');
                            if (int.Parse(s[3]) < 250)
                            {
                                var seg = int.Parse(s[3]) + 1;
                                s[3] = seg.ToString("000");
                            }
                            else
                            {
                                s[3] = "000";
                                var seg = int.Parse(s[2]) + 1;
                                s[2] = seg.ToString("000");
                            }
                            ip = string.Join(".", s);

                            var newip = new IPv4Addresses
                            {
                                IpaddressSeqment = ip,
                                SeqId            = seqId,
                                UserEmail        = "*****@*****.**",
                                //UserEmail = User.Identity.Name,
                                AFrom = DateTime.Now,
                                ATo   = DateTime.Now.AddMonths(3),
                            };
                            _context.IpAddresses.Add(newip);
                        }
                    }
                    await _context.SaveChangesAsync();
                }
                return(PartialView("_GetIPv4", null));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(View());
            }
        }
コード例 #3
0
        // Edit data of a specific segment(id). Also update Eventlog.
        public IActionResult Edit(int seqId)
        {
            IPv4Addresses pv4Addresses = _context.IpAddresses.Find(seqId);

            return(PartialView("_EditIPv4", pv4Addresses));
        }
コード例 #4
0
        // Show details of specific IPv4 row.
        public IActionResult Details(int?id)
        {
            IPv4Addresses pv4Addresses = _context.IpAddresses.Find(id);

            return(PartialView("_DetailsIPv4", pv4Addresses));
        }