Notify werks delete not
This commit is contained in:
		
							parent
							
								
									096bcb7d59
								
							
						
					
					
						commit
						f2ca526678
					
				
										
											Binary file not shown.
										
									
								
							| @ -12,6 +12,7 @@ using Discord; | ||||
| using Discord.WebSocket; | ||||
| using Google.Apis.Auth.OAuth2; | ||||
| using Google.Apis.Sheets.v4; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| 
 | ||||
| namespace DiscoBot.gsmeet | ||||
| { | ||||
| @ -48,8 +49,19 @@ namespace DiscoBot.gsmeet | ||||
|                 ApplicationName = ApplicationName | ||||
|             }); | ||||
| 
 | ||||
|             gsmeetContext.GSheets.Include(s => s.NotifiedEvents).Load(); | ||||
|             gsmeetContext.GSheets.Include(s => s.NotifiedUsers).Load(); | ||||
| 
 | ||||
|             foreach (var f in gsmeetContext.GSheets) | ||||
|             { | ||||
|                 if(f.NotifiedUsers == null) | ||||
|                 { | ||||
|                     f.NotifiedUsers = new List<GSMeetUserNotification>(); | ||||
|                 } | ||||
|                 if(f.NotifiedEvents == null) | ||||
|                 { | ||||
|                     f.NotifiedEvents = new List<GSMeetEventNotification>(); | ||||
|                 } | ||||
|                 InitializeSheet(f); | ||||
|                 HandleSheetCheck(f); | ||||
|             } | ||||
| @ -120,14 +132,29 @@ namespace DiscoBot.gsmeet | ||||
|             foreach(var date in sheetData.Dates) | ||||
|             { | ||||
|                  | ||||
|                 if(DateTimeOffset.UtcNow + new TimeSpan(4,0,0,0) > date) | ||||
|                 if(DateTimeOffset.UtcNow + new TimeSpan(4,0,0,0) > date && date > DateTimeOffset.UtcNow) | ||||
|                 { | ||||
|                     await chan.SendMessageAsync("I should signup notify for " + date); | ||||
|                     foreach (var user in sheetData.Users) | ||||
|                     { | ||||
|                         if (!user.Signups.ContainsKey(date)) | ||||
|                         { | ||||
|                             bool doNotify = true; | ||||
|                             foreach(var notification in sheetData.Sheet.NotifiedUsers) | ||||
|                             { | ||||
|                                 if(notification.Date == date && notification.DiscordTag == user.DiscordTag) | ||||
|                                 { | ||||
|                                     Console.WriteLine("User already notified."); | ||||
|                                     doNotify = false; | ||||
|                                     break; | ||||
|                                 } | ||||
|                             } | ||||
|                             if (doNotify) | ||||
|                             { | ||||
|                                 await chan.SendMessageAsync("Hey " + user.DiscordTag + " please sign up for our raid on " + date); | ||||
|                                 var n = new GSMeetUserNotification(user.DiscordTag, date); | ||||
|                                 sheetData.Sheet.NotifiedUsers.Add(n); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
| @ -147,6 +174,28 @@ namespace DiscoBot.gsmeet | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private Task CleanupNotifyDB(GSMeetSheetData sheetData) | ||||
|         { | ||||
|             /* | ||||
|             foreach(var n in sheetData.Sheet.NotifiedEvents) | ||||
|             { | ||||
|                 if(DateTimeOffset.UtcNow > n.Date) | ||||
|                 { | ||||
|                     sheetData.Sheet.NotifiedEvents.Remove(n); | ||||
|                 } | ||||
|             } | ||||
|             foreach (var n in sheetData.Sheet.NotifiedUsers) | ||||
|             { | ||||
|                 if (DateTimeOffset.UtcNow > n.Date) | ||||
|                 { | ||||
|                     sheetData.Sheet.NotifiedUsers.Remove(n); | ||||
|                 } | ||||
|             } | ||||
|             gsmeetContext.SaveChanges(); | ||||
|             */ | ||||
|             return Task.CompletedTask; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         private async Task HandleSheetCheck(DBSheet sheet) | ||||
|         { | ||||
| @ -162,6 +211,8 @@ namespace DiscoBot.gsmeet | ||||
|             await c.SendMessageAsync("Parsed sheet " + sheet.Id); | ||||
|             await SignupNotify(c, sheetData); | ||||
|             await RaidNotify(c, sheetData); | ||||
|             gsmeetContext.SaveChanges(); | ||||
|             CleanupNotifyDB(sheetData); | ||||
|             /* | ||||
|             var str = ""; | ||||
|             foreach (var row in values) | ||||
|  | ||||
| @ -35,7 +35,7 @@ namespace DiscoBot.gsmeet | ||||
|         public TimeSpan CheckInterval { get; set; } | ||||
|         public DateTimeOffset LastChecked { get; set; } | ||||
|         public List<GSMeetEventNotification> NotifiedEvents { get; set; } | ||||
|         public List<GSMeetUserNotification> NotifiedDates { get; set; } | ||||
|         public List<GSMeetUserNotification> NotifiedUsers { get; set; } | ||||
|     } | ||||
| 
 | ||||
|     public class GSMeetEventNotification | ||||
| @ -49,6 +49,11 @@ namespace DiscoBot.gsmeet | ||||
| 
 | ||||
|     public class GSMeetUserNotification | ||||
|     { | ||||
|         public GSMeetUserNotification(string discordTag, DateTimeOffset date) | ||||
|         { | ||||
|             this.DiscordTag = discordTag; | ||||
|             this.Date = date; | ||||
|         } | ||||
|         [ScaffoldColumn(false)] | ||||
|         [DatabaseGenerated(DatabaseGeneratedOption.Identity)] | ||||
|         [Key] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user