public async Task <IActionResult> Create(CreateViewModel input) { // verwerk input vanuit webformulier NoviArtPiece piece = new NoviArtPiece { Artist = input.Artist, Description = input.Description, Dimensions = input.Dimensions, Frame = input.Frame, Price = input.Price, Title = input.Title }; // voeg aanmaakdatum, beschikbaarheidsinfo, en aanbieder toe aan item piece.Lesser = await _userManager.GetUserAsync(HttpContext.User); piece.CreationDate = piece.AvailableFrom = DateTime.UtcNow; // upload de afbeelding using (var memoryStream = new MemoryStream()) { // lees bestand in input.Image.CopyTo(memoryStream); // verifieer bestand if (!FileHelperExtensions.IsValidFile(input.Image.FileName, memoryStream, new string[] { ".gif", ".png", ".jpg", ".jpeg" }, 2097152)) { // Toon foutmelding indien afbeelding niet valide ModelState.AddModelError("Image", Localization.MSG_IMAGE_FORMAT); } // controleer of er zich geen problemen hebben voorgedaan, if (!ModelState.IsValid) { return(View("Create", piece)); } // alles ok voeg afbeelding toe aan item piece.ImageContent = memoryStream.ToArray(); // file extension opslaan piece.ImageType = Path.GetExtension(input.Image.FileName).ToLowerInvariant().TrimStart('.'); } // Voeg resultaat toe aan de database _dbcontext.Add <NoviArtPiece>(piece); _dbcontext.SaveChanges(); // logging _logger.LogInformation("User created a new artpiece with id: {0}", piece.Id); // en keer terug naar de collectie-pagina return(RedirectToAction("Index")); }
// constructor public IndexViewModel(List <NoviArtPiece> dbpieces) { // initialisatie ArtPieces = dbpieces; // willekeurig item selecteren uit de beschikbare items als highlighted item var availableArtPieces = ArtPieces.Where(a => a.Available).ToList(); if (availableArtPieces.Count > 0) { HighlightedArtPiece = availableArtPieces[rnd.Next(availableArtPieces.Count)]; } else { HighlightedArtPiece = null; } }
public async Task <IActionResult> DeleteArtPiece(int id) { // haal artpiece op uit database NoviArtPiece entity = await _dbcontext.NoviArtPieces.Include(a => a.Lesser).Where(a => a.Id == id).FirstOrDefaultAsync(); NoviArtUser user = await _userManager.GetUserAsync(User); if (entity != null) { // controleer of gebruiker het object mag verwijderen if (user.Type != NoviUserType.Admin && user.Type != NoviUserType.Root && entity.Lesser.Id != user.Id) { return(View("Message", new MessageViewModel { Message = Localization.MSG_UNAUTHORIZED_REMOVAL, ReturnToController = "Manage", ReturnToAction = "Manage" })); } // controleer of het object momenteel niet verhuurd is if (!entity.Available) { return(View("Message", new MessageViewModel { Message = Localization.MSG_ARTPIECE_LOCKED, ReturnToController = "Manage", ReturnToAction = "Manage" })); } // verwijder item uit database _dbcontext.NoviArtPieces.Remove(entity); await _dbcontext.SaveChangesAsync(); // logging _logger.LogInformation("A user deleted artpiece with id: {0}", id); } // en herlaadt pagina return(RedirectToAction("Manage")); }