public async Task SaveChatItemAsync(ChatItem chatItem)
        {
            ParseObject po = ToParseObject(chatItem);
            await po.SaveAsync();

            chatItem.webId = po.ObjectId;
        }
		ParseObject ToParseObject (ChatItem chatitem)
		{
			var po = new ParseObject("Chat");
			po ["chatroomId"] = chatitem.chatroomID;
			po ["userId"] = chatitem.senderID;
			po ["content"] = chatitem.content;
			return po;
		}
        ParseObject ToParseObject(ChatItem chatitem)
        {
            var po = new ParseObject("Chat");

            po ["chatroomId"] = chatitem.chatroomID;
            po ["userId"]     = chatitem.senderID;
            po ["content"]    = chatitem.content;
            return(po);
        }
 public int SaveItem(ChatItem item)
 {
     lock (locker) {
         if (item.ID != 0) {
             database.Update (item);
             return item.ID;
         } else {
             return database.Insert (item);
         }
     }
 }
		static ChatItem FromParseObject (ParseObject po)
		{
			var t = new ChatItem ();
			t.webId = po.ObjectId;
			t.chatroomID = Convert.ToString(po ["chatroomId"]);
			var test = po ["content"];
			if (po ["content"] != null)
				t.content = Convert.ToString (po ["content"]);
			else
				t.content = "";	
			t.senderID = Convert.ToString(po ["userId"]);
			return t;
		}
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var view = convertView ?? _activity.LayoutInflater.Inflate(
                Resource.Layout.ChatBubble, parent, false);
            var username = view.FindViewById <TextView> (Resource.Id.chat_bubble_userName);
            var message  = view.FindViewById <TextView> (Resource.Id.chat_bubble_message);

            ChatItem currChat = GetChatAt(position);

            username.Text = DatabaseAccessors.UserDatabaseAccessor.GetUser(currChat.senderID).name;
            message.Text  = currChat.content;

            return(view);
        }
        public async Task GetAndSyncChatItemsAsync(string chatroomId)
        {
            var query   = ParseObject.GetQuery("Chat").WhereEqualTo("chatroomId", chatroomId);
            var results = await query.FindAsync();

            foreach (ParseObject chatPO in results)
            {
                ChatItem chat = FromParseObject(chatPO);
                if (DatabaseAccessors.ChatDatabaseAccessor.ExistsChat(chat.webId) == false)
                {
                    DatabaseAccessors.ChatDatabaseAccessor.SaveItem(chat);
                }
            }
        }
Exemple #8
0
 public int SaveItem(ChatItem item)
 {
     lock (locker) {
         if (item.ID != 0)
         {
             database.Update(item);
             return(item.ID);
         }
         else
         {
             return(database.Insert(item));
         }
     }
 }
		protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);
			chatroom = DatabaseAccessors.ChatRoomDatabaseAccessor.GetChatRoom (Intent.GetStringExtra ("chatroom"));
			SetContentView (Resource.Layout.ChatRoom);
			chatsAdapter = new ChatAdapter (this);
			var chatsListView = FindViewById<ListView> (Resource.Id.chatsListView);
			chatsListView.Adapter = chatsAdapter;
			chatsListView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => {

			};

			var sendButton = FindViewById<Button> (Resource.Id.send_message_button);
			var textBoxEdit = FindViewById<EditText> (Resource.Id.chatInputTextBox);
			textBoxEdit.Click += (sender, e) => {
				RunOnUiThread( () => FindViewById<ListView>(Resource.Id.chatsListView).SmoothScrollToPosition(chatsAdapter.GetCount() - 1));
			};
			sendButton.Click += async (sender, e) => {
				EditText textEdit = FindViewById<EditText>(Resource.Id.chatInputTextBox);
				string messageContent = textEdit.Text.ToString();
				RunOnUiThread( () => textEdit.Text = "");
				ParseChatItemDatabase parseItemDB = new ParseChatItemDatabase();
				ChatItem chat = new ChatItem();
				chat.chatroomID = chatroom.webID;
				chat.senderID = DatabaseAccessors.CurrentUser().webID;
				chat.content = messageContent;

				await parseItemDB.SaveChatItemAsync(chat);
				DatabaseAccessors.ChatDatabaseAccessor.SaveItem(chat);
				RunOnUiThread(() => chatsAdapter.NotifyDataSetChanged());
				RunOnUiThread( () => FindViewById<ListView>(Resource.Id.chatsListView).SmoothScrollToPosition(chatsAdapter.GetCount() - 1));

				var push = new ParsePush();
				push.Channels = new List<string> {chatroom.webID};
				push.Alert = "Your men might be requesting help!";
				await push.SendAsync();
			};

			Task getUpdatedInfo = new Task (async () => {
				await SynchronizeWithParse ();
			});

			ParsePush.ParsePushNotificationReceived += async (sender, args) => {
				Console.WriteLine("push");
				await SynchronizeWithParse();
			};

			getUpdatedInfo.Start ();
		}
        static ChatItem FromParseObject(ParseObject po)
        {
            var t = new ChatItem();

            t.webId      = po.ObjectId;
            t.chatroomID = Convert.ToString(po ["chatroomId"]);
            var test = po ["content"];

            if (po ["content"] != null)
            {
                t.content = Convert.ToString(po ["content"]);
            }
            else
            {
                t.content = "";
            }
            t.senderID = Convert.ToString(po ["userId"]);
            return(t);
        }
		public async Task SaveChatItemAsync(ChatItem chatItem)
		{
			ParseObject po = ToParseObject (chatItem);
			await po.SaveAsync ();
			chatItem.webId = po.ObjectId;
		}