Ejemplo n.º 1
0
 private static DTO.OpeningPeriod CreateDTOFromEntity(Model.OpeningPeriod op)
 {
     //fixme: Possibilité d'amélioration ?
     return(new DTO.OpeningPeriod()
     {
         Id = op.Id,
         Opening = op.Opening,
         Closing = op.Closing,
         Day = op.Day,
         // on ne le stocke pas en DB car calculable, mais on facilite la vie
         // des applications clientes en le proposant dans le DTO!
         DurationOfOpening = op.Closing.Subtract(op.Opening)
     });
 }
Ejemplo n.º 2
0
        public async Task <IActionResult> Delete(int id)
        {
            Model.OpeningPeriod entity = await FindOpeningPeriodById(id);

            if (entity == null)
            {
                // todo: débat: si l'on demande une suppression d'une entité qui n'existe pas
                // s'agit-il vraiment d'un cas d'erreur?
                return(NotFound());
            }
            _context.Remove(entity);
            await _context.SaveChangesAsync();

            return(Ok());
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Put(int id, [FromBody] DTO.OpeningPeriod dto)
        {
            Model.OpeningPeriod entity = await FindOpeningPeriodById(id);

            if (entity == null)
            {
                return(NotFound());
            }
            //fixme: comment améliorer cette implémentation?
            entity.Closing = dto.Closing;
            entity.Day     = dto.Day;
            entity.Opening = dto.Opening;
            await _context.SaveChangesAsync();

            return(Ok());
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Post(int shopId, [FromBody] DTO.OpeningPeriod dto)
        {
            Model.Shop shop = await FindShopById(shopId);

            if (shop == null)
            {
                return(NotFound());
            }
            int userId = int.Parse(User.Claims.First(c => c.Type == PrivateClaims.UserId).Value);

            #region ...
            if (!User.IsInRole(Constants.Roles.Admin) && shop.OwnerId != userId)
            {
                return(Forbid());
            }
            #endregion

            Model.OpeningPeriod entity = CreateEntityFromDTO(dto);
            shop.AddOpeningPeriod(entity);
            await _context.SaveChangesAsync();

            return(Created($"api/{entity.Id}", CreateDTOFromEntity(entity)));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> GetById(int id)
        {
            Model.OpeningPeriod entity = await FindOpeningPeriodById(id);

            return((entity == null) ? NotFound() : (IActionResult)Ok(CreateDTOFromEntity(entity)));
        }