protected virtual AmwResponse <T> GetExceptionResponse <T>(Exception ex)
        {
            var res = new AmwResponse <T>
            {
                HasErrors = true,
                Status    = System.Net.HttpStatusCode.InternalServerError
            };

            do
            {
                res.Errors.Add(new ErrorModel
                {
                    Error     = ex.Message,
                    Exception = ex
                });

                ex = ex.InnerException;
            } while (ex != null);

            return(res);
        }
        protected virtual AmwResponse <object> GetResponse(object data, HttpStatusCode status = HttpStatusCode.OK)
        {
            var response = new AmwResponse <object>()
            {
                Data   = data,
                Count  = 1,
                Status = status
            };

            if (data == null)
            {
                response.HasErrors = true;
                response.Count     = 0;
            }
            else if (data is IEnumerable <object> dataList)
            {
                response.Count = dataList.Count();
            }

            return(response);
        }
        protected virtual AmwResponse <T> GetModelValidationResponse <T>()
        {
            var res = new AmwResponse <T>
            {
                Errors    = new List <ErrorModel>(),
                HasErrors = true,
                Status    = System.Net.HttpStatusCode.BadRequest
            };

            foreach (var item in ModelState.Values)
            {
                foreach (var error in item.Errors)
                {
                    res.Errors.Add(new ErrorModel()
                    {
                        Error     = error.ErrorMessage,
                        Exception = error.Exception,
                    });
                }
            }

            return(res);
        }