public async Task <IActionResult> Create(SmartZoneDTO dto,
                                                 CancellationToken cancellationToken = default)
        {
            var smartZone = _mapper.Map <ESZ.SmartZone>(dto);

            smartZone.IsDeleted = smartZone.IsExpired = false;
            _smartZoneRepository.Add(smartZone);
            await _smartZoneRepository.SaveChangesAsync(cancellationToken);

            return(CreatedAtAction(nameof(GetById), new { smartZone.Id }, _mapper.Map <SmartZoneDTO>(smartZone)));
        }
        public async Task <IActionResult> Update(SmartZoneDTO dto,
                                                 CancellationToken cancellationToken = default)
        {
            var smartZone = await _smartZoneRepository.FindByIdAsync(dto.Id, cancellationToken);

            if (smartZone == null || smartZone.IsDeleted == true)
            {
                return(NotFound("Cannot find your SmartZone with id {0} "
                                + dto.Id
                                + " or it has been deleted"));
            }

            smartZone = _mapper.Map <ESZ.SmartZone>(dto);
            _smartZoneRepository.Update(smartZone);
            await _smartZoneRepository.SaveChangesAsync(cancellationToken);

            return(CreatedAtAction(nameof(GetById), new { dto.Id }, _mapper.Map <SmartZoneDTO>(smartZone)));
        }