Esempio n. 1
0
 public static Garden ConvertToModel(this GardenDto dto)
 {
     return(new Garden
     {
         Name = dto.Name,
         MinUse = dto.MinUse ?? 1,
         Description = dto.Description,
         Location = dto.Location?.ConvertToModel(),
         Criteria = dto.Criteria?.ConvertToModel(),
         Validation = dto.Validation,
         Photos = dto.Photos?.ConvertToModel <Garden>()
     });
 }
Esempio n. 2
0
        public async Task <IActionResult> CreateGarden([FromBody] GardenDto garden)
        {
            try
            {
                var me     = ExtractIdFromToken(Request.Headers[HttpRequestHeader.Authorization.ToString()]);
                var result = await service.AddGarden(me, garden);

                return(Created($"/api/Gardens/{result.Data.Id}", result));
            }
            catch (HttpResponseException)
            {
                throw;
            }
            catch (Exception)
            {
                throw new BadRequestApiException();
            }
        }
Esempio n. 3
0
        public async Task <QueryResults <GardenDto> > AddGarden(Guid me, GardenDto dto)
        {
            var owner = await db.Users.GetByIdAsync(me) ?? throw new NotFoundApiException();

            dto.IsReserved = false;
            dto.Validation = Status.Accepted;
            var garden = dto.ConvertToModel();

            owner.Gardens = owner.Gardens ?? new List <Garden>();
            owner.Gardens.Add(garden);

            await db.SaveChangesAsync();

            return(new QueryResults <GardenDto>
            {
                Data = garden.ConvertToDto()
            });
        }
Esempio n. 4
0
 public async Task <IActionResult> UpdateGarden([FromRoute(Name = "id")] Guid gardenId, [FromBody] GardenDto dto)
 {
     try
     {
         var me = ExtractIdFromToken(Request.Headers[HttpRequestHeader.Authorization.ToString()]);
         return(Ok(await service.ChangeGarden(me, gardenId, dto)));
     }
     catch (HttpResponseException)
     {
         throw;
     }
     catch (Exception)
     {
         throw new BadRequestApiException();
     }
 }
Esempio n. 5
0
        public async Task <QueryResults <GardenDto> > ChangeGarden(Guid me, Guid gardenId, GardenDto dto)
        {
            var garden = db.Gardens.Include(g => g.Photos)
                         .Include(g => g.Location)
                         .Include(g => g.Criteria)
                         .Include(g => g.Owner)
                         .GetByIdAsync(gardenId).Result ?? throw new NotFoundApiException();

            if (!garden.Owner.Id.Equals(me))
            {
                throw new ForbiddenApiException();
            }

            garden.Name        = dto.Name ?? garden.Name;
            garden.MinUse      = dto.MinUse ?? garden.MinUse;
            garden.Description = dto.Description ?? garden.Description;
            garden.Location    = dto.Location?.ConvertToModel() ?? garden.Location;
            garden.Criteria    = dto.Criteria?.ConvertToModel() ?? garden.Criteria;
            garden.Photos      = dto.Photos?.ConvertToModel <Garden>() ?? garden.Photos;

            db.Gardens.Update(garden);
            await db.SaveChangesAsync();

            return(new QueryResults <GardenDto>
            {
                Data = garden.ConvertToDto()
            });
        }