예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="services"></param>
        public void ConfigureServices(IServiceCollection services)
        {
            SwaggerConfiguration.AddService(services);
            DbContextExtension.AddService(services, Configuration);
            CorsExtension.AddService(services);
            RouteExtension.AddService(services);
            RouteAnalyzerExtension.AddService(services);
            services.AddMemoryCache();
            services.AddHttpContextAccessor();
            services.AddSingleton <IActionContextAccessor, ActionContextAccessor>();

            try
            {
#pragma warning disable 618
                AuthenticationConfiguration.AddService(services, Configuration);
                services.AddAutoMapper();
#pragma warning disable 618
            }
            catch
            {
            }

            WebEncoderConfiguration.AddService(services);
            ValidateConfiguration.AddService(services);
            JsonExtension.AddService(services);
            SetCompatibilityVersionExtension.AddService(services);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="app"></param>
        /// <param name="env"></param>
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            SwaggerConfiguration.AddConfigure(app);
            AuthenticationConfiguration.AddConfigure(app);
            DevelopmentConfiguration.AddConfigure(app, env);

            app.UseStaticFiles();
            app.UseFileServer();
            CorsExtension.AddConfigure(app);
            ExceptionConfiguration.AddConfigure(app);

            var serviceProvider     = app.ApplicationServices;
            var httpContextAccessor = serviceProvider.GetRequiredService <IHttpContextAccessor>();

            AuthenticationContextService.AddConfigure(httpContextAccessor);
            RouteExtension.AddConfigure(app);
            RouteAnalyzerExtension.AddConfigure(app);
        }
예제 #3
0
        public async Task <IActionResult> ListDescendants([FromRoute] int parentAssetID, [FromRoute] RouteExtension extension)
        {
            if (parentAssetID <= 0)
            {
                ErrorObject.Add(new ArgumentNullException(nameof(parentAssetID)));
                return(ErrorObject);
            }

            try
            {
                // ReSharper disable PossibleInvalidOperationException
                (var assets, var taskActualities) = extension == RouteExtension.All ? await _assetHelper.ListDescendantsAsync(TenantID.Value, TenantMemberID.Value, parentAssetID)
                                                  : await _assetHelper.ListChildrenAsync(TenantID.Value, TenantMemberID.Value, parentAssetID);

                // ReSharper restore PossibleInvalidOperationException

                var result = BuildResut(assets, taskActualities);

                if (result == null || !result.Any())
                {
                    return(NoContent());
                }

                return(Ok(result));
            }
            catch (AssetDeletedException ex)
            {
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
            catch (AssetArchivedException ex)
            {
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
            catch (Exception ex)
            {
                ErrorObject.StatusCode = (int)HttpStatusCode.InternalServerError;
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
        }