public async Task <JsonResult> Search([FromBody] SearchModel filter)
        {
            var result = new GetManyResult <TModel>();

            try
            {
                var request = ConvertSearchModelToSearchFilter <TEntity> .Convert(filter);

                var response = await((IGenericService <TEntity>)_service).GetMany(request);

                if (response.Success)
                {
                    result.Success     = response.Success;
                    result.Entities    = Mapper.Map <IEnumerable <TEntity>, IEnumerable <TModel> >(response.Entities);
                    result.TotalAmount = response.TotalAmount;
                    result.Message     = response.Message ?? null;
                    result.StatusCode  = response.StatusCode;
                    result.Exception   = response.Exception ?? null;
                }
                else
                {
                    result.Success     = false;
                    result.Entities    = response.Entities == null ? null : Mapper.Map <IEnumerable <TEntity>, IEnumerable <TModel> >(response.Entities);
                    result.TotalAmount = response.TotalAmount <= 0 ? 0 : response.TotalAmount;
                    result.Message     = response.Message;
                    result.StatusCode  = response.StatusCode;
                    result.Exception   = response.Exception;
                }
            }
            catch (Exception ex)
            {
                result.Entities    = null;
                result.TotalAmount = 0;
                result.Success     = false;
                result.Message     = ex.Message;
                result.StatusCode  = 500;
                result.Exception   = ex;
            }

            return(Json(result));
        }
        public async Task <JsonResult> Count([FromBody] SearchModel filter)
        {
            var result = new GetCountResult <TModel>();

            try
            {
                var request = ConvertSearchModelToSearchFilter <TEntity> .Convert(filter);

                var response = await((IGenericService <TEntity>)_service).Count(request);

                if (response.Success)
                {
                    result.Success = response.Success;

                    result.Amount     = response.Amount;
                    result.Message    = response.Message ?? null;
                    result.StatusCode = response.StatusCode;
                    result.Exception  = response.Exception ?? null;
                }
                else
                {
                    result.Success = false;

                    result.Amount     = response.Amount <= 0 ? 0 : response.Amount;
                    result.Message    = response.Message;
                    result.StatusCode = response.StatusCode;
                    result.Exception  = response.Exception;
                }
            }
            catch (Exception ex)
            {
                result.Amount     = 0;
                result.Success    = false;
                result.Message    = ex.Message;
                result.StatusCode = 500;
                result.Exception  = ex;
            }
            return(Json(result));
        }