public async Task <IActionResult> PutGarden(string id, GardenDTO gardenDTO) { Garden garden = _mapper.Map <Garden>(gardenDTO); if (id != garden.Id) { return(BadRequest()); } if (!Owned(garden)) { return(Unauthorized()); } _context.Entry(garden).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GardenExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <GardenDTO> > PostGarden(GardenDTO newGarden) { var garden = _mapper.Map <Garden>(newGarden); OwnIt(garden); _context.Gardens.Add(garden); await _context.SaveChangesAsync(); return(CreatedAtAction("GetGarden", new { id = garden.Id }, SetReadonly(_mapper.Map <GardenDTO>(garden)))); }
public async Task <IActionResult> PostGarden([FromBody] GardenDTO garden) { IList <String> role = await GetUsersRoles(); if (role.Contains("Admin")) { using (var transaction = _context.Database.BeginTransaction()) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var newGarden = new Garden { Name = garden.Name, Superficie = garden.Superficie, Street = garden.Street, NumStreet = garden.NumStreet, Description = garden.Description, GeographicalCoordinate = garden.GeographicalCoordinate, UrlAudio = garden.urlAudio, UrlImg = garden.UrlImg, Note = garden.Note }; _context.Garden.Add(newGarden); await _context.SaveChangesAsync(); transaction.Commit(); return(CreatedAtAction("GetGarden", new { id = garden.NumGarden }, garden)); } catch (Exception) { return(BadRequest()); } } } return(Unauthorized()); }
public async Task <ActionResult <GardenDTO> > PostShareGarden(GardenDTO gardenDTO) { var garden = await _context.Gardens.OwnedOrPublic(UserId).Where(x => x.Id == gardenDTO.Id) .Include(x => x.Tiles) .Include("Tiles.TileType") .FirstOrDefaultAsync(); if (garden == null) { return(BadRequest()); } if (!Owned(garden)) { return(Unauthorized()); } garden.Public = gardenDTO.Public; garden.Tiles.ForEach(x => x.Public = gardenDTO.Public); garden.Tiles.ForEach(x => x.TileType.Public = gardenDTO.Public); await _context.SaveChangesAsync(); return(CreatedAtAction("GetGarden", new { id = garden.Id }, SetReadonly(_mapper.Map <GardenDTO>(garden)))); }