internal override DialogContext GetOrCreateDialogContext(BotFrameworkDbContext dbContext) { var contextSenderInfo = DiscordSenderInfoEntity.GetOrCreate(this, dbContext); var contextModel = DialogContextEntity.GetOrCreate(contextSenderInfo, ContextType, dbContext); return(new DialogContext(contextModel.State, contextModel.SenderInfoId, this, dbContext)); }
public static DialogContextEntity GetOrCreate( SenderInfoEntity senderInfoEntity, ContextType type, BotFrameworkDbContext dbContext) { DialogContextEntity contextModel = dbContext.DialogContexts.FirstOrDefault( c => c.SenderInfoId == senderInfoEntity.Id && c.ContextType == type); if (contextModel is null) { contextModel = new DialogContextEntity() { ContextType = type, SenderInfoId = senderInfoEntity.Id }; dbContext.DialogContexts.Add(contextModel); dbContext.SaveChanges(); } return(contextModel); }
internal abstract DialogContext GetOrCreateDialogContext(BotFrameworkDbContext dbContext);
public static DiscordSenderInfoEntity GetOrCreate(DiscordSenderInfo senderInfo, BotFrameworkDbContext dbContext) { var senderInfoEntity = dbContext.DiscordSenderInfos.FirstOrDefault( si => si.GuildId == senderInfo.GuildId && si.ChatId == senderInfo.ChatId && si.UserSenderId == senderInfo.UserSenderId ); if (senderInfoEntity is null) { senderInfoEntity = new DiscordSenderInfoEntity() { ChatId = senderInfo.ChatId, GuildId = senderInfo.GuildId, UserSenderId = senderInfo.UserSenderId }; dbContext.DiscordSenderInfos.Add(senderInfoEntity); dbContext.SaveChanges(); } return(senderInfoEntity); }
public StorageDialogContextProvider(BotFrameworkDbContext dbContext) => _dbContext = dbContext;
public static TelegramSenderInfoEntity GetOrCreate(TelegramSenderInfo senderInfo, BotFrameworkDbContext dbContext) { var senderInfoEntity = dbContext.TelegramSenderInfos.FirstOrDefault( si => si.ChatId == senderInfo.ChatId && si.UserSenderId == senderInfo.UserSenderId ); if (senderInfoEntity is null) { senderInfoEntity = new TelegramSenderInfoEntity() { ChatId = senderInfo.ChatId, UserSenderId = senderInfo.UserSenderId }; dbContext.TelegramSenderInfos.Add(senderInfoEntity); dbContext.SaveChanges(); } return senderInfoEntity; }