This previous post had me thinking that the WPF application that I built across these posts;
would start to improve if I offered the opportunity to “invite others” to shared groups of photographs.
So, I re-worked the code. There were a couple of things that I came across whilst doing it;
- It’s a bit painful that you can’t do everything whilst created to the Local LOE. I wanted to write 100% of my code against the Local LOE but, because you can’t get a list of Contacts from the Local LOE right now it means that you have to connect to the Cloud LOE to get them. Additionally, as far as I could tell you also need to use the Cloud LOE to send a user an invitation to share a MeshObject. I don’t think you can do that with the Local LOE even if you already have gathered Contact information from the Cloud LOE. That was my finding, anyway.
- Mappings. I’m still not 100% sure about Mappings, MeshObjects, DataFeeds. What I think I know is that if I expect the DataFeeds for a MeshObject to show up on DeviceX then there needs to be a Mapping between that MeshObject and DeviceX. However, this became interesting for me when I invite user A to share MeshObject B. That MeshObject then shows up in their Mesh which means that I need some code to create Mappings for that MeshObject onto that user’s device whenever they first encounter that MeshObject on that device. Otherwise, data doesn’t show up ( I think ).
Having re-worked my code, I end up with an application that behaves a little like this.
I run it on two machines.
The left Window in the screenshots below is logged on to my laptop’s Local LOE as email@example.com whereas the right window is on a remote machine and is logged on to the Local LOE on that machine as firstname.lastname@example.org;
I can start off on the local machine by creating a photograph album;
and then adding a photograph to it;
Then, if I want to invite another user to my album then I need to authenticate with Windows Live ( to get my Contacts from the Cloud LOE );
and then I have a right mouse menu on an album that raises an “invitation” dialog box;
which raises a dialog box for me to choose who to invite;
and so I invite the other user. He then gets an email;
and follows the link to the Live Desktop;
in order to accept the invitation;
and then the application detects that new MeshObject for the 2nd user and that photograph album shows up for the 2nd user;
and that user can then go and add a photograph into that album;
and that shows up for the first user again;
and we’re syncing photographs quite nicely between the users here. Note the MyAlbums collection would also sync if the 2nd user was the same user as the first user ( if you see what I mean 🙂 ).
Naturally, it could be smarter about how it displays those “Other User’s Folders” and I’m sure there are bugs in it but it might help you with something that you’re doing.