public override void Configure(Container container) { LogManager.LogFactory = new NLogFactory(); GlobalRequestFilters.Add((req, resp, requestDto) => { ILog log = LogManager.GetLogger(GetType()); log.Debug(string.Format( "REQ {0}: {1} {2} {3} {4} {5}\n", DateTimeOffset.Now.Ticks, req.Verb, req.OperationName, req.RemoteIp, req.RawUrl, req.UserAgent)); }); GlobalResponseFilters.Add((req, resp, requestDto) => { ILog log = LogManager.GetLogger(GetType()); log.Debug(string.Format( "RES {0}: {1} {2}\n", DateTimeOffset.Now.Ticks, resp.StatusCode, resp.ContentType)); }); this.ServiceExceptionHandlers.Add((httpReq, request, exception) => { ILog log = LogManager.GetLogger(GetType()); log.Error(exception); return(DtoUtils.CreateErrorResponse(request, exception)); }); var config = new HostConfig(); config.DebugMode = true; //Show StackTraces in service responses during development config.WriteErrorsToResponse = true; config.ReturnsInnerException = true; SetConfig(config); }
public override void Configure(Container container) { JsConfig.EmitCamelCaseNames = true; Plugins.Add(new SwaggerFeature()); var manager = new InsteonManager(insteonSource); container.Register(manager); var settingsProvider = new SettingsProvider(new RoamingAppDataStorage("Insteon")); var mySettings = settingsProvider.GetSettings <SmartThingsSettings>(); container.Register(mySettings); manager.Network.Devices.DeviceStatusChanged += (sender, data) => { logger.DebugFormat("{0}:{1}", data.Device.Address, data.DeviceStatus); var settings = container.Resolve <SmartThingsSettings>(); var cb = new SmartThingsCallbacks(settings); cb.PushDeviceStatusUpdate(data.Device, data.DeviceStatus); }; GlobalResponseFilters.Add((req, res, dto) => { res.AddHeader("X-Insteon", ServiceName); }); manager.Connect(); }
public override void Configure(Container container) { GlobalRequestFilters.Add((rew, res, dto) => ReplyAllRequestAttribute.AssertSingleDto(dto)); GlobalResponseFilters.Add((rew, res, dto) => ReplyAllResponseAttribute.AssertSingleDto(dto)); container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider)); }
public override void Configure() { var requestFilters = _appHost.GetExports <IRequestFilter>().ToList(); foreach (var filter in requestFilters) { GlobalRequestFilters.Add(filter.Filter); } GlobalResponseFilters.Add(new ResponseFilter(_logger).FilterResponse); }
public override void Configure(Container container) { LogManager.LogFactory = new NLogFactory(); GlobalRequestFilters.Add((req, resp, requestDto) => { ILog log = LogManager.GetLogger(GetType()); log.Info(string.Format( "REQ {0}: {1} {2} {3} {4} {5} \n", DateTimeOffset.Now.Ticks, req.Verb, req.OperationName, req.RemoteIp, req.RawUrl, req.UserAgent)); }); GlobalResponseFilters.Add((req, resp, requestDto) => { ILog log = LogManager.GetLogger(GetType()); log.Info(string.Format( "RES {0}: {1} {2}\n", DateTimeOffset.Now.Ticks, resp.StatusCode, resp.ContentType)); }); this.ServiceExceptionHandlers.Add((httpReq, request, exception) => { ILog log = LogManager.GetLogger(GetType()); log.Error(exception); //call default exception handler or prepare your own custom response return(DtoUtils.CreateErrorResponse(request, exception)); }); /* * Plugins.Add (new AuthFeature (() => new AuthUserSession (), * new IAuthProvider[] {new BasicAuthProvider ()}) * ); * Plugins.Add (new RegistrationFeature ()); * //Plugins.Add(new RequestLogsFeature()); * * container.Register<ICacheClient>(new MemoryCacheClient()); * var userRep = new InMemoryAuthRepository(); * container.Register<IUserAuthRepository>(userRep); */ var config = new HostConfig(); config.DebugMode = true; //Show StackTraces in service responses during development config.WriteErrorsToResponse = true; config.ReturnsInnerException = true; SetConfig(config); }
public override void Configure(Container container) { GlobalResponseFilters.Add((req, res, dto) => { res.AddHeader("X-Paradox", ServiceName); }); JsConfig.EmitCamelCaseNames = true; Plugins.Add(new SwaggerFeature()); bool smartThingsEnabled = Convert.ToBoolean(ConfigurationManager.AppSettings["enableSmartThings"]); if (smartThingsEnabled) { Plugins.Add(new SmartThingsPlugin()); } var manager = new IpModuleManager(module); // try one attempt to logout/login if can't login initially if (!manager.Login()) { logger.Warn("Couldn't login. Attempting to logout then login to alarm module."); manager.Logout(); manager.Login(); } try { manager.GetAlarmInformation(); } catch (Exception) { logger.Error("Problem logging in and getting alarm information. Services will start but Alarm host will not be connected."); } container.Register(manager); alarmStatusCheckThread = new Thread(manager.StartStatusUpdates); container.Register(alarmStatusCheckThread); alarmStatusCheckThread.Start(); }
// Configure your AppHost with the necessary configuration and dependencies your App needs public override void Configure(Container container) { Plugins.Add(new PostmanFeature()); Plugins.Add(new OpenApiFeature()); SetConfig(new HostConfig { DebugMode = AppSettings.Get(nameof(HostConfig.DebugMode), false), #if DEBUG AdminAuthSecret = "adm1nSecret", // Enable Admin Access with ?authsecret=adm1nSecret #endif }); container.Register <IList <GroupModel> >(new List <GroupModel>()); GlobalRequestFilters.Add((req, resp, reqDto) => { req.Items.Add("BeginTimestamp", DateTime.Now); }); GlobalResponseFilters.Add((req, resp, respDto) => { Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"**************** {nameof(GlobalResponseFilters)} ****************"); //Console.WriteLine($"***** req: {req.ToSafeJson()}"); Console.WriteLine(); var beginTimestamp = req.Items["BeginTimestamp"]; var endTimestamp = DateTime.Now; Console.WriteLine($"=====> Request at [{beginTimestamp}]"); if (req.IsAuthenticated()) { var session = req.SessionAs <CustomUserSession>(); var authRepo = container.Resolve <IAuthRepository>(); var manageRole = authRepo as IManageRoles; var roles = manageRole.GetRoles(session.UserAuthId); Console.WriteLine($" Username: {session.UserName}, Roles: {roles.ToSafeJson()}"); } Console.WriteLine($" {req.Verb}, {req.OperationName}, {req.Dto.ToSafeJson()}"); Console.WriteLine(); Console.WriteLine($"<===== Response at [{endTimestamp}]"); Console.WriteLine($" Type: {respDto.GetType().Name}"); // Console.WriteLine($"***** resp: {resp.ToSafeJson()}"); // Console.WriteLine(); if (respDto is HttpError) { var error = respDto as HttpError; var respStatus = error.ResponseStatus; Console.WriteLine($" Status: {error.Status}, {error.StatusCode}, {respStatus.ErrorCode}, {respStatus.Message}"); Console.WriteLine(); } else { object success = respDto is HttpResult ? (respDto as HttpResult).Response : respDto; Console.WriteLine($" respDto: {success.ToSafeJson()}"); Console.WriteLine(); } }); //Handle Exceptions occurring in Services: // ServiceExceptionHandlers.Add((httpReq, request, exception) => { //log your exceptions here... return(null); //continue with default Error Handling //or return your own custom response //return DtoUtils.CreateErrorResponse(request, exception); }); //Handle Unhandled Exceptions occurring outside of Services //E.g. Exceptions during Request binding or in filters: // UncaughtExceptionHandlers.Add((req, res, operationName, ex) => { res.Write($"Error: {ex.GetType().Name}: {ex.Message}"); res.EndRequest(skipHeaders: true); }); container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider)); container.Register <IAuthRepository>(c => new OrmLiteAuthRepository(c.Resolve <IDbConnectionFactory>()) { UseDistinctRoleTables = true, }); container.Resolve <IAuthRepository>().InitSchema(); // // TODO: Replace OAuth App settings in: appsettings.Development.json Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { // new NetCoreIdentityAuthProvider(AppSettings) { // Adapter to enable ServiceStack Auth in MVC // AdminRoles = { "Manager" }, // Automatically Assign additional roles to Admin Users // }, new BasicAuthProvider(), //Allow Sign-ins with HTTP Basic Auth new CredentialsAuthProvider(AppSettings), // Sign In with Username / Password credentials // new FacebookAuthProvider(AppSettings), /* Create Facebook App at: https://developers.facebook.com/apps */ // new TwitterAuthProvider(AppSettings), /* Create Twitter App at: https://dev.twitter.com/apps */ // new GoogleAuthProvider(AppSettings), /* Create App https://console.developers.google.com/apis/credentials */ // new MicrosoftGraphAuthProvider(AppSettings), /* Create App https://apps.dev.microsoft.com */ }) { IncludeRegistrationService = true, IncludeAssignRoleServices = false, }); AddSeedUsers((IUserAuthRepository)container.Resolve <IAuthRepository>()); }