public async Task <IActionResult> Resolve([FromQuery] string uri)
        {
            if (string.IsNullOrEmpty(uri))
            {
                return(this.ErrorResponse(4001));
            }

            var result = await ImgAzyobuziNetService.Resolve(this.HttpContext.RequestServices, uri).ConfigureAwait(false);

            if (result == null)
            {
                return(this.ErrorResponse(4002));
            }

            if (result.Exception != null)
            {
                return(this.HandleException(result.PatternProvider.ServiceId, result.Exception));
            }

            return(JilJsonResult.Create(new
            {
                service_id = result.PatternProvider.ServiceId,
                service_name = result.PatternProvider.ServiceName,
                images = result.Images.ConvertAll(x => new
                {
                    full = x.Full,
                    large = x.Large,
                    thumb = x.Thumb,
                    video_full = x.VideoFull,
                    video_large = x.VideoLarge,
                    video_mobile = x.VideoMobile
                })
            }));
        }
        private IActionResult ErrorResponse(int error, string serviceId = null, Exception ex = null)
        {
            var s = errors[error];

            return(JilJsonResult.CreateWithStatusCode(new
            {
                error = new
                {
                    code = error,
                    message = s.Message,
                    exception = ex?.ToString()
                }
            }, s.StatusCode));
        }
 public IActionResult Services()
 {
     return(JilJsonResult.Create(ImgAzyobuziNetService.GetResolvers()
                                 .ConvertAll(x => new { id = x.ServiceId, name = x.ServiceName, pattern = x.Pattern })));
 }