{"action":"created","issue":{"url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander/issues/5","repository_url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander","labels_url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander/issues/5/comments","events_url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander/issues/5/events","html_url":"https://github.com/ronnieholm/SPCalendarRecurrenceExpander/issues/5","id":130530901,"number":5,"title":"Scenario: Accessing FieldValues for Recurrence Exceptions is straightforward","user":{"login":"Trailbear","id":9476003,"avatar_url":"https://avatars.githubusercontent.com/u/9476003?v=3","gravatar_id":"","url":"https://api.github.com/users/Trailbear","html_url":"https://github.com/Trailbear","followers_url":"https://api.github.com/users/Trailbear/followers","following_url":"https://api.github.com/users/Trailbear/following{/other_user}","gists_url":"https://api.github.com/users/Trailbear/gists{/gist_id}","starred_url":"https://api.github.com/users/Trailbear/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trailbear/subscriptions","organizations_url":"https://api.github.com/users/Trailbear/orgs","repos_url":"https://api.github.com/users/Trailbear/repos","events_url":"https://api.github.com/users/Trailbear/events{/privacy}","received_events_url":"https://api.github.com/users/Trailbear/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-02T00:44:30Z","updated_at":"2016-02-03T17:20:38Z","closed_at":null,"body":"In the example code, the FieldValues Dictionary used to populate the title is always the first or master appointment.  The expander applies date updates appropriately.  However other properties can be altered in the user interface, not to mention custom columns (we have a couple). To maintain these edits the code needs to access the values from the exception appointment as opposed to the series master appointment.  \r\n\r\nIt seems like there _should_ be a way to find the exception appointment for a given instance's ID and date, if one exists, and use that appointment instead of the master.  But I am unsure how to code this in a lambda function.  I have a feeling that it would end up being a bit cryptic in any case.  Seemingly a good candidate for putting that logic into the assembly if everyone will end up having to do it.\r\n\r\nIf there is no limit on how many instances are created and there are no exceptions, then copying the rather weighty dictionary onto the instance before converting to a domain object seems wasteful.  However where start and end dates are provided (Issue #4), the number of instances won't be any larger than a properly expanded result set from SharePoint.  \r\n\r\nMy initial preference was to see the FieldValues dictionary added to each RecurrenceInstance.  By providing the entire dictionary any custom columns are maintained along with changes that may be part of the exception appointment.  If it is on every Instance, the process of converting to a domain object becomes a simple mapping exercise.\r\n\r\n-TrailBear\r\nFrank Long\r\n"},"comment":{"url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander/issues/comments/179357473","html_url":"https://github.com/ronnieholm/SPCalendarRecurrenceExpander/issues/5#issuecomment-179357473","issue_url":"https://api.github.com/repos/ronnieholm/SPCalendarRecurrenceExpander/issues/5","id":179357473,"user":{"login":"ronnieholm","id":974199,"avatar_url":"https://avatars.githubusercontent.com/u/974199?v=3","gravatar_id":"","url":"https://api.github.com/users/ronnieholm","html_url":"https://github.com/ronnieholm","followers_url":"https://api.github.com/users/ronnieholm/followers","following_url":"https://api.github.com/users/ronnieholm/following{/other_user}","gists_url":"https://api.github.com/users/ronnieholm/gists{/gist_id}","starred_url":"https://api.github.com/users/ronnieholm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronnieholm/subscriptions","organizations_url":"https://api.github.com/users/ronnieholm/orgs","repos_url":"https://api.github.com/users/ronnieholm/repos","events_url":"https://api.github.com/users/ronnieholm/events{/privacy}","received_events_url":"https://api.github.com/users/ronnieholm/received_events","type":"User","site_admin":false},"created_at":"2016-02-03T17:20:38Z","updated_at":"2016-02-03T17:20:38Z","body":"You're good at spotting edge cases. I appreciate it :)\r\n\r\nI wasn't aware each exception could have a unique Title for instance. Will take an extra look at the UI in the next couple of days and correlate with FieldValues.\r\n\r\nAlso, I see the point about the mapping and I follow the argument that it's more of an internal thing than something every user should be bothered with.\r\n\r\n"}}