// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddCors(o => o.AddPolicy("MyPolicy", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); })); services.AddMvc().AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { // base-address of your identityserver options.Authority = Configuration.GetValue <string>(Const.IdpServerUrl); // name of the API resource options.Audience = Configuration.GetValue <string>(Const.ApiName); options.RequireHttpsMetadata = Configuration.GetValue <bool>(Const.RequireHttpsMetadata); }); //Set App Settings AppSettings appSettings = new AppSettings(); Configuration.GetSection(Const.AppSettingsKey).Bind(appSettings); NPocoEntityManager entityManager = new NPocoEntityManager(); ConsoleLogger eventViewerLogger = new ConsoleLogger(); NPocoDatabase nPocoDatabase = new NPocoDatabase(appSettings.ConnectionString); services.AddTransient <INewsManager>(c => new NewsManager(nPocoDatabase, entityManager, eventViewerLogger)); services.AddTransient <ICategoryManager>(c => new CategoryManager(nPocoDatabase, entityManager, eventViewerLogger)); }
// Flip the bit field in the Scheduled Task Queue public static void UpdateBitField(Guid taskId, int bit) { using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { var sql = Sql.Builder; sql.Append(ScheduledTaskTSQL.UpdateActiveBit(), new { @bitfield = bit, @taskId = taskId }); db.Execute(sql); } }
// Flip the bit field in the Scheduled Task Queue public static void UpdateTaskStatus(Guid taskId, Status status) { using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { var sql = Sql.Builder; sql.Append(ScheduledTaskTSQL.UpdateTaskStatus(), new { @status = status, @taskId = taskId }); db.Execute(sql); } }
// Creates an entry in ScheduledTaskQueueHist for the task //public static void MoveToHistory(dynamic task, Guid histId, string message, DateTime startTime, DateTime endTime) { // using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { // var sql = Sql.Builder; // sql.Append(ScheduledTaskTSQL.SetToHistory(), new { // @id = histId, @taskId = task.TaskId, @companyCode = task.CompanyCode, @notificationCompanyId = task.NotificationCompanyId, // @scheduledTime = task.ScheduledTime, @taskType = task.TaskType, @status = message, @startTime = startTime, // @endTime = endTime // }); // db.Execute(sql); // } //} // Update a task based on it's cron public static void UpdateScheduledTime(dynamic task, DateTime startTime, DateTime endTime) { using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { var sql = Sql.Builder; sql.Append(ScheduledTaskTSQL.UpdateScheduledTask(), new { @scheduledTime = ScheduleUtils.CalculateNextRun(task.ScheduledTime, task.ScheduleCron), @lastStartTime = startTime, @lastEndTime = endTime, @taskId = task.TaskId, @companyCode = task.CompanyCode }); db.Execute(sql); } }
public Scheduler() { using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { var sql = Sql.Builder; sql.Append(ScheduledTaskTSQL.ResetAllProcessingTasks()); db.Execute(sql); } Thread thread = new Thread(CreateAgents); thread.Start(); }
// Pull the scheduled tasks from the Queue private static void RunScheduledTasks(BufferBlock <ScheduledTaskQueueDto> buffer) { while (true) { List <ScheduledTaskQueueDto> tasks = new List <ScheduledTaskQueueDto>(); using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { var sql = Sql.Builder; sql.Append(ScheduledTaskTSQL.GetReadyTasks()); tasks = db.Fetch <ScheduledTaskQueueDto>(sql); } foreach (ScheduledTaskQueueDto task in tasks) { buffer.Post(task); ScheduleUtils.UpdateBitField(task.TaskId, 0); } Thread.Sleep(new TimeSpan(0, 1, 0)); // 1 minute interval } }
public static int LogMsg(string kind, string msg, dynamic value, string callerClass, string callerLineNumber, Guid?session = null) { int Result = -1; if (ConfigurationManager.AppSettings["logger"].ToLower() == "true") { using (IDatabase db = new NPocoDatabase("CommunicationCenter")) { session = (session == null) ? Guid.NewGuid() : session; var sql = Sql.Builder; switch (kind.ToLower()) { case "info": { msg = msg.Replace("{value}", (string)value); Log Log = new Log() { Guidfield = Guid.NewGuid(), DateCreated = DateTimeOffset.Now, Kind = "Info", Msg = msg, Value = (string)value, CallerClass = callerClass, CallerLineNumber = callerLineNumber, Session = (Guid)session }; db.Insert <Log>(Log); Result = Log.Id; } Console.WriteLine(msg); break; case "error": { //var Json = new JavaScriptSerializer().Serialize(value); Log Log = new Log() { Guidfield = Guid.NewGuid(), DateCreated = DateTimeOffset.Now, Kind = "Error", Msg = msg, Value = "",//Json, CallerClass = callerClass, CallerLineNumber = callerLineNumber, Session = (Guid)session }; db.Insert <Log>(Log); Result = Log.Id; } Console.WriteLine(msg); break; case "value": { var Json = new JavaScriptSerializer().Serialize(value); Log Log = new Log() { Guidfield = Guid.NewGuid(), DateCreated = DateTimeOffset.Now, Kind = "Value", Msg = msg, Value = Json, CallerClass = callerClass, CallerLineNumber = callerLineNumber, Session = (Guid)session }; db.Insert <Log>(Log); Result = Log.Id; Console.WriteLine(Json); } break; default: break; } } } return(Result); }