示例#1
0
        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);
        }
示例#3
0
 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;
        }