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))); }
/* 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()); } }
// 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)); }
// Show details of specific IPv4 row. public IActionResult Details(int?id) { IPv4Addresses pv4Addresses = _context.IpAddresses.Find(id); return(PartialView("_DetailsIPv4", pv4Addresses)); }