public static void addGroupInfo(GroupInfo gi) { using (HikeChatsDb context = new HikeChatsDb(App.MsgsDBConnectionstring)) { context.groupInfo.InsertOnSubmit(gi); context.SubmitChanges(); } }
public static void addMessages(List <ConvMessage> messages) { using (HikeChatsDb context = new HikeChatsDb(App.MsgsDBConnectionstring)) { context.messages.InsertAllOnSubmit(messages); context.SubmitChanges(); } }
public static void SubmitWithConflictResolve(HikeChatsDb context) { try { context.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Console.WriteLine(e.Message); // Automerge database values for members that client // has not modified. foreach (ObjectChangeConflict occ in context.ChangeConflicts) { occ.Resolve(RefreshMode.KeepChanges); // second client changes will be submitted. } } // Submit succeeds on second try. context.SubmitChanges(ConflictMode.FailOnFirstConflict); }
/* Adds a chat message to message Table.*/ public static bool addMessage(ConvMessage convMessage) { using (HikeChatsDb context = new HikeChatsDb(App.MsgsDBConnectionstring + ";Max Buffer Size = 1024;")) { if (convMessage.MappedMessageId > 0) { IQueryable <ConvMessage> qq = DbCompiledQueries.GetMessageForMappedMsgIdMsisdn(context, convMessage.Msisdn, convMessage.MappedMessageId, convMessage.Message); ConvMessage cm = qq.FirstOrDefault(); if (cm != null) { return(false); } } long currentMessageId = convMessage.MessageId; context.messages.InsertOnSubmit(convMessage); try { context.SubmitChanges(); } catch (Exception ex) { Debug.WriteLine("Exception while inserting msg in CHATS DB : " + ex.StackTrace); return(false); } //if (convMessage.GrpParticipantState == ConvMessage.ParticipantInfoState.NO_INFO) //{ // long msgId = convMessage.MessageId; // Deployment.Current.Dispatcher.BeginInvoke(() => // { // NewChatThread currentPage = App.newChatThreadPage; // if (currentPage != null) // { // if (convMessage.IsSent) // { // SentChatBubble sentChatBubble; // currentPage.OutgoingMsgsMap.TryGetValue(currentMessageId, out sentChatBubble); // if (sentChatBubble != null) // { // currentPage.OutgoingMsgsMap.Remove(currentMessageId); // currentPage.OutgoingMsgsMap.Add(convMessage.MessageId, sentChatBubble); // sentChatBubble.MessageId = convMessage.MessageId; // } // } // } // }); //} } return(true); }
public static void clearDatabase() { #region DELETE CONVS,CHAT MSGS, GROUPS, GROUP MEMBERS,THUMBNAILS ConversationTableUtils.deleteAllConversations(); DeleteAllThumbnails(); DeleteAllAttachmentData(); GroupManager.Instance.DeleteAllGroups(); using (HikeChatsDb context = new HikeChatsDb(App.MsgsDBConnectionstring)) { context.messages.DeleteAllOnSubmit <ConvMessage>(context.GetTable <ConvMessage>()); context.groupInfo.DeleteAllOnSubmit <GroupInfo>(context.GetTable <GroupInfo>()); try { context.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Debug.WriteLine(e.Message); // Automerge database values for members that client // has not modified. foreach (ObjectChangeConflict occ in context.ChangeConflicts) { occ.Resolve(RefreshMode.KeepChanges); } } // Submit succeeds on second try. context.SubmitChanges(ConflictMode.FailOnFirstConflict); } #endregion #region DELETE USERS, BLOCKLIST using (HikeUsersDb context = new HikeUsersDb(App.UsersDBConnectionstring)) { context.blockedUsersTable.DeleteAllOnSubmit <Blocked>(context.GetTable <Blocked>()); context.users.DeleteAllOnSubmit <ContactInfo>(context.GetTable <ContactInfo>()); try { context.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Debug.WriteLine(e.Message); // Automerge database values for members that client // has not modified. foreach (ObjectChangeConflict occ in context.ChangeConflicts) { occ.Resolve(RefreshMode.KeepChanges); } } // Submit succeeds on second try. context.SubmitChanges(ConflictMode.FailOnFirstConflict); } #endregion #region DELETE MQTTPERSISTED MESSAGES using (HikeMqttPersistenceDb context = new HikeMqttPersistenceDb(App.MqttDBConnectionstring)) { context.mqttMessages.DeleteAllOnSubmit <HikePacket>(context.GetTable <HikePacket>()); try { context.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Debug.WriteLine(e.Message); // Automerge database values for members that client // has not modified. foreach (ObjectChangeConflict occ in context.ChangeConflicts) { occ.Resolve(RefreshMode.KeepChanges); } } // Submit succeeds on second try. context.SubmitChanges(ConflictMode.FailOnFirstConflict); } #endregion #region DELETE FAVOURITES AND PENDING REQUESTS DeleteFavourites(); DeletePendingRequests(); #endregion }