Beispiel #1
0
        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());
        }
Beispiel #2
0
        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());
        }
Beispiel #4
0
        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))));
        }