using IM_API.Dtos; using IM_API.Interface.Services; using IM_API.Services; using IM_API.Tools; using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; namespace IM_API.Configs { public static class ServiceCollectionExtensions { public static IServiceCollection AddAllService(this IServiceCollection services, IConfiguration configuration) { services.AddAutoMapper(typeof(MapperConfig)); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddSingleton(); services.AddSingleton(); return services; } public static IServiceCollection AddModelValidation(this IServiceCollection services, IConfiguration configuration) { services.Configure(options => { options.InvalidModelStateResponseFactory = context => { var errors = context.ModelState .Where(e => e.Value.Errors.Count > 0) .Select(e => new { Field = e.Key, Message = e.Value.Errors.First().ErrorMessage }); return new BadRequestObjectResult(new BaseResponse(CodeDefine.PARAMETER_ERROR.Code, errors.First().Message)); }; }); return services; } } }