Exemplo 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());
        }
Exemplo n.º 2
0
        public void ClearStash(long chatId)
        {
            using (StashMessagesContext db = new StashMessagesContext())
            {
                IQueryable <StashMessageModel> messageModels = db.StashMessages
                                                               .Where(message => message.ChatId == chatId);

                foreach (StashMessageModel messageModel in messageModels)
                {
                    db.Remove(messageModel);
                }

                db.SaveChanges();
            }
        }
Exemplo n.º 3
0
        public void DeleteStashMessage(long chatId, long databaseMessageId)
        {
            using (StashMessagesContext db = new StashMessagesContext())
            {
                StashMessageModel messageModel = db.StashMessages
                                                 .Where(message => (message.ChatId == chatId) && (message.Id == databaseMessageId))
                                                 .FirstOrDefault();

                if (messageModel != null)
                {
                    db.Remove(messageModel);
                    db.SaveChanges();
                }
            }
        }
Exemplo n.º 4
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();
            }
        }