public async Task <IActionResult> GetById(string id)
        {
            try
            {
                var entity = await employeeApp.GetAsync(id);

                if (entity.IsNull())
                {
                    return(NotFound());
                }

                var model = EmployeeModel.ToModel(entity);

                var urlHelper   = urlHelperFactory.GetUrlHelper(ControllerContext);
                var getByIdlink = GetEmployeeByIdLink(urlHelper, model.Id, true);
                var deleteLink  = DeleteEmployeeLink(urlHelper, model.Id);
                var updateLink  = UpdateEmployeeLink(urlHelper, model.Id);

                model.Links = new List <Link>
                {
                    getByIdlink,
                    updateLink,
                    deleteLink
                };

                return(Ok(model));
            }
            catch (InvalidParameterException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(InternalServerError(new UnpredictableException(ex)));
            }
        }