Ejemplo n.º 1
0
        public virtual async Task <IActionResult> Index()
        {
            var context = CreateIndexContext();

            try
            {
                var model = await EntityService.ExecuteAsync <IDatabaseContext, IAuthenticationProvider, EntityDomainAuthorizeOption, IEntityViewModel <T> >(context, EntityService.List);

                foreach (var button in model.ViewButtons)
                {
                    button.SetTarget(HttpContext.RequestServices);
                }
                if (IsJsonRequest())
                {
                    EntityJsonConverter entityConverter = new Mvc.EntityJsonConverter(EntityDomainAuthorizeOption.View, HttpContext.RequestServices.GetRequiredService <IAuthenticationProvider>().GetAuthentication());
                    return(Content(JsonConvert.SerializeObject(model, entityConverter, EntityMetadataJsonConverter.Converter, PropertyMetadataJsonConverter.Converter, EntityViewModelJsonConverter.Converter), "application/json", System.Text.Encoding.UTF8));
                }
                return(View(model));
            }
            catch (UnauthorizedAccessException ex)
            {
                return(StatusCode(401, ex.Message));
            }
        }
Ejemplo n.º 2
0
        public virtual async Task <IActionResult> Detail()
        {
            var context = CreateDetailContext();

            try
            {
                var model = await EntityService.ExecuteAsync <IDatabaseContext, IAuthenticationProvider, IValueProvider, EntityDomainAuthorizeOption, IEntityEditModel <T> >(context, EntityService.Detail);

                if (IsJsonRequest())
                {
                    EntityJsonConverter entityConverter = new Mvc.EntityJsonConverter(EntityDomainAuthorizeOption.Detail, HttpContext.RequestServices.GetRequiredService <IAuthenticationProvider>().GetAuthentication());
                    return(Content(JsonConvert.SerializeObject(model, entityConverter, EntityMetadataJsonConverter.Converter, PropertyMetadataJsonConverter.Converter, EntityEditModelJsonConverter.Converter), "application/json", System.Text.Encoding.UTF8));
                }
                return(View(model));
            }
            catch (UnauthorizedAccessException ex)
            {
                return(StatusCode(401, ex.Message));
            }
            catch (EntityNotFoundException ex)
            {
                return(StatusCode(404, ex.Message));
            }
        }