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()); }
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()); }
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); } }
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); } }
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); }
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(); } }
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); }
public IDatabaseError SaveMessageToStash(IStashMessage stashMessage) { return(databaseStash.SaveMessageToStash(stashMessage)); }
public void SaveMessageToStash(IStashMessage stashMessage) { databaseStash.SaveMessageToStash(stashMessage); }
internal KeyboardForStashMessage(IStashMessage stashMessage) { this.stashMessage = stashMessage; }