public static void addGroupInfo(GroupInfo gi)
 {
     using (HikeChatsDb context = new HikeChatsDb(App.MsgsDBConnectionstring))
     {
         context.groupInfo.InsertOnSubmit(gi);
         context.SubmitChanges();
     }
 }
Example #2
0
 public static void addMessages(List <ConvMessage> messages)
 {
     using (HikeChatsDb context = new HikeChatsDb(App.MsgsDBConnectionstring))
     {
         context.messages.InsertAllOnSubmit(messages);
         context.SubmitChanges();
     }
 }
Example #3
0
 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);
 }
Example #4
0
        /* 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);
        }
Example #5
0
        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
        }