static void Main(string[] args) { var service = new MessageQueries(); int hour = DateTime.Now.Hour; int Minute = DateTime.Now.Minute; if (hour == 7 && Minute == 30) { // 7:30 提醒未进行健康信息情况填报的学生家长 填写体温等健康信息 service.GetListsXSBeforeToSchoolSend(); // 7:30 提醒未进行健康信息情况填报的教职员工填写体温等健康信息 service.GetListsJZGBeforeToSchoolSend(); } else if (hour == 10 && Minute == 0) { //教职工 10:00 提醒未进行晨检情况填报的 教职工 填写体温等健康信息 service.GetListsJZGMorningSend(); } else if (hour == 13 && Minute == 30) { //教职工 13:30 提醒未进行午检情况填报的 教职工 填写体温等健康信息 service.GetListsJZGNoonSend(); } }
public async Task <IEnumerable <MessageObject> > GetMessageObjects(string wellUid, string wellboreUid) { var start = DateTime.Now; var witsmlMessage = MessageQueries.GetMessageByWellbore(wellUid, wellboreUid); var result = await WitsmlClient.GetFromStoreAsync(witsmlMessage, new OptionsIn(ReturnElements.Requested)); var messageObjects = result.Messages .Select(message => new MessageObject { Uid = message.Uid, Name = message.Name, WellboreUid = message.UidWellbore, WellboreName = message.NameWellbore, WellUid = message.UidWell, WellName = message.NameWell, MessageText = message.MessageText, DateTimeLastChange = StringHelpers.ToDateTime(message.CommonData.DTimLastChange), DateTimeCreation = StringHelpers.ToDateTime(message.CommonData.DTimCreation) }) .OrderBy(message => message.WellboreName).ToList(); var elapsed = DateTime.Now.Subtract(start).Milliseconds / 1000.0; Log.Debug("Fetched {Count} messageobjects from {WellboreName} in {Elapsed} seconds", messageObjects.Count, messageObjects.FirstOrDefault()?.WellboreName, elapsed); return(messageObjects); }
public override async Task <(WorkerResult, RefreshAction)> Execute(DeleteMessageObjectsJob job) { Verify(job); var wellUid = job.MessageObjects.First().WellUid; var wellboreUid = job.MessageObjects.First().WellboreUid; var messagesExpanded = $"[ {string.Join(", ", job.MessageObjects.Select(l => l.Uid))} ]"; var jobDescription = $"Delete {job.MessageObjects.Count()} Messages under wellUid: {wellUid}, wellboreUid: {wellboreUid}. Messages: {messagesExpanded}"; var queries = job.MessageObjects.Select(l => MessageQueries.GetMessageById(l.WellUid, l.WellboreUid, l.Uid)); var tasks = queries.Select(q => witsmlClient.DeleteFromStoreAsync(q)).ToList(); await Task.WhenAll(tasks); if (tasks.Any(t => t.IsFaulted)) { var numFailed = tasks.Count(t => !t.Result.IsSuccessful); var reasons = string.Join(",", tasks.Where(t => !t.Result.IsSuccessful).Select(t => t.Result.Reason).ToArray()); Log.Error($"FAILURE deleting {numFailed} of {tasks.Count} Messages due to {reasons}"); return(new WorkerResult(witsmlClient.GetServerHostname(), false, $"Job failed deleting {numFailed} messages", reasons), null); } Log.Information($"SUCCESS - {jobDescription}"); return( new WorkerResult(witsmlClient.GetServerHostname(), true, $"{tasks.Count} messages deleted for wellbore {wellboreUid}"), new RefreshMessageObjects(witsmlClient.GetServerHostname(), wellUid, wellboreUid, RefreshType.Update) ); }
public async Task <MessageObject> GetMessageObject(string wellUid, string wellboreUid, string msgUid) { var witsmlMessage = MessageQueries.GetMessageById(wellUid, wellboreUid, msgUid); var result = await WitsmlClient.GetFromStoreAsync(witsmlMessage, new OptionsIn(ReturnElements.All)); var messageObject = result.Messages.FirstOrDefault(); if (messageObject == null) { return(null); } return(new MessageObject { WellboreUid = messageObject.UidWellbore, WellboreName = messageObject.NameWellbore, WellUid = messageObject.UidWell, WellName = messageObject.NameWell, Uid = messageObject.Uid, Name = messageObject.Name, MessageText = messageObject.MessageText, DateTimeCreation = StringHelpers.ToDateTime(messageObject.CommonData.DTimCreation), DateTimeLastChange = StringHelpers.ToDateTime(messageObject.CommonData.DTimLastChange) }); }
public override async Task <(WorkerResult, RefreshAction)> Execute(ModifyMessageObjectJob job) { var modifyMessageQuery = MessageQueries.CreateMessageObject(job.MessageObject); var modifyMessageResult = await witsmlClient.UpdateInStoreAsync(modifyMessageQuery); if (!modifyMessageResult.IsSuccessful) { const string errorMessage = "Failed to modify message object"; Log.Error("{ErrorMessage}. Target: UidWell: {TargetWellUid}, UidWellbore: {TargetWellboreUid}", errorMessage, job.MessageObject.WellUid, job.MessageObject.WellboreUid); return(new WorkerResult(witsmlClient.GetServerHostname(), false, errorMessage, modifyMessageResult.Reason), null); } Log.Information("{JobType} - Job successful. MessageObject modified", GetType().Name); var refreshAction = new RefreshMessageObjects(witsmlClient.GetServerHostname(), job.MessageObject.WellUid, job.MessageObject.WellboreUid, RefreshType.Update); var workerResult = new WorkerResult(witsmlClient.GetServerHostname(), true, $"MessageObject {job.MessageObject.Name} updated for {job.MessageObject.WellboreName}"); return(workerResult, refreshAction); }