public async Task <IActionResult> GetById(int id)
        {
            Model.Zoning entity = await dataAccess.FindByIdAsync(id);

            if (entity == null)
            {
                return(NotFound());
            }

            DTO.Zoning zoning = Mapper.Map <DTO.Zoning>(entity);
            zoning.NbImplantations = new CompanyDataAccess(Context).GetTotalCount(zoningId: zoning.Id);
            return(Ok(zoning));
        }
        public async Task <IActionResult> Post([FromBody] DTO.Zoning data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Model.Zoning entity = Mapper.Map <Model.Zoning>(data);
            entity = await dataAccess.AddAsync(entity);

            DTO.Zoning zoning = Mapper.Map <DTO.Zoning>(entity);
            zoning.NbImplantations = new CompanyDataAccess(Context).GetTotalCount(zoningId: zoning.Id);
            return(Created($"api/Zoning/{entity.Id}", zoning));
        }
        public async Task <IActionResult> Get(int?pageIndex = Constants.Page.Index, int?pageSize = Constants.Page.Size, String zoningName = null)
        {
            IEnumerable <Model.Zoning> entities = await dataAccess.GetAllAsync(pageIndex.Value, pageSize.Value, zoningName);

            Request.HttpContext.Response.Headers.Add("X-TotalCount", dataAccess.GetTotalCount().ToString());
            Request.HttpContext.Response.Headers.Add("X-PageIndex", pageIndex.Value.ToString());
            Request.HttpContext.Response.Headers.Add("X-PageSize", pageSize.Value.ToString());

            IEnumerable <DTO.Zoning> zonings = entities.Select(entity => {
                DTO.Zoning zoning      = Mapper.Map <DTO.Zoning>(entity);
                zoning.NbImplantations = new CompanyDataAccess(Context).GetTotalCount(zoningId: zoning.Id);
                return(zoning);
            });

            return(Ok(zonings));
        }
        public async Task <IActionResult> Put(int id, [FromBody] DTO.Zoning data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Model.Zoning entity = await dataAccess.FindByIdAsync(id);

            if (entity == null)
            {
                return(NotFound());
            }

            entity = await dataAccess.EditAsync(Mapper.Map(data, entity));

            DTO.Zoning zoning = Mapper.Map <DTO.Zoning>(entity);
            zoning.NbImplantations = new CompanyDataAccess(Context).GetTotalCount(zoningId: zoning.Id);
            return(Accepted(zoning));
        }