Ejemplo n.º 1
0
        public IDatabaseError SaveMessageToStash(IStashMessage stashMessage)
        {
            if (!stashMessage.IsEncrypt)
            {
                throw new ArgumentException("An unencrypted message cannot be stored in a stash");
            }

            if (!stashMessage.IsDownloaded)
            {
                throw new ArgumentException("An undownloaded message cannot be stored in a stash");
            }

            StashMessageModel messageModel = ((IStashMessageDatabaseModelConverter)stashMessage).ToStashMessageModel();

            using (StashMessagesContext db = new StashMessagesContext())
            {
                if (!CheckStashLimit(stashMessage.ChatId, db))
                {
                    return(new StashFullError());
                }

                db.StashMessages.Add(messageModel);
                db.SaveChanges();
            }

            return(new NullError());
        }
Ejemplo n.º 2
0
        public IDatabaseError SaveMessageToStash(IStashMessage stashMessage)
        {
            if (!stashMessage.IsEncrypt)
            {
                throw new ArgumentException("An unencrypted message cannot be stored in a stash");
            }

            if (!stashMessage.IsDownloaded)
            {
                throw new ArgumentException("An undownloaded message cannot be stored in a stash");
            }

            if (!CheckStashLimit(stashMessage.ChatId))
            {
                return(new StashFullError());
            }

            if (!IsStashExist(stashMessage.ChatId))
            {
                usersStashes.Add(stashMessage.ChatId, new List <IStashMessage>());
            }

            long databaseMessageId = 0;

            if (usersStashes[stashMessage.ChatId].Count > 0)
            {
                databaseMessageId = usersStashes[stashMessage.ChatId].Last().DatabaseMessageId.Value + 1;
            }
            ((IStashMessageLocalDatabaseId)stashMessage).UpdateDatabaseMessageId(databaseMessageId);

            usersStashes[stashMessage.ChatId].Add(stashMessage);

            return(new NullError());
        }
Ejemplo n.º 3
0
        private async Task SaveMessageToStash(ITelegramUserMessage message)
        {
            IDatabaseManager databaseManager = ModulesManager.GetModulesManager().GetDatabaseManager();

            IUser user = databaseManager.GetUser(message.ChatId);

            if (user != null && user.IsAuthorized)
            {
                IStashMessage stashMessage = databaseManager.CreateStashMessage(message);
                await stashMessage.Download();

                stashMessage.Encrypt(user);
                databaseManager.SaveMessageToStash(stashMessage);
            }
        }
Ejemplo n.º 4
0
        public void DeleteStashMessage(long chatId, long databaseMessageId)
        {
            if (!IsStashExist(chatId))
            {
                return;
            }

            IStashMessage stashMessage = usersStashes[chatId]
                                         .Where(message => message.DatabaseMessageId == databaseMessageId)
                                         .FirstOrDefault();

            if (stashMessage != null)
            {
                usersStashes[chatId].Remove(stashMessage);
            }
        }
Ejemplo n.º 5
0
        public void SaveMessageToStash(IStashMessage stashMessage)
        {
            if (!stashMessage.IsEncrypt)
            {
                throw new ArgumentException("An unencrypted message cannot be stored in a stash");
            }

            if (!stashMessage.IsDownloaded)
            {
                throw new ArgumentException("An undownloaded message cannot be stored in a stash");
            }

            if (!IsStashExist(stashMessage.ChatId))
            {
                usersStashes.Add(stashMessage.ChatId, new List <IStashMessage>());
            }

            usersStashes[stashMessage.ChatId].Add(stashMessage);
        }
Ejemplo n.º 6
0
        public void SaveMessageToStash(IStashMessage stashMessage)
        {
            if (!stashMessage.IsEncrypt)
            {
                throw new ArgumentException("An unencrypted message cannot be stored in a stash");
            }

            if (!stashMessage.IsDownloaded)
            {
                throw new ArgumentException("An undownloaded message cannot be stored in a stash");
            }

            StashMessageModel messageModel = ((IStashMessageDatabaseModelConverter)stashMessage).ToStashMessageModel();

            using (StashMessagesContext db = new StashMessagesContext())
            {
                db.StashMessages.Add(messageModel);
                db.SaveChanges();
            }
        }
Ejemplo n.º 7
0
        public ICollection <IStashMessage> GetMessagesFromStash(long chatId)
        {
            List <IStashMessage> stashMessages = new List <IStashMessage>();

            if (!IsStashExist(chatId))
            {
                return(stashMessages);
            }

            using (StashMessagesContext db = new StashMessagesContext())
            {
                IQueryable <StashMessageModel> stashMessageModel = db.StashMessages
                                                                   .Where(message => message.ChatId == chatId);

                foreach (StashMessageModel messageModel in stashMessageModel)
                {
                    IStashMessage stashMessage = CreateStashMessage(null);
                    ((IStashMessageDatabaseModelConverter)stashMessage).FromStashMessageModel(messageModel);
                    stashMessages.Add(stashMessage);
                }
            }

            return(stashMessages);
        }
Ejemplo n.º 8
0
 public IDatabaseError SaveMessageToStash(IStashMessage stashMessage)
 {
     return(databaseStash.SaveMessageToStash(stashMessage));
 }
Ejemplo n.º 9
0
 public void SaveMessageToStash(IStashMessage stashMessage)
 {
     databaseStash.SaveMessageToStash(stashMessage);
 }
Ejemplo n.º 10
0
 internal KeyboardForStashMessage(IStashMessage stashMessage)
 {
     this.stashMessage = stashMessage;
 }