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;
        }
        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 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);
        }