public async Task <IActionResult> HukAv(int nummer, int bokId) { KlistremerkeBok bok = await _context.Boker .Include(x => x.Merker) .SingleOrDefaultAsync(m => m.Id == bokId); if (bok.Merker.Any(x => x.Nummer == nummer)) { StatusMessage = $"{nummer} lagt til"; bok.Merker.RemoveAll(x => x.Nummer == nummer); } else { StatusMessage = $"{nummer} fjernet"; bok.Merker.Add(new Merke { BokId = bok.Id, klistretInn = true, Bok = bok, Nummer = nummer }); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Klistremerkebok))); }
public async Task <IActionResult> SjekkBytter(KlistremerkebokViewModel model) { KlistremerkeBok bok = await _context.Boker.Include(x => x.Merker).SingleOrDefaultAsync(m => m.Id == model.Id); string[] xMangler = string.IsNullOrEmpty(model.xMangler) ? new string[] { } : model.xMangler.Split(new[] { ",", " ", ";", "-", "\r\n", "\r", "\n", "." }, StringSplitOptions.RemoveEmptyEntries); string[] xDubletter = string.IsNullOrEmpty(model.xDublett) ? new string[] { } : model.xDublett.Split(new[] { ",", " ", ";", "-", "\r\n", "\r", "\n", "." }, StringSplitOptions.RemoveEmptyEntries); if (bok.Merker == null) { bok.Merker = new List <Merke>(); } string jegHarTilX = ""; string xHarTilMeg = ""; int antJegHarTilX = 0; int antXharTilMeg = 0; foreach (string s in xMangler) { int nummer = int.Parse(s); bool jegHarEkstra = bok.Merker.Any(x => x.Nummer == nummer && !x.klistretInn); if (jegHarEkstra) { jegHarTilX += $"{s}-"; antJegHarTilX++; } } foreach (string s in xDubletter) { int nummer = int.Parse(s); bool xHarSomJegMangler = !bok.Merker.Any(x => x.Nummer == nummer); if (xHarSomJegMangler) { xHarTilMeg += $"{s}-"; antXharTilMeg++; } } await _context.SaveChangesAsync(); if (!string.IsNullOrEmpty(jegHarTilX)) { StatusMessage += $"Jeg har {antJegHarTilX} til x: {jegHarTilX.Remove(jegHarTilX.Length - 1)}"; } if (!string.IsNullOrEmpty(xHarTilMeg)) { StatusMessage += $"X har {antXharTilMeg} til meg: {xHarTilMeg.Remove(xHarTilMeg.Length - 1)}"; } return(RedirectToAction(nameof(Klistremerkebok))); }
// GET: Eier/Delete/5 public async Task <IActionResult> DeleteBok(int?id) { if (id == null) { return(NotFound()); } KlistremerkeBok bok = await _context.Boker .SingleOrDefaultAsync(m => m.Id == id); if (bok == null) { return(NotFound()); } TypeViewModel model = new TypeViewModel { StatusMessage = StatusMessage, Navn = bok.Navn, Id = bok.Id }; return(View(model)); }
public async Task <IActionResult> EditBok(KlistremerkebokViewModel model) { KlistremerkeBok bok = await _context.Boker.Include(x => x.Merker).SingleOrDefaultAsync(m => m.Id == model.Id); if (!string.IsNullOrEmpty(model.Navn)) { bok.Navn = model.Navn; } string[] merker = string.IsNullOrEmpty(model.MerkeString) ? new string[] { } : model.MerkeString.Split(new [] { ",", " ", ";", "-", "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries); if (bok.Merker == null) { bok.Merker = new List <Merke>(); } string klistretInn = ""; string bytteMerker = ""; foreach (string s in merker) { int nummer = int.Parse(s); bool harFraFor = bok.Merker.Any(x => x.Nummer == nummer); if (!harFraFor) { klistretInn += $"{s}-"; } else { bytteMerker += $"{s}-"; } bok.Merker.Add(new Merke { BokId = bok.Id, klistretInn = !harFraFor, Bok = bok, Nummer = nummer }); } await _context.SaveChangesAsync(); if (!string.IsNullOrEmpty(klistretInn)) { StatusMessage += $"{klistretInn.Remove(klistretInn.Length - 1)} klistret inn. "; } if (!string.IsNullOrEmpty(bytteMerker)) { StatusMessage += $"{bytteMerker.Remove(bytteMerker.Length-1)} som nye byttemerker. "; } return(RedirectToAction(nameof(Klistremerkebok))); }
public async Task <IActionResult> BokInfo(int?id) { if (id == null) { return(NotFound()); } ApplicationUser user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } KlistremerkeBok bok = await _context.Boker .Include(x => x.Merker) .Include(x => x.Eier) .SingleOrDefaultAsync(m => m.Id == id); bool isAdmin = await _userManager.IsInRoleAsync(user, "Admin"); if (!isAdmin) { if (user.Id != bok.Eier.UserId) { StatusMessage = "Du kan kun endre dine egne bøker"; return(RedirectToAction(nameof(Klistremerkebok))); } } List <bool> merkerForAvhuking = Enumerable.Repeat(false, bok.TotaltAntallMerker + 1).ToList(); foreach (Merke merke in bok.Merker.Where(x => x.klistretInn)) { merkerForAvhuking[merke.Nummer] = true; } KlistremerkebokViewModel model = new KlistremerkebokViewModel { Id = bok.Id, StatusMessage = StatusMessage, Aar = bok.Aar, Navn = bok.Navn, Merker = bok.Merker, MerkerForAvhuking = merkerForAvhuking, TotaltAntallMerker = bok.TotaltAntallMerker }; return(View(model)); }
public async Task <IActionResult> FjernBytteMerker(KlistremerkebokViewModel model) { KlistremerkeBok bok = await _context.Boker.Include(x => x.Merker).SingleOrDefaultAsync(m => m.Id == model.Id); string[] fjernDisse = string.IsNullOrEmpty(model.fjernDisse) ? new string[] { } : model.fjernDisse.Split(new[] { ",", " ", ";", "-", "\r\n", "\r", "\n", "." }, StringSplitOptions.RemoveEmptyEntries); List <Merke> merker = _context.Merker .ToList() .Where(x => x.BokId == model.Id && !x.klistretInn) .ToList(); string disseErKlistretInn = ""; foreach (string s in fjernDisse) { Merke fjern = merker.FirstOrDefault(x => x.Nummer == int.Parse(s)); if (fjern != null) { _context.Merker.Remove(fjern); StatusMessage += $"{fjern.Nummer}-"; } else { disseErKlistretInn += $"{s}-"; } } if (!string.IsNullOrEmpty(StatusMessage)) { StatusMessage = StatusMessage.Remove(StatusMessage.Length - 1); StatusMessage += " fjernet. "; } if (!string.IsNullOrEmpty(disseErKlistretInn)) { disseErKlistretInn = disseErKlistretInn.Remove(disseErKlistretInn.Length - 1); StatusMessage += $@"<br \> {disseErKlistretInn} er allerede klistret inn, eller fins ikke i samlingen."; } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Klistremerkebok))); }
public async Task <IActionResult> OppdaterMerker(KlistremerkebokViewModel klistremerkebokViewModel) { KlistremerkeBok bok = await _context.Boker .Include(x => x.Merker) .SingleOrDefaultAsync(m => m.Id == klistremerkebokViewModel.Id); string lagtTil = "Klistret inn: "; string fjernet = " Fjernet: "; for (int i = 0; i < klistremerkebokViewModel.MerkerForAvhuking.Count; i++) { bool klistretInn = klistremerkebokViewModel.MerkerForAvhuking[i]; if (klistretInn) { if (!bok.Merker.Any(x => x.Nummer == i)) { lagtTil += $"{i},"; bok.Merker.Add(new Merke { BokId = bok.Id, klistretInn = true, Bok = bok, Nummer = i }); } } else { if (bok.Merker.Any(x => x.Nummer == i)) { fjernet += $"{i},"; bok.Merker.RemoveAll(x => x.Nummer == i); } } } StatusMessage += $"{lagtTil.Remove(lagtTil.Length - 1)} "; StatusMessage += $"{fjernet.Remove(fjernet.Length - 1)} "; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Klistremerkebok))); }
public async Task <IActionResult> LeggTilBok(KlistremerkebokViewModel model) { if (!ModelState.IsValid) { return(View(model)); } KlistremerkeBok bok = new KlistremerkeBok { Aar = model.Aar, Eier = _context.Eiere.ToList().First(x => x.Id == model.EierId), Type = _context.BokTyper.ToList().First(x => x.Id == model.BokTypeId), Navn = model.Navn, TotaltAntallMerker = model.TotaltAntallMerker }; await _context.Boker.AddAsync(bok); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Type))); }