@burgan-tech/morph-touch-runtime 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/burgan-tech-morph-touch-runtime-0.0.8.tgz +0 -0
- package/morph-touch/Functions/get-absence-entry.1.0.0.json +1 -1
- package/morph-touch/Functions/get-advisor-stats.1.0.0.json +1 -1
- package/morph-touch/Functions/get-available-slots.1.0.0.json +1 -1
- package/morph-touch/Functions/get-rezervations.1.0.0.json +1 -1
- package/morph-touch/Functions/src/GetAbsenceEntryMapping.csx +18 -4
- package/morph-touch/Functions/src/GetAdvisorStatsMapping.csx +22 -8
- package/morph-touch/Functions/src/GetAvailableSlotsMapping.csx +22 -14
- package/morph-touch/Functions/src/GetRezervationsMapping.csx +46 -9
- package/morph-touch/Functions/src/SendCancelNotificationMapping.csx +27 -2
- package/morph-touch/Tasks/login-for-chat.1.0.0.json +27 -0
- package/morph-touch/Tasks/register-for-chat.1.0.0.json +27 -0
- package/morph-touch/Workflows/chat-room.json +273 -14
- package/morph-touch/Workflows/notification-sender.json +2 -2
- package/morph-touch/Workflows/rezervation-start.json +39 -2
- package/morph-touch/Workflows/rezervation-transfer.json +44 -7
- package/morph-touch/Workflows/rezervation-update.json +4 -4
- package/morph-touch/Workflows/rezervation.json +135 -45
- package/morph-touch/Workflows/src/CanStartRezervationTimerMapping.csx +18 -3
- package/morph-touch/Workflows/src/ChatRoomRemoveMapping.csx +10 -1
- package/morph-touch/Workflows/src/ChatRoomTransferInviteMapping.csx +10 -1
- package/morph-touch/Workflows/src/ChatRoomTransferRemoveMapping.csx +9 -1
- package/morph-touch/Workflows/src/ChatRoomUpdateMapping.csx +10 -1
- package/morph-touch/Workflows/src/CheckDuplicateRezervationMapping.csx +17 -3
- package/morph-touch/Workflows/src/CheckRandevuTimeMapping.csx +16 -2
- package/morph-touch/Workflows/src/CreateChatRoomForRezervationMapping.csx +12 -2
- package/morph-touch/Workflows/src/CreatePermanentChatRoomMapping.csx +11 -1
- package/morph-touch/Workflows/src/EnrichRezervationsForTransferMapping.csx +18 -4
- package/morph-touch/Workflows/src/FetchRoomMessagesForSummaryMapping.csx +10 -2
- package/morph-touch/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +10 -1
- package/morph-touch/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +11 -2
- package/morph-touch/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +10 -1
- package/morph-touch/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +5 -1
- package/morph-touch/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +5 -1
- package/morph-touch/Workflows/src/JoinChatRoomForRezervationMapping.csx +4 -0
- package/morph-touch/Workflows/src/JoinMatrixRoomMapping.csx +11 -1
- package/morph-touch/Workflows/src/JoinUserToRoomMapping.csx +6 -0
- package/morph-touch/Workflows/src/LoginForAddParticipantChatMapping.csx +35 -6
- package/morph-touch/Workflows/src/LoginForChatRoomMapping.csx +121 -0
- package/morph-touch/Workflows/src/LoginForJoinUserToRoomMapping.csx +142 -0
- package/morph-touch/Workflows/src/LoginForRandevuStartChatMapping.csx +35 -10
- package/morph-touch/Workflows/src/LoginForTransferChatMapping.csx +153 -0
- package/morph-touch/Workflows/src/RegisterForAddParticipantChatMapping.csx +74 -0
- package/morph-touch/Workflows/src/RegisterForChatRoomMapping.csx +74 -0
- package/morph-touch/Workflows/src/RegisterForJoinUserToRoomMapping.csx +87 -0
- package/morph-touch/Workflows/src/RegisterForRandevuStartChatMapping.csx +80 -0
- package/morph-touch/Workflows/src/RegisterForTransferChatMapping.csx +113 -0
- package/morph-touch/Workflows/src/SendPushNotificationMapping.csx +25 -4
- package/morph-touch/Workflows/src/SendSmsNotificationMapping.csx +25 -4
- package/morph-touch/Workflows/src/SendSummaryToNewRoomMapping.csx +10 -2
- package/morph-touch/Workflows/src/SetRoomHistoryVisibilityMapping.csx +12 -4
- package/morph-touch/Workflows/src/ValidateDateForRezervationMapping.csx +16 -2
- package/morph-touch/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +22 -15
- package/morph-touch/Workflows/src/ValidateSlotForRezervationMapping.csx +23 -16
- package/morph-touch/Workflows/src/ValidateTransferMapping.csx +16 -2
- package/morph-touch/doc/morph-touch-domain.en.md +420 -6
- package/morph-touch/doc/morph-touch-domain.md +423 -6
- package/package.json +1 -1
- package/vnext.config.json +1 -1
- package/burgan-tech-morph-touch-runtime-0.0.6.tgz +0 -0
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
},
|
|
116
116
|
"mapping": {
|
|
117
117
|
"location": "./src/SendCancelNotificationMapping.csx",
|
|
118
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7Ci8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIFNlbmRDYW5jZWxOb3RpZmljYXRpb24gKERpcmVjdFRyaWdnZXJUYXNrIC0gVHlwZSAxMikKLy8vIFRyaWdnZXJzIG5vdGlmaWNhdGlvbi1zZW5kZXIgd29ya2Zsb3cgd2hlbiBhIHJlc2VydmF0aW9uIGlzIGNhbmNlbGxlZC4KLy8vIFNlbmRzIFNNUy9wdXNoIG5vdGlmaWNhdGlvbiB0byB0aGUgY3VzdG9tZXIgYWJvdXQgdGhlIGNhbmNlbGxhdGlvbi4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNlbmRDYW5jZWxOb3RpZmljYXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciB0cmlnZ2VyVGFzayA9IHRhc2sgYXMgRGlyZWN0VHJpZ2dlclRhc2s7CiAgICAgICAgaWYgKHRyaWdnZXJUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEaXJlY3RUcmlnZ2VyVGFzayIpOwoKICAgICAgICB2YXIgaW5zdGFuY2UgPSBjb250ZXh0Lkluc3RhbmNlOwogICAgICAgIGlmIChpbnN0YW5jZSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKCiAgICAgICAgdmFyIGF0dHJzID0gaW5zdGFuY2UuQXR0cmlidXRlczsKICAgICAgICBzdHJpbmcgdXNlciA9IGF0dHJzPy51c2VyPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgIHN0cmluZyBhZHZpc29yID0gYXR0cnM/LmFkdmlzb3I/
|
|
118
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7Ci8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIFNlbmRDYW5jZWxOb3RpZmljYXRpb24gKERpcmVjdFRyaWdnZXJUYXNrIC0gVHlwZSAxMikKLy8vIFRyaWdnZXJzIG5vdGlmaWNhdGlvbi1zZW5kZXIgd29ya2Zsb3cgd2hlbiBhIHJlc2VydmF0aW9uIGlzIGNhbmNlbGxlZC4KLy8vIFNlbmRzIFNNUy9wdXNoIG5vdGlmaWNhdGlvbiB0byB0aGUgY3VzdG9tZXIgYWJvdXQgdGhlIGNhbmNlbGxhdGlvbi4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNlbmRDYW5jZWxOb3RpZmljYXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciB0cmlnZ2VyVGFzayA9IHRhc2sgYXMgRGlyZWN0VHJpZ2dlclRhc2s7CiAgICAgICAgaWYgKHRyaWdnZXJUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEaXJlY3RUcmlnZ2VyVGFzayIpOwoKICAgICAgICB2YXIgaW5zdGFuY2UgPSBjb250ZXh0Lkluc3RhbmNlOwogICAgICAgIGlmIChpbnN0YW5jZSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKCiAgICAgICAgdmFyIGF0dHJzID0gaW5zdGFuY2UuQXR0cmlidXRlczsKICAgICAgICBzdHJpbmcgdXNlciA9IGF0dHJzPy51c2VyPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgIHN0cmluZyBhZHZpc29yID0gYXR0cnM/LmFkdmlzb3I/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgc3RyaW5nIHN0YXJ0RGF0ZVRpbWVSYXcgPSBhdHRycz8uc3RhcnREYXRlVGltZT8uVG9TdHJpbmcoKSA/PyAiIjsKICAgICAgICBzdHJpbmcgc3RhcnREYXRlVGltZSA9IEZvcm1hdEluQnVzaW5lc3NUaW1lWm9uZShzdGFydERhdGVUaW1lUmF3KTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHVzZXIpKQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKCiAgICAgICAgc3RyaW5nIGluc3RhbmNlS2V5ID0gaW5zdGFuY2UuS2V5Py5Ub1N0cmluZygpID8/ICIiOwogICAgICAgIHN0cmluZyBub3RpZktleSA9ICQiY2FuY2VsLW5vdGlmLXtpbnN0YW5jZUtleX0te0RhdGVUaW1lLlV0Y05vdzp5eXl5TU1kZEhIbW1zc30iOwoKICAgICAgICB0cmlnZ2VyVGFzay5TZXRUYXJnZXRXb3JrZmxvdygibm90aWZpY2F0aW9uLXNlbmRlciIpOwogICAgICAgIHRyaWdnZXJUYXNrLlNldFRhcmdldFRyYW5zaXRpb24oInN0YXJ0Iik7CiAgICAgICAgdHJpZ2dlclRhc2suU2V0SW5zdGFuY2VLZXkobm90aWZLZXkpOwogICAgICAgIHRyaWdnZXJUYXNrLlNldEF0dHJpYnV0ZXMobmV3CiAgICAgICAgewogICAgICAgICAgICByZWNpcGllbnRJZCA9IHVzZXIsCiAgICAgICAgICAgIHR5cGUgPSAicmVzZXJ2YXRpb24tY2FuY2VsbGVkIiwKICAgICAgICAgICAgY2hhbm5lbCA9ICJzbXMiLAogICAgICAgICAgICB0aXRsZSA9ICJSYW5kZXZ1IMSwcHRhbGkiLAogICAgICAgICAgICBtZXNzYWdlID0gJCJSYW5kZXZ1bnV6IGlwdGFsIGVkaWxtacWfdGlyLiBUYXJpaDoge3N0YXJ0RGF0ZVRpbWV9LCBEYW7EscWfbWFuOiB7YWR2aXNvcn0iLAogICAgICAgICAgICBtZXRhZGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNlcnZhdGlvbktleSA9IGluc3RhbmNlS2V5LAogICAgICAgICAgICAgICAgYWR2aXNvcklkID0gYWR2aXNvciwKICAgICAgICAgICAgICAgIG9yaWdpbmFsRGF0ZVRpbWUgPSBzdGFydERhdGVUaW1lUmF3CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgewogICAgICAgICAgICBLZXkgPSAibm90aWZpY2F0aW9uLXNlbnQiLAogICAgICAgICAgICBEYXRhID0gbmV3IHsgc3VjY2VzcyA9IHRydWUgfSwKICAgICAgICAgICAgVGFncyA9IG5ld1tdIHsgIm5vdGlmaWNhdGlvbiIsICJjYW5jZWwiIH0KICAgICAgICB9KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBGb3JtYXRJbkJ1c2luZXNzVGltZVpvbmUoc3RyaW5nIGRhdGVTdHIpCiAgICB7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGVTdHIpKSByZXR1cm4gZGF0ZVN0cjsKICAgICAgICBpZiAoIURhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKGRhdGVTdHIsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkRhdGVUaW1lU3R5bGVzLk5vbmUsIG91dCB2YXIgZHRvKSkKICAgICAgICAgICAgcmV0dXJuIGRhdGVTdHI7CgogICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgdmFyIGxvY2FsID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhkdG8uVXRjRGF0ZVRpbWUsIHR6KTsKICAgICAgICByZXR1cm4gbG9jYWwuVG9TdHJpbmcoImRkLk1NLnl5eXkgSEg6bW0iKTsKICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpCiAgICAgICAgICAgICAgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKSBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwogICAgICAgIHRyeSB7IHJldHVybiBUaW1lWm9uZUluZm8uRmluZFN5c3RlbVRpbWVab25lQnlJZChpZC5UcmltKCkpOyB9IGNhdGNoIHsgfQogICAgICAgIHRyeSB7IHJldHVybiBUaW1lWm9uZUluZm8uRmluZFN5c3RlbVRpbWVab25lQnlJZCgiVHVya2V5IFN0YW5kYXJkIFRpbWUiKTsgfSBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gVGltZVpvbmVJbmZvLkNyZWF0ZUN1c3RvbVRpbWVab25lKAogICAgICAgICAgICAiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KfQo="
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
]
|
|
@@ -238,52 +238,13 @@
|
|
|
238
238
|
"location": "./src/SetUserFromHeadersForRezervationMapping.csx",
|
|
239
239
|
"code": "dXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gUG9wdWxhdGUgc3ViIChmcm9tIEhlYWRlcnMgc3ViKSBpbnRvIHRoZSB3b3JrZmxvdyBpbnN0YW5jZSBkYXRhLgovLy8gVXNlZCBhdCBzdGFydCBzbyBzdWJzZXF1ZW50IHRhc2tzIChlLmcuIGdldC11c2VyLWluZm8tZm9yLXJlemVydmF0aW9uKSByZWFkIHN1YiBmcm9tIGRhdGEuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBTZXRVc2VyRnJvbUhlYWRlcnNGb3JSZXplcnZhdGlvbk1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzdWIgPSBjb250ZXh0LkhlYWRlcnM/WyJzdWIiXT8uVG9TdHJpbmcoKT8uVHJpbSgpOwogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgewogICAgICAgICAgICBEYXRhID0gbmV3IHsgc3ViIH0KICAgICAgICB9KTsKICAgIH0KfQo="
|
|
240
240
|
}
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
"order": 2,
|
|
244
|
-
"task": {
|
|
245
|
-
"domain": "morph-touch",
|
|
246
|
-
"flow": "sys-tasks",
|
|
247
|
-
"key": "validate-date-for-rezervation",
|
|
248
|
-
"version": "1.0.0"
|
|
249
|
-
},
|
|
250
|
-
"mapping": {
|
|
251
|
-
"location": "./src/ValidateDateForRezervationMapping.csx",
|
|
252
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZC4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBhcmUgcmVxdWlyZWQuIiwgImRhdGUiKTsKCiAgICAgICAgRGF0ZVRpbWUgc3RhcnREdDsKICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydER0KSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHN0YXJ0RGF0ZVRpbWUgZm9ybWF0LiIsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgRGF0ZVRpbWUgZW5kRHQ7CiAgICAgICAgaWYgKCFEYXRlVGltZS5UcnlQYXJzZShlbmREYXRlVGltZVN0ciwgb3V0IGVuZER0KSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVuZERhdGVUaW1lIGZvcm1hdC4iLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG5vdyA9IERhdGVUaW1lLlV0Y05vdzsKICAgICAgICBpZiAoc3RhcnREdCA8IG5vdyB8fCBlbmREdCA8IG5vdykKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJEYXRlIGNhbm5vdCBiZSBpbiB0aGUgcGFzdC4iLCAiZGF0ZSIpOwogICAgICAgIGlmIChlbmREdCA8PSBzdGFydER0KQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oImVuZERhdGVUaW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnREYXRlVGltZS4iLCAiZGF0ZSIpOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
|
|
253
|
-
}
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
"order": 3,
|
|
257
|
-
"task": {
|
|
258
|
-
"domain": "morph-touch",
|
|
259
|
-
"flow": "sys-tasks",
|
|
260
|
-
"key": "check-duplicate-rezervation",
|
|
261
|
-
"version": "1.0.0"
|
|
262
|
-
},
|
|
263
|
-
"mapping": {
|
|
264
|
-
"location": "./src/CheckDuplicateRezervationMapping.csx",
|
|
265
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY2hlY2stZHVwbGljYXRlLXJlemVydmF0aW9uIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyByZXplcnZhdGlvbiB3b3JrZmxvdyBpbnN0YW5jZXMgdG8gZW5mb3JjZSB0d28gcnVsZXM6Ci8vLyAxLiBBIHVzZXIgY2FuIGhhdmUgYXQgbW9zdCAyIHJlc2VydmF0aW9ucyBpbiBjb25maXJtZWQgc3RhdGVzIChhY3RpdmUsIHVwZGF0ZS1jb250cm9sLCBjaGFuZ2UtYWR2aXNvciwgY2FuLXN0YXJ0LW1lZXRpbmcsIGFjY2VwdC10ZXJtcykuCi8vLyAyLiBBIHVzZXIgY2Fubm90IGhhdmUgdHdvIHJlc2VydmF0aW9ucyB3aXRoIG92ZXJsYXBwaW5nIHRpbWUgc2xvdHMuCi8vLwovLy8gRmxvdzoKLy8vIDEuIElucHV0SGFuZGxlcjogQnVpbGRzIHF1ZXJ5IHRvIGZpbmQgYWxsIGFjdGl2ZSByZXNlcnZhdGlvbnMgZm9yIHRoZSBzYW1lIHVzZXIuCi8vLyAyLiBPdXRwdXRIYW5kbGVyOiBDaGVja3MgY291bnQgKG1heCAyKSBhbmQgdGltZSBvdmVybGFwOyB0aHJvd3MgZXhjZXB0aW9uIG9uIHZpb2xhdGlvbi4KLy8vICAgIEV4Y2VwdGlvbiBmYWlscyB0aGUgdHJhbnNpdGlvbjsgaW5zdGFuY2Ugc3RheXMgaW4gaXRzIGN1cnJlbnQgc3RhdGUuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGVja0R1cGxpY2F0ZVJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc2VydmljZVRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICB2YXIgYXBwSWQgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9BUFBfSUQiKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkoZGF0YSwgInVzZXIiKSB8fCBkYXRhLnVzZXIgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1BWF9SRVpFUlZBVElPTjogVXNlciBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZHVwbGljYXRlIGNoZWNrIik7CgogICAgICAgIHZhciB1c2VyID0gZGF0YS51c2VyLlRvU3RyaW5nKCk7CiAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBjb250ZXh0Lkluc3RhbmNlPy5LZXkgPz8gIiI7CgogICAgICAgIHZhciB1c2VyRXNjYXBlZCA9IHVzZXIuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKICAgICAgICB2YXIga2V5RXNjYXBlZCA9IGN1cnJlbnRLZXkuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKCiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsKICAgICAgICAgICAgICAgICJ7XCJhbmRcIjpbIiArCiAgICAgICAgICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJ1c2VyXCI6e1wiZXFcIjpcIiIgKyB1c2VyRXNjYXBlZCArICJcIn19fSwiICsKICAgICAgICAgICAgICAgICAgICAie1wia2V5XCI6e1wibmVcIjpcIiIgKyBrZXlFc2NhcGVkICsgIlwifX0sIiArCiAgICAgICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCIiICsgImFjdGl2ZSIgKyAiXCJ9fSwiICArCiAgICAgICAgICAgICAgICAiXX0iCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwoKICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJTZXJ2aWNlIGNhbGwgZmFpbGVkIjsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkIlNFUlZJQ0VfRVJST1I6IHtlcnJvck1lc3NhZ2V9Iik7CiAgICAgICAgfQoKICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgaWYgKGl0ZW1zID09IG51bGwgfHwgaXRlbXMuQ291bnQgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIGludCBjb3VudCA9IGl0ZW1zLkNvdW50OwoKICAgICAgICBpZiAoY291bnQgPj0gMikKICAgICAgICB7CiAgICAgICAgICAgIHZhciB1c2VyID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YT8udXNlcj8uVG9TdHJpbmcoKSA/PyAidW5rbm93biI7CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJCJNQVhfUkVaRVJWQVRJT046IFVzZXIgJ3t1c2VyfScgYWxyZWFkeSBoYXMge2NvdW50fSBhY3RpdmUgcmVzZXJ2YXRpb25zLiBNYXhpbXVtIGFsbG93ZWQgaXMgMi4iKTsKICAgICAgICB9CgogICAgICAgIHZhciBpbnN0YW5jZURhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBuZXdTdGFydFN0ciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgdmFyIG5ld0VuZFN0ciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KG5ld1N0YXJ0U3RyKSAmJiAhc3RyaW5nLklzTnVsbE9yRW1wdHkobmV3RW5kU3RyKSkKICAgICAgICB7CiAgICAgICAgICAgIERhdGVUaW1lIG5ld1N0YXJ0ID0gZGVmYXVsdCwgbmV3RW5kID0gZGVmYXVsdDsKICAgICAgICAgICAgaWYgKERhdGVUaW1lLlRyeVBhcnNlKG5ld1N0YXJ0U3RyLCBvdXQgbmV3U3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKG5ld0VuZFN0ciwgb3V0IG5ld0VuZCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIGl0ZW1zKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmdTdGFydFN0ciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGV4aXN0aW5nRW5kU3RyID0gR2V0TmVzdGVkU3RyaW5nKGl0ZW0sICJhdHRyaWJ1dGVzIiwgImVuZERhdGVUaW1lIik7CgogICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShleGlzdGluZ1N0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShleGlzdGluZ0VuZFN0cikpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBleGlzdGluZ1N0YXJ0ID0gZGVmYXVsdCwgZXhpc3RpbmdFbmQgPSBkZWZhdWx0OwogICAgICAgICAgICAgICAgICAgIGlmICghRGF0ZVRpbWUuVHJ5UGFyc2UoZXhpc3RpbmdTdGFydFN0ciwgb3V0IGV4aXN0aW5nU3RhcnQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICFEYXRlVGltZS5UcnlQYXJzZShleGlzdGluZ0VuZFN0ciwgb3V0IGV4aXN0aW5nRW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1N0YXJ0IDwgbmV3RW5kICYmIGV4aXN0aW5nRW5kID4gbmV3U3RhcnQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmdLZXkgPSBIYXNQcm9wZXJ0eShpdGVtLCAia2V5IikgPyBpdGVtLmtleT8uVG9TdHJpbmcoKSA6ICJ1bmtub3duIjsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQiVElNRV9PVkVSTEFQOiBSZXF1ZXN0ZWQgdGltZSB7bmV3U3RhcnRTdHJ9IC0ge25ld0VuZFN0cn0gb3ZlcmxhcHMgd2l0aCBleGlzdGluZyByZXNlcnZhdGlvbiAne2V4aXN0aW5nS2V5fScgKHtleGlzdGluZ1N0YXJ0U3RyfSAtIHtleGlzdGluZ0VuZFN0cn0pLiIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
|
|
266
|
-
}
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
"order": 4,
|
|
270
|
-
"task": {
|
|
271
|
-
"domain": "morph-touch",
|
|
272
|
-
"flow": "sys-tasks",
|
|
273
|
-
"key": "validate-slot-for-rezervation",
|
|
274
|
-
"version": "1.0.0"
|
|
275
|
-
},
|
|
276
|
-
"mapping": {
|
|
277
|
-
"location": "./src/ValidateSlotForRezervationMapping.csx",
|
|
278
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2suCi8vLyBJbnZva2VzIGdldC1hdmFpbGFibGUtc2xvdHMgZnVuY3Rpb24gd2l0aCBhZHZpc29yIGFuZCBkYXRlIGZyb20gcmV6ZXJ2YXRpb24gaW5zdGFuY2UsCi8vLyB0aGVuIGNoZWNrcyBpZiB0aGUgcmVxdWVzdGVkIHN0YXJ0RGF0ZVRpbWUtZW5kRGF0ZVRpbWUgc2xvdCBpcyBpbiB0aGUgYXZhaWxhYmxlIHNsb3RzIGxpc3QuCi8vLyBPdXRwdXQ6IHNsb3RDaGVja1Jlc3VsdCB7IGF2YWlsYWJsZTogYm9vbCwga2V5Pzogc3RyaW5nIH0gZm9yIHVzZSBieSB2YWxpZGF0aW5nIHN0YXRlIGF1dG8gdHJhbnNpdGlvbnMuCi8vLyA8L3N1bW1hcnk+CmludGVybmFsIHNlYWxlZCBjbGFzcyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbiA6IEV4Y2VwdGlvbgp7CiAgICBwdWJsaWMgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb24oc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvciIpOwogICAgICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoYWR2aXNvcikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0gInZhbGlkYXRpb24tZXJyb3IiLAogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydERhdGVUaW1lOwogICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdENoZWNrUmVzdWx0ID0gbmV3IHsgYXZhaWxhYmxlID0gZmFsc2UsIGtleSA9ICJ2YWxpZGF0aW9uLWVycm9yIiB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBkYXRlU3RyID0gc3RhcnREYXRlVGltZS5Ub1N0cmluZygieXl5eS1NTS1kZCIpOwogICAgICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhZHZpc29ySWQ9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGFkdmlzb3IpLAogICAgICAgICAgICAgICAgImRhdGU9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGRhdGVTdHIpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ID0gImlucHV0LWVycm9yIiwKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSAiaW5wdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShib2R5LCAiaXNTdWNjZXNzIikgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBlcnJOb2RlID0gSGFzUHJvcGVydHkoYm9keSwgImRhdGEiKSA/IGJvZHkuZGF0YSA6IG51bGw7CiAgICAgICAgICAgICAgICB2YXIgZGV0YWlsID0gR2V0U3RyaW5nKGVyck5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImVycm9yTWVzc2FnZSIpID8/IEdldFN0cmluZyhib2R5LCAiZGV0YWlsIik7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oZGV0YWlsID8/ICJGdW5jdGlvbiBjYWxsIGZhaWxlZCIsIiIpOwogICAgICAgICAgICB9CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgdmFyIGVuZERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZVRpbWVTdHIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERhdGVUaW1lIHN0YXJ0RHQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgRGF0ZVRpbWUgZW5kRHQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0YXJ0RHQgPSBEYXRlVGltZS5QYXJzZShzdGFydERhdGVUaW1lU3RyKTsKICAgICAgICAgICAgICAgIGVuZER0ID0gRGF0ZVRpbWUuUGFyc2UoZW5kRGF0ZVRpbWVTdHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHR6ID0gUmVzb2x2ZUJ1c2luZXNzVGltZVpvbmUoKTsKICAgICAgICAgICAgdmFyIGxvY2FsU3RhcnQgPSBDb252ZXJ0VG9UaW1lWm9uZShzdGFydER0LCBzdGFydERhdGVUaW1lU3RyLCB0eik7CiAgICAgICAgICAgIHZhciBsb2NhbEVuZCA9IENvbnZlcnRUb1RpbWVab25lKGVuZER0LCBlbmREYXRlVGltZVN0ciwgdHopOwogICAgICAgICAgICB2YXIgcmVxdWVzdGVkU2xvdCA9IGxvY2FsU3RhcnQuVG9TdHJpbmcoIkhIOm1tIikgKyAiLSIgKyBsb2NhbEVuZC5Ub1N0cmluZygiSEg6bW0iKTsKCiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CiAgICAgICAgICAgIGR5bmFtaWMgcmVzb2x2ZWRTbG90cyA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKCiAgICAgICAgICAgICAgICBkeW5hbWljIHNsb3RzQ29udGFpbmVyID0gbnVsbDsKCiAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoYm9keSwgImdldEF2YWlsYWJsZVNsb3RzIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBib2R5LmdldEF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IEhhc1Byb3BlcnR5KGJvZHksICJkYXRhIikgPyBib2R5LmRhdGEgOiAoSGFzUHJvcGVydHkoYm9keSwgIkRhdGEiKSA/IGJvZHkuRGF0YSA6IG51bGwpOwogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzQ29udGFpbmVyID0gZGF0YU5vZGUuZ2V0QXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGFOb2RlICE9IG51bGwgJiYgSGFzUHJvcGVydHkoZGF0YU5vZGUsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBkYXRhTm9kZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHNsb3RzQ29udGFpbmVyICE9IG51bGwgJiYgSGFzUHJvcGVydHkoc2xvdHNDb250YWluZXIsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGVTbG90cyA9IHNsb3RzQ29udGFpbmVyLmF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgICAgIHJlc29sdmVkU2xvdHMgPSBhdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlU2xvdHMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gYXZhaWxhYmxlU2xvdHMgYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHMgaW4gbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xvdFN0ciA9IHM/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNsb3RTdHIgPT0gcmVxdWVzdGVkU2xvdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGV0YWlsTXNnID0gR2V0U3RyaW5nKGJvZHksICJkZXRhaWwiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbihkZXRhaWxNc2cpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZUtleSA9PSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHksICJpc1N1Y2Nlc3MiKSAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdENoZWNrUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHJlc3BvbnNlS2V5ID8/IChhdmFpbGFibGUgPyAiYXZhaWxhYmxlLXNsb3RzLXN1Y2Nlc3MiIDogInNsb3QtdW5hdmFpbGFibGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHMgPSByZXNvbHZlZFNsb3RzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHRocm93OwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJvdXRwdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpID8/IEdldENvbmZpZ1ZhbHVlKCJBUFBPSU5UTUVOVF9USU1FWk9ORSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGlkKSkKICAgICAgICAgICAgaWQgPSAiRXVyb3BlL0lzdGFuYnVsIjsKCiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKGlkLlRyaW0oKSk7IH0gY2F0Y2ggeyB9CiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKCJUdXJrZXkgU3RhbmRhcmQgVGltZSIpOyB9IGNhdGNoIHsgfQogICAgICAgIHJldHVybiBUaW1lWm9uZUluZm8uQ3JlYXRlQ3VzdG9tVGltZVpvbmUoIlRSVCIsIFRpbWVTcGFuLkZyb21Ib3VycygzKSwgIlRSVCAoVVRDKzMpIiwgIlRSVCAoVVRDKzMpIik7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGF0ZVRpbWUgQ29udmVydFRvVGltZVpvbmUoRGF0ZVRpbWUgZHQsIHN0cmluZyBvcmlnaW5hbCwgVGltZVpvbmVJbmZvIHR6KQogICAgewogICAgICAgIGlmIChkdC5LaW5kID09IERhdGVUaW1lS2luZC5VdGMpCiAgICAgICAgICAgIHJldHVybiBUaW1lWm9uZUluZm8uQ29udmVydFRpbWVGcm9tVXRjKGR0LCB0eik7CgogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShvcmlnaW5hbCwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHV0YyA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5Db252ZXJ0VGltZUZyb21VdGModXRjLCB0eik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZHQ7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
|
|
279
|
-
}
|
|
280
241
|
}
|
|
281
242
|
]
|
|
282
243
|
},
|
|
283
244
|
"states": [
|
|
284
245
|
{
|
|
285
246
|
"key": "appointment-form",
|
|
286
|
-
"stateType":
|
|
247
|
+
"stateType": 2,
|
|
287
248
|
"versionStrategy": "Minor",
|
|
288
249
|
"labels": [
|
|
289
250
|
{
|
|
@@ -372,7 +333,7 @@
|
|
|
372
333
|
},
|
|
373
334
|
{
|
|
374
335
|
"key": "validating",
|
|
375
|
-
"stateType":
|
|
336
|
+
"stateType": 1,
|
|
376
337
|
"versionStrategy": "Minor",
|
|
377
338
|
"labels": [
|
|
378
339
|
{
|
|
@@ -384,6 +345,87 @@
|
|
|
384
345
|
"language": "tr-TR"
|
|
385
346
|
}
|
|
386
347
|
],
|
|
348
|
+
"onEntries": [
|
|
349
|
+
{
|
|
350
|
+
"order": 1,
|
|
351
|
+
"task": {
|
|
352
|
+
"domain": "morph-touch",
|
|
353
|
+
"flow": "sys-tasks",
|
|
354
|
+
"key": "validate-date-for-rezervation",
|
|
355
|
+
"version": "1.0.0"
|
|
356
|
+
},
|
|
357
|
+
"mapping": {
|
|
358
|
+
"location": "./src/ValidateDateForRezervationMapping.csx",
|
|
359
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZC4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBhcmUgcmVxdWlyZWQuIiwgImRhdGUiKTsKCiAgICAgICAgRGF0ZVRpbWUgc3RhcnREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RHQpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3RhcnREYXRlVGltZSBmb3JtYXQuIiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICBEYXRlVGltZSBlbmREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREdCkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlbmREYXRlVGltZSBmb3JtYXQuIiwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBub3cgPSBEYXRlVGltZS5VdGNOb3c7CiAgICAgICAgaWYgKHN0YXJ0RHQgPCBub3cgfHwgZW5kRHQgPCBub3cpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiRGF0ZSBjYW5ub3QgYmUgaW4gdGhlIHBhc3QuIiwgImRhdGUiKTsKICAgICAgICBpZiAoZW5kRHQgPD0gc3RhcnREdCkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJlbmREYXRlVGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0RGF0ZVRpbWUuIiwgImRhdGUiKTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgYm9vbCBUcnlQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyLCBvdXQgRGF0ZVRpbWUgdXRjRGF0ZVRpbWUpCiAgICB7CiAgICAgICAgdXRjRGF0ZVRpbWUgPSBkZWZhdWx0OwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShkYXRlU3RyKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5EYXRlVGltZVN0eWxlcy5Ob25lLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB1dGNEYXRlVGltZSA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
360
|
+
},
|
|
361
|
+
"errorBoundary": {
|
|
362
|
+
"onError": [
|
|
363
|
+
{
|
|
364
|
+
"action": 2,
|
|
365
|
+
"errorCodes": [
|
|
366
|
+
"*"
|
|
367
|
+
],
|
|
368
|
+
"transition": "date-invalid",
|
|
369
|
+
"priority": 1
|
|
370
|
+
}
|
|
371
|
+
]
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"order": 2,
|
|
376
|
+
"task": {
|
|
377
|
+
"domain": "morph-touch",
|
|
378
|
+
"flow": "sys-tasks",
|
|
379
|
+
"key": "check-duplicate-rezervation",
|
|
380
|
+
"version": "1.0.0"
|
|
381
|
+
},
|
|
382
|
+
"mapping": {
|
|
383
|
+
"location": "./src/CheckDuplicateRezervationMapping.csx",
|
|
384
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY2hlY2stZHVwbGljYXRlLXJlemVydmF0aW9uIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyByZXplcnZhdGlvbiB3b3JrZmxvdyBpbnN0YW5jZXMgdG8gZW5mb3JjZSB0d28gcnVsZXM6Ci8vLyAxLiBBIHVzZXIgY2FuIGhhdmUgYXQgbW9zdCAyIHJlc2VydmF0aW9ucyBpbiBjb25maXJtZWQgc3RhdGVzIChhY3RpdmUsIHVwZGF0ZS1jb250cm9sLCBjaGFuZ2UtYWR2aXNvciwgY2FuLXN0YXJ0LW1lZXRpbmcsIGFjY2VwdC10ZXJtcykuCi8vLyAyLiBBIHVzZXIgY2Fubm90IGhhdmUgdHdvIHJlc2VydmF0aW9ucyB3aXRoIG92ZXJsYXBwaW5nIHRpbWUgc2xvdHMuCi8vLwovLy8gRmxvdzoKLy8vIDEuIElucHV0SGFuZGxlcjogQnVpbGRzIHF1ZXJ5IHRvIGZpbmQgYWxsIGFjdGl2ZSByZXNlcnZhdGlvbnMgZm9yIHRoZSBzYW1lIHVzZXIuCi8vLyAyLiBPdXRwdXRIYW5kbGVyOiBDaGVja3MgY291bnQgKG1heCAyKSBhbmQgdGltZSBvdmVybGFwOyB0aHJvd3MgZXhjZXB0aW9uIG9uIHZpb2xhdGlvbi4KLy8vICAgIEV4Y2VwdGlvbiBmYWlscyB0aGUgdHJhbnNpdGlvbjsgaW5zdGFuY2Ugc3RheXMgaW4gaXRzIGN1cnJlbnQgc3RhdGUuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGVja0R1cGxpY2F0ZVJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc2VydmljZVRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICB2YXIgYXBwSWQgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9BUFBfSUQiKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkoZGF0YSwgInVzZXIiKSB8fCBkYXRhLnVzZXIgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1BWF9SRVpFUlZBVElPTjogVXNlciBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZHVwbGljYXRlIGNoZWNrIik7CgogICAgICAgIHZhciB1c2VyID0gZGF0YS51c2VyLlRvU3RyaW5nKCk7CiAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBjb250ZXh0Lkluc3RhbmNlPy5LZXkgPz8gIiI7CgogICAgICAgIHZhciB1c2VyRXNjYXBlZCA9IHVzZXIuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKICAgICAgICB2YXIga2V5RXNjYXBlZCA9IGN1cnJlbnRLZXkuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKCiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsKICAgICAgICAgICAgICAgICJ7XCJhbmRcIjpbIiArCiAgICAgICAgICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJ1c2VyXCI6e1wiZXFcIjpcIiIgKyB1c2VyRXNjYXBlZCArICJcIn19fSwiICsKICAgICAgICAgICAgICAgICAgICAie1wia2V5XCI6e1wibmVcIjpcIiIgKyBrZXlFc2NhcGVkICsgIlwifX0sIiArCiAgICAgICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCIiICsgImFjdGl2ZSIgKyAiXCJ9fSwiICArCiAgICAgICAgICAgICAgICAiXX0iCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwoKICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJTZXJ2aWNlIGNhbGwgZmFpbGVkIjsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkIlNFUlZJQ0VfRVJST1I6IHtlcnJvck1lc3NhZ2V9Iik7CiAgICAgICAgfQoKICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgaWYgKGl0ZW1zID09IG51bGwgfHwgaXRlbXMuQ291bnQgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIGludCBjb3VudCA9IGl0ZW1zLkNvdW50OwoKICAgICAgICBpZiAoY291bnQgPj0gMikKICAgICAgICB7CiAgICAgICAgICAgIHZhciB1c2VyID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YT8udXNlcj8uVG9TdHJpbmcoKSA/PyAidW5rbm93biI7CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJCJNQVhfUkVaRVJWQVRJT046IFVzZXIgJ3t1c2VyfScgYWxyZWFkeSBoYXMge2NvdW50fSBhY3RpdmUgcmVzZXJ2YXRpb25zLiBNYXhpbXVtIGFsbG93ZWQgaXMgMi4iKTsKICAgICAgICB9CgogICAgICAgIHZhciBpbnN0YW5jZURhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBuZXdTdGFydFN0ciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgdmFyIG5ld0VuZFN0ciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KG5ld1N0YXJ0U3RyKSAmJiAhc3RyaW5nLklzTnVsbE9yRW1wdHkobmV3RW5kU3RyKSkKICAgICAgICB7CiAgICAgICAgICAgIERhdGVUaW1lIG5ld1N0YXJ0ID0gZGVmYXVsdCwgbmV3RW5kID0gZGVmYXVsdDsKICAgICAgICAgICAgaWYgKFRyeVBhcnNlVG9VdGMobmV3U3RhcnRTdHIsIG91dCBuZXdTdGFydCkgJiYgVHJ5UGFyc2VUb1V0YyhuZXdFbmRTdHIsIG91dCBuZXdFbmQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgaXRlbSBpbiBpdGVtcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGV4aXN0aW5nU3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ0VuZFN0ciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZXhpc3RpbmdTdGFydFN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZXhpc3RpbmdFbmRTdHIpKQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgZXhpc3RpbmdTdGFydCA9IGRlZmF1bHQsIGV4aXN0aW5nRW5kID0gZGVmYXVsdDsKICAgICAgICAgICAgICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoZXhpc3RpbmdTdGFydFN0ciwgb3V0IGV4aXN0aW5nU3RhcnQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICFUcnlQYXJzZVRvVXRjKGV4aXN0aW5nRW5kU3RyLCBvdXQgZXhpc3RpbmdFbmQpKQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nU3RhcnQgPCBuZXdFbmQgJiYgZXhpc3RpbmdFbmQgPiBuZXdTdGFydCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ0tleSA9IEhhc1Byb3BlcnR5KGl0ZW0sICJrZXkiKSA/IGl0ZW0ua2V5Py5Ub1N0cmluZygpIDogInVua25vd24iOwogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCJUSU1FX09WRVJMQVA6IFJlcXVlc3RlZCB0aW1lIHtuZXdTdGFydFN0cn0gLSB7bmV3RW5kU3RyfSBvdmVybGFwcyB3aXRoIGV4aXN0aW5nIHJlc2VydmF0aW9uICd7ZXhpc3RpbmdLZXl9JyAoe2V4aXN0aW5nU3RhcnRTdHJ9IC0ge2V4aXN0aW5nRW5kU3RyfSkuIik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwcml2YXRlIGJvb2wgVHJ5UGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0ciwgb3V0IERhdGVUaW1lIHV0Y0RhdGVUaW1lKQogICAgewogICAgICAgIHV0Y0RhdGVUaW1lID0gZGVmYXVsdDsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZGF0ZVN0cikpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoRGF0ZVRpbWVPZmZzZXQuVHJ5UGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uRGF0ZVRpbWVTdHlsZXMuTm9uZSwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdXRjRGF0ZVRpbWUgPSBkdG8uVXRjRGF0ZVRpbWU7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
|
|
385
|
+
},
|
|
386
|
+
"errorBoundary": {
|
|
387
|
+
"onError": [
|
|
388
|
+
{
|
|
389
|
+
"action": 2,
|
|
390
|
+
"errorCodes": [
|
|
391
|
+
"MAX_REZERVATION"
|
|
392
|
+
],
|
|
393
|
+
"transition": "reject-duplicate-rezervation",
|
|
394
|
+
"priority": 1
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"action": 2,
|
|
398
|
+
"errorCodes": [
|
|
399
|
+
"TIME_OVERLAP"
|
|
400
|
+
],
|
|
401
|
+
"transition": "reject-duplicate-rezervation",
|
|
402
|
+
"priority": 2
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"action": 2,
|
|
406
|
+
"errorCodes": [
|
|
407
|
+
"*"
|
|
408
|
+
],
|
|
409
|
+
"transition": "reject-duplicate-rezervation",
|
|
410
|
+
"priority": 999
|
|
411
|
+
}
|
|
412
|
+
]
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"order": 3,
|
|
417
|
+
"task": {
|
|
418
|
+
"domain": "morph-touch",
|
|
419
|
+
"flow": "sys-tasks",
|
|
420
|
+
"key": "validate-slot-for-rezervation",
|
|
421
|
+
"version": "1.0.0"
|
|
422
|
+
},
|
|
423
|
+
"mapping": {
|
|
424
|
+
"location": "./src/ValidateSlotForRezervationMapping.csx",
|
|
425
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2suCi8vLyBJbnZva2VzIGdldC1hdmFpbGFibGUtc2xvdHMgZnVuY3Rpb24gd2l0aCBhZHZpc29yIGFuZCBkYXRlIGZyb20gcmV6ZXJ2YXRpb24gaW5zdGFuY2UsCi8vLyB0aGVuIGNoZWNrcyBpZiB0aGUgcmVxdWVzdGVkIHN0YXJ0RGF0ZVRpbWUtZW5kRGF0ZVRpbWUgc2xvdCBpcyBpbiB0aGUgYXZhaWxhYmxlIHNsb3RzIGxpc3QuCi8vLyBPdXRwdXQ6IHNsb3RDaGVja1Jlc3VsdCB7IGF2YWlsYWJsZTogYm9vbCwga2V5Pzogc3RyaW5nIH0gZm9yIHVzZSBieSB2YWxpZGF0aW5nIHN0YXRlIGF1dG8gdHJhbnNpdGlvbnMuCi8vLyA8L3N1bW1hcnk+CmludGVybmFsIHNlYWxlZCBjbGFzcyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbiA6IEV4Y2VwdGlvbgp7CiAgICBwdWJsaWMgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb24oc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvciIpOwogICAgICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoYWR2aXNvcikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0gInZhbGlkYXRpb24tZXJyb3IiLAogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydERhdGVUaW1lOwogICAgICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RGF0ZVRpbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSA9ICJ2YWxpZGF0aW9uLWVycm9yIiwKICAgICAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBzdGFydERhdGVUaW1lLlRvU3RyaW5nKCJ5eXl5LU1NLWRkIik7CiAgICAgICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImFkdmlzb3JJZD0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoYWR2aXNvciksCiAgICAgICAgICAgICAgICAiZGF0ZT0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoZGF0ZVN0cikKICAgICAgICAgICAgfTsKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgPSAiaW5wdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJpbnB1dC1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXguTWVzc2FnZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyAgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgIHZhciBib2R5ID0gY29udGV4dC5Cb2R5OwogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHksICJpc1N1Y2Nlc3MiKSAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVyck5vZGUgPSBIYXNQcm9wZXJ0eShib2R5LCAiZGF0YSIpID8gYm9keS5kYXRhIDogbnVsbDsKICAgICAgICAgICAgICAgIHZhciBkZXRhaWwgPSBHZXRTdHJpbmcoZXJyTm9kZSwgImRldGFpbCIpID8/IEdldFN0cmluZyhib2R5LCAiZXJyb3JNZXNzYWdlIikgPz8gR2V0U3RyaW5nKGJvZHksICJkZXRhaWwiKTsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbihkZXRhaWwgPz8gIkZ1bmN0aW9uIGNhbGwgZmFpbGVkIiwiIik7CiAgICAgICAgICAgIH0KICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEYXRhID0gbmV3IHsgc2xvdENoZWNrUmVzdWx0ID0gbmV3IHsgYXZhaWxhYmxlID0gZmFsc2UsIGtleSA9ICJuby1pbnN0YW5jZS1kYXRhIiB9IH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGVUaW1lU3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmREYXRlVGltZVN0cikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREdFV0YyA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREdFV0YyA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc3RhcnREdFV0YyA9IFBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0cik7CiAgICAgICAgICAgICAgICBlbmREdFV0YyA9IFBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHR6ID0gUmVzb2x2ZUJ1c2luZXNzVGltZVpvbmUoKTsKICAgICAgICAgICAgdmFyIGxvY2FsU3RhcnQgPSBUaW1lWm9uZUluZm8uQ29udmVydFRpbWVGcm9tVXRjKHN0YXJ0RHRVdGMsIHR6KTsKICAgICAgICAgICAgdmFyIGxvY2FsRW5kID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhlbmREdFV0YywgdHopOwogICAgICAgICAgICB2YXIgcmVxdWVzdGVkU2xvdCA9IGxvY2FsU3RhcnQuVG9TdHJpbmcoIkhIOm1tIikgKyAiLSIgKyBsb2NhbEVuZC5Ub1N0cmluZygiSEg6bW0iKTsKCiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CiAgICAgICAgICAgIGR5bmFtaWMgcmVzb2x2ZWRTbG90cyA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKCiAgICAgICAgICAgICAgICBkeW5hbWljIHNsb3RzQ29udGFpbmVyID0gbnVsbDsKCiAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoYm9keSwgImdldEF2YWlsYWJsZVNsb3RzIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBib2R5LmdldEF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IEhhc1Byb3BlcnR5KGJvZHksICJkYXRhIikgPyBib2R5LmRhdGEgOiAoSGFzUHJvcGVydHkoYm9keSwgIkRhdGEiKSA/IGJvZHkuRGF0YSA6IG51bGwpOwogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzQ29udGFpbmVyID0gZGF0YU5vZGUuZ2V0QXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGFOb2RlICE9IG51bGwgJiYgSGFzUHJvcGVydHkoZGF0YU5vZGUsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBkYXRhTm9kZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHNsb3RzQ29udGFpbmVyICE9IG51bGwgJiYgSGFzUHJvcGVydHkoc2xvdHNDb250YWluZXIsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGVTbG90cyA9IHNsb3RzQ29udGFpbmVyLmF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgICAgIHJlc29sdmVkU2xvdHMgPSBhdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlU2xvdHMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gYXZhaWxhYmxlU2xvdHMgYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHMgaW4gbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xvdFN0ciA9IHM/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNsb3RTdHIgPT0gcmVxdWVzdGVkU2xvdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGV0YWlsTXNnID0gR2V0U3RyaW5nKGJvZHksICJkZXRhaWwiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbihkZXRhaWxNc2cpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZUtleSA9PSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHksICJpc1N1Y2Nlc3MiKSAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdENoZWNrUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHJlc3BvbnNlS2V5ID8/IChhdmFpbGFibGUgPyAiYXZhaWxhYmxlLXNsb3RzLXN1Y2Nlc3MiIDogInNsb3QtdW5hdmFpbGFibGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHMgPSByZXNvbHZlZFNsb3RzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHRocm93OwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJvdXRwdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpID8/IEdldENvbmZpZ1ZhbHVlKCJBUFBPSU5UTUVOVF9USU1FWk9ORSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGlkKSkKICAgICAgICAgICAgaWQgPSAiRXVyb3BlL0lzdGFuYnVsIjsKCiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKGlkLlRyaW0oKSk7IH0gY2F0Y2ggeyB9CiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKCJUdXJrZXkgU3RhbmRhcmQgVGltZSIpOyB9IGNhdGNoIHsgfQogICAgICAgIHJldHVybiBUaW1lWm9uZUluZm8uQ3JlYXRlQ3VzdG9tVGltZVpvbmUoIlRSVCIsIFRpbWVTcGFuLkZyb21Ib3VycygzKSwgIlRSVCAoVVRDKzMpIiwgIlRSVCAoVVRDKzMpIik7CiAgICB9CgogICAgcHJpdmF0ZSBib29sIFRyeVBhcnNlVG9VdGMoc3RyaW5nIGRhdGVTdHIsIG91dCBEYXRlVGltZSB1dGNEYXRlVGltZSkKICAgIHsKICAgICAgICB1dGNEYXRlVGltZSA9IGRlZmF1bHQ7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGVTdHIpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKERhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKGRhdGVTdHIsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkRhdGVUaW1lU3R5bGVzLk5vbmUsIG91dCB2YXIgZHRvKSkKICAgICAgICB7CiAgICAgICAgICAgIHV0Y0RhdGVUaW1lID0gZHRvLlV0Y0RhdGVUaW1lOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHByaXZhdGUgRGF0ZVRpbWUgUGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0cikKICAgIHsKICAgICAgICB2YXIgZHRvID0gRGF0ZVRpbWVPZmZzZXQuUGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSk7CiAgICAgICAgcmV0dXJuIGR0by5VdGNEYXRlVGltZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
],
|
|
387
429
|
"transitions": [
|
|
388
430
|
{
|
|
389
431
|
"key": "slot-available",
|
|
@@ -424,6 +466,38 @@
|
|
|
424
466
|
"location": "./src/SlotUnavailableRule.csx",
|
|
425
467
|
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwoKLy8vIDxzdW1tYXJ5PgovLy8gQ29uZGl0aW9uIG1hcHBpbmcgZm9yIHNsb3QtdW5hdmFpbGFibGUgYXV0byB0cmFuc2l0aW9uIGluIHJlemVydmF0aW9uIHZhbGlkYXRpbmcgc3RhdGUuCi8vLyBSdWxlOiBzbG90Q2hlY2tSZXN1bHQgPT0gbnVsbCBPUiBzbG90Q2hlY2tSZXN1bHQuYXZhaWxhYmxlICE9IHRydWUKLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNsb3RVbmF2YWlsYWJsZVJ1bGUgOiBTY3JpcHRCYXNlLCBJQ29uZGl0aW9uTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxib29sPiBIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChjb250ZXh0Py5JbnN0YW5jZT8uRGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdCh0cnVlKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZS5EYXRhOwogICAgICAgICAgICBpZiAoIUhhc1Byb3BlcnR5KGRhdGEsICJzbG90Q2hlY2tSZXN1bHQiKSB8fCBkYXRhLnNsb3RDaGVja1Jlc3VsdCA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdCh0cnVlKTsKCiAgICAgICAgICAgIHZhciBzbG90Q2hlY2tSZXN1bHQgPSBkYXRhLnNsb3RDaGVja1Jlc3VsdDsKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShzbG90Q2hlY2tSZXN1bHQsICJhdmFpbGFibGUiKSkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHNsb3RDaGVja1Jlc3VsdC5hdmFpbGFibGUgIT0gdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwogICAgICAgIH0KICAgIH0KfQo="
|
|
426
468
|
}
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"key": "date-invalid",
|
|
472
|
+
"target": "slot-unavailable",
|
|
473
|
+
"triggerType": 0,
|
|
474
|
+
"versionStrategy": "Minor",
|
|
475
|
+
"labels": [
|
|
476
|
+
{
|
|
477
|
+
"label": "Date Invalid",
|
|
478
|
+
"language": "en-US"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"label": "Tarih Geçersiz",
|
|
482
|
+
"language": "tr-TR"
|
|
483
|
+
}
|
|
484
|
+
]
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"key": "reject-duplicate-rezervation",
|
|
488
|
+
"target": "duplicate-rezervation",
|
|
489
|
+
"triggerType": 0,
|
|
490
|
+
"versionStrategy": "Minor",
|
|
491
|
+
"labels": [
|
|
492
|
+
{
|
|
493
|
+
"label": "Reject Duplicate Reservation",
|
|
494
|
+
"language": "en-US"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"label": "Mükerrer Rezervasyon Reddet",
|
|
498
|
+
"language": "tr-TR"
|
|
499
|
+
}
|
|
500
|
+
]
|
|
427
501
|
}
|
|
428
502
|
]
|
|
429
503
|
},
|
|
@@ -468,7 +542,7 @@
|
|
|
468
542
|
},
|
|
469
543
|
"mapping": {
|
|
470
544
|
"location": "./src/ValidateDateForRezervationMapping.csx",
|
|
471
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+
|
|
545
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZC4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBhcmUgcmVxdWlyZWQuIiwgImRhdGUiKTsKCiAgICAgICAgRGF0ZVRpbWUgc3RhcnREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RHQpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3RhcnREYXRlVGltZSBmb3JtYXQuIiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICBEYXRlVGltZSBlbmREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREdCkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlbmREYXRlVGltZSBmb3JtYXQuIiwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBub3cgPSBEYXRlVGltZS5VdGNOb3c7CiAgICAgICAgaWYgKHN0YXJ0RHQgPCBub3cgfHwgZW5kRHQgPCBub3cpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiRGF0ZSBjYW5ub3QgYmUgaW4gdGhlIHBhc3QuIiwgImRhdGUiKTsKICAgICAgICBpZiAoZW5kRHQgPD0gc3RhcnREdCkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJlbmREYXRlVGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0RGF0ZVRpbWUuIiwgImRhdGUiKTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgYm9vbCBUcnlQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyLCBvdXQgRGF0ZVRpbWUgdXRjRGF0ZVRpbWUpCiAgICB7CiAgICAgICAgdXRjRGF0ZVRpbWUgPSBkZWZhdWx0OwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShkYXRlU3RyKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5EYXRlVGltZVN0eWxlcy5Ob25lLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB1dGNEYXRlVGltZSA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
472
546
|
}
|
|
473
547
|
},
|
|
474
548
|
{
|
|
@@ -481,7 +555,7 @@
|
|
|
481
555
|
},
|
|
482
556
|
"mapping": {
|
|
483
557
|
"location": "./src/CheckDuplicateRezervationMapping.csx",
|
|
484
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY2hlY2stZHVwbGljYXRlLXJlemVydmF0aW9uIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyByZXplcnZhdGlvbiB3b3JrZmxvdyBpbnN0YW5jZXMgdG8gZW5mb3JjZSB0d28gcnVsZXM6Ci8vLyAxLiBBIHVzZXIgY2FuIGhhdmUgYXQgbW9zdCAyIHJlc2VydmF0aW9ucyBpbiBjb25maXJtZWQgc3RhdGVzIChhY3RpdmUsIHVwZGF0ZS1jb250cm9sLCBjaGFuZ2UtYWR2aXNvciwgY2FuLXN0YXJ0LW1lZXRpbmcsIGFjY2VwdC10ZXJtcykuCi8vLyAyLiBBIHVzZXIgY2Fubm90IGhhdmUgdHdvIHJlc2VydmF0aW9ucyB3aXRoIG92ZXJsYXBwaW5nIHRpbWUgc2xvdHMuCi8vLwovLy8gRmxvdzoKLy8vIDEuIElucHV0SGFuZGxlcjogQnVpbGRzIHF1ZXJ5IHRvIGZpbmQgYWxsIGFjdGl2ZSByZXNlcnZhdGlvbnMgZm9yIHRoZSBzYW1lIHVzZXIuCi8vLyAyLiBPdXRwdXRIYW5kbGVyOiBDaGVja3MgY291bnQgKG1heCAyKSBhbmQgdGltZSBvdmVybGFwOyB0aHJvd3MgZXhjZXB0aW9uIG9uIHZpb2xhdGlvbi4KLy8vICAgIEV4Y2VwdGlvbiBmYWlscyB0aGUgdHJhbnNpdGlvbjsgaW5zdGFuY2Ugc3RheXMgaW4gaXRzIGN1cnJlbnQgc3RhdGUuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGVja0R1cGxpY2F0ZVJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc2VydmljZVRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICB2YXIgYXBwSWQgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9BUFBfSUQiKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkoZGF0YSwgInVzZXIiKSB8fCBkYXRhLnVzZXIgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1BWF9SRVpFUlZBVElPTjogVXNlciBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZHVwbGljYXRlIGNoZWNrIik7CgogICAgICAgIHZhciB1c2VyID0gZGF0YS51c2VyLlRvU3RyaW5nKCk7CiAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBjb250ZXh0Lkluc3RhbmNlPy5LZXkgPz8gIiI7CgogICAgICAgIHZhciB1c2VyRXNjYXBlZCA9IHVzZXIuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKICAgICAgICB2YXIga2V5RXNjYXBlZCA9IGN1cnJlbnRLZXkuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKCiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsKICAgICAgICAgICAgICAgICJ7XCJhbmRcIjpbIiArCiAgICAgICAgICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJ1c2VyXCI6e1wiZXFcIjpcIiIgKyB1c2VyRXNjYXBlZCArICJcIn19fSwiICsKICAgICAgICAgICAgICAgICAgICAie1wia2V5XCI6e1wibmVcIjpcIiIgKyBrZXlFc2NhcGVkICsgIlwifX0sIiArCiAgICAgICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCIiICsgImFjdGl2ZSIgKyAiXCJ9fSwiICArCiAgICAgICAgICAgICAgICAiXX0iCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwoKICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJTZXJ2aWNlIGNhbGwgZmFpbGVkIjsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkIlNFUlZJQ0VfRVJST1I6IHtlcnJvck1lc3NhZ2V9Iik7CiAgICAgICAgfQoKICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgaWYgKGl0ZW1zID09IG51bGwgfHwgaXRlbXMuQ291bnQgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIGludCBjb3VudCA9IGl0ZW1zLkNvdW50OwoKICAgICAgICBpZiAoY291bnQgPj0gMikKICAgICAgICB7CiAgICAgICAgICAgIHZhciB1c2VyID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YT8udXNlcj8uVG9TdHJpbmcoKSA/
|
|
558
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY2hlY2stZHVwbGljYXRlLXJlemVydmF0aW9uIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyByZXplcnZhdGlvbiB3b3JrZmxvdyBpbnN0YW5jZXMgdG8gZW5mb3JjZSB0d28gcnVsZXM6Ci8vLyAxLiBBIHVzZXIgY2FuIGhhdmUgYXQgbW9zdCAyIHJlc2VydmF0aW9ucyBpbiBjb25maXJtZWQgc3RhdGVzIChhY3RpdmUsIHVwZGF0ZS1jb250cm9sLCBjaGFuZ2UtYWR2aXNvciwgY2FuLXN0YXJ0LW1lZXRpbmcsIGFjY2VwdC10ZXJtcykuCi8vLyAyLiBBIHVzZXIgY2Fubm90IGhhdmUgdHdvIHJlc2VydmF0aW9ucyB3aXRoIG92ZXJsYXBwaW5nIHRpbWUgc2xvdHMuCi8vLwovLy8gRmxvdzoKLy8vIDEuIElucHV0SGFuZGxlcjogQnVpbGRzIHF1ZXJ5IHRvIGZpbmQgYWxsIGFjdGl2ZSByZXNlcnZhdGlvbnMgZm9yIHRoZSBzYW1lIHVzZXIuCi8vLyAyLiBPdXRwdXRIYW5kbGVyOiBDaGVja3MgY291bnQgKG1heCAyKSBhbmQgdGltZSBvdmVybGFwOyB0aHJvd3MgZXhjZXB0aW9uIG9uIHZpb2xhdGlvbi4KLy8vICAgIEV4Y2VwdGlvbiBmYWlscyB0aGUgdHJhbnNpdGlvbjsgaW5zdGFuY2Ugc3RheXMgaW4gaXRzIGN1cnJlbnQgc3RhdGUuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGVja0R1cGxpY2F0ZVJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc2VydmljZVRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICB2YXIgYXBwSWQgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9BUFBfSUQiKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkoZGF0YSwgInVzZXIiKSB8fCBkYXRhLnVzZXIgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1BWF9SRVpFUlZBVElPTjogVXNlciBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZHVwbGljYXRlIGNoZWNrIik7CgogICAgICAgIHZhciB1c2VyID0gZGF0YS51c2VyLlRvU3RyaW5nKCk7CiAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBjb250ZXh0Lkluc3RhbmNlPy5LZXkgPz8gIiI7CgogICAgICAgIHZhciB1c2VyRXNjYXBlZCA9IHVzZXIuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKICAgICAgICB2YXIga2V5RXNjYXBlZCA9IGN1cnJlbnRLZXkuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKCiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsKICAgICAgICAgICAgICAgICJ7XCJhbmRcIjpbIiArCiAgICAgICAgICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJ1c2VyXCI6e1wiZXFcIjpcIiIgKyB1c2VyRXNjYXBlZCArICJcIn19fSwiICsKICAgICAgICAgICAgICAgICAgICAie1wia2V5XCI6e1wibmVcIjpcIiIgKyBrZXlFc2NhcGVkICsgIlwifX0sIiArCiAgICAgICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCIiICsgImFjdGl2ZSIgKyAiXCJ9fSwiICArCiAgICAgICAgICAgICAgICAiXX0iCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwoKICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJTZXJ2aWNlIGNhbGwgZmFpbGVkIjsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkIlNFUlZJQ0VfRVJST1I6IHtlcnJvck1lc3NhZ2V9Iik7CiAgICAgICAgfQoKICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgaWYgKGl0ZW1zID09IG51bGwgfHwgaXRlbXMuQ291bnQgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIGludCBjb3VudCA9IGl0ZW1zLkNvdW50OwoKICAgICAgICBpZiAoY291bnQgPj0gMikKICAgICAgICB7CiAgICAgICAgICAgIHZhciB1c2VyID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YT8udXNlcj8uVG9TdHJpbmcoKSA/PyAidW5rbm93biI7CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJCJNQVhfUkVaRVJWQVRJT046IFVzZXIgJ3t1c2VyfScgYWxyZWFkeSBoYXMge2NvdW50fSBhY3RpdmUgcmVzZXJ2YXRpb25zLiBNYXhpbXVtIGFsbG93ZWQgaXMgMi4iKTsKICAgICAgICB9CgogICAgICAgIHZhciBpbnN0YW5jZURhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBuZXdTdGFydFN0ciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgdmFyIG5ld0VuZFN0ciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KG5ld1N0YXJ0U3RyKSAmJiAhc3RyaW5nLklzTnVsbE9yRW1wdHkobmV3RW5kU3RyKSkKICAgICAgICB7CiAgICAgICAgICAgIERhdGVUaW1lIG5ld1N0YXJ0ID0gZGVmYXVsdCwgbmV3RW5kID0gZGVmYXVsdDsKICAgICAgICAgICAgaWYgKFRyeVBhcnNlVG9VdGMobmV3U3RhcnRTdHIsIG91dCBuZXdTdGFydCkgJiYgVHJ5UGFyc2VUb1V0YyhuZXdFbmRTdHIsIG91dCBuZXdFbmQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgaXRlbSBpbiBpdGVtcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGV4aXN0aW5nU3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ0VuZFN0ciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZXhpc3RpbmdTdGFydFN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZXhpc3RpbmdFbmRTdHIpKQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgZXhpc3RpbmdTdGFydCA9IGRlZmF1bHQsIGV4aXN0aW5nRW5kID0gZGVmYXVsdDsKICAgICAgICAgICAgICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoZXhpc3RpbmdTdGFydFN0ciwgb3V0IGV4aXN0aW5nU3RhcnQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICFUcnlQYXJzZVRvVXRjKGV4aXN0aW5nRW5kU3RyLCBvdXQgZXhpc3RpbmdFbmQpKQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nU3RhcnQgPCBuZXdFbmQgJiYgZXhpc3RpbmdFbmQgPiBuZXdTdGFydCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ0tleSA9IEhhc1Byb3BlcnR5KGl0ZW0sICJrZXkiKSA/IGl0ZW0ua2V5Py5Ub1N0cmluZygpIDogInVua25vd24iOwogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCJUSU1FX09WRVJMQVA6IFJlcXVlc3RlZCB0aW1lIHtuZXdTdGFydFN0cn0gLSB7bmV3RW5kU3RyfSBvdmVybGFwcyB3aXRoIGV4aXN0aW5nIHJlc2VydmF0aW9uICd7ZXhpc3RpbmdLZXl9JyAoe2V4aXN0aW5nU3RhcnRTdHJ9IC0ge2V4aXN0aW5nRW5kU3RyfSkuIik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwcml2YXRlIGJvb2wgVHJ5UGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0ciwgb3V0IERhdGVUaW1lIHV0Y0RhdGVUaW1lKQogICAgewogICAgICAgIHV0Y0RhdGVUaW1lID0gZGVmYXVsdDsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZGF0ZVN0cikpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoRGF0ZVRpbWVPZmZzZXQuVHJ5UGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uRGF0ZVRpbWVTdHlsZXMuTm9uZSwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdXRjRGF0ZVRpbWUgPSBkdG8uVXRjRGF0ZVRpbWU7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
|
|
485
559
|
}
|
|
486
560
|
},
|
|
487
561
|
{
|
|
@@ -494,7 +568,7 @@
|
|
|
494
568
|
},
|
|
495
569
|
"mapping": {
|
|
496
570
|
"location": "./src/ValidateSlotForRezervationMapping.csx",
|
|
497
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2suCi8vLyBJbnZva2VzIGdldC1hdmFpbGFibGUtc2xvdHMgZnVuY3Rpb24gd2l0aCBhZHZpc29yIGFuZCBkYXRlIGZyb20gcmV6ZXJ2YXRpb24gaW5zdGFuY2UsCi8vLyB0aGVuIGNoZWNrcyBpZiB0aGUgcmVxdWVzdGVkIHN0YXJ0RGF0ZVRpbWUtZW5kRGF0ZVRpbWUgc2xvdCBpcyBpbiB0aGUgYXZhaWxhYmxlIHNsb3RzIGxpc3QuCi8vLyBPdXRwdXQ6IHNsb3RDaGVja1Jlc3VsdCB7IGF2YWlsYWJsZTogYm9vbCwga2V5Pzogc3RyaW5nIH0gZm9yIHVzZSBieSB2YWxpZGF0aW5nIHN0YXRlIGF1dG8gdHJhbnNpdGlvbnMuCi8vLyA8L3N1bW1hcnk+CmludGVybmFsIHNlYWxlZCBjbGFzcyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbiA6IEV4Y2VwdGlvbgp7CiAgICBwdWJsaWMgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb24oc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvciIpOwogICAgICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoYWR2aXNvcikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0gInZhbGlkYXRpb24tZXJyb3IiLAogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydERhdGVUaW1lOwogICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdENoZWNrUmVzdWx0ID0gbmV3IHsgYXZhaWxhYmxlID0gZmFsc2UsIGtleSA9ICJ2YWxpZGF0aW9uLWVycm9yIiB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBkYXRlU3RyID0gc3RhcnREYXRlVGltZS5Ub1N0cmluZygieXl5eS1NTS1kZCIpOwogICAgICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhZHZpc29ySWQ9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGFkdmlzb3IpLAogICAgICAgICAgICAgICAgImRhdGU9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGRhdGVTdHIpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ID0gImlucHV0LWVycm9yIiwKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSAiaW5wdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShib2R5LCAiaXNTdWNjZXNzIikgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBlcnJOb2RlID0gSGFzUHJvcGVydHkoYm9keSwgImRhdGEiKSA/IGJvZHkuZGF0YSA6IG51bGw7CiAgICAgICAgICAgICAgICB2YXIgZGV0YWlsID0gR2V0U3RyaW5nKGVyck5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImVycm9yTWVzc2FnZSIpID8/IEdldFN0cmluZyhib2R5LCAiZGV0YWlsIik7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oZGV0YWlsID8/ICJGdW5jdGlvbiBjYWxsIGZhaWxlZCIsIiIpOwogICAgICAgICAgICB9CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgdmFyIGVuZERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZVRpbWVTdHIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERhdGVUaW1lIHN0YXJ0RHQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgRGF0ZVRpbWUgZW5kRHQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0YXJ0RHQgPSBEYXRlVGltZS5QYXJzZShzdGFydERhdGVUaW1lU3RyKTsKICAgICAgICAgICAgICAgIGVuZER0ID0gRGF0ZVRpbWUuUGFyc2UoZW5kRGF0ZVRpbWVTdHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHR6ID0gUmVzb2x2ZUJ1c2luZXNzVGltZVpvbmUoKTsKICAgICAgICAgICAgdmFyIGxvY2FsU3RhcnQgPSBDb252ZXJ0VG9UaW1lWm9uZShzdGFydER0LCBzdGFydERhdGVUaW1lU3RyLCB0eik7CiAgICAgICAgICAgIHZhciBsb2NhbEVuZCA9IENvbnZlcnRUb1RpbWVab25lKGVuZER0LCBlbmREYXRlVGltZVN0ciwgdHopOwogICAgICAgICAgICB2YXIgcmVxdWVzdGVkU2xvdCA9IGxvY2FsU3RhcnQuVG9TdHJpbmcoIkhIOm1tIikgKyAiLSIgKyBsb2NhbEVuZC5Ub1N0cmluZygiSEg6bW0iKTsKCiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CiAgICAgICAgICAgIGR5bmFtaWMgcmVzb2x2ZWRTbG90cyA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKCiAgICAgICAgICAgICAgICBkeW5hbWljIHNsb3RzQ29udGFpbmVyID0gbnVsbDsKCiAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoYm9keSwgImdldEF2YWlsYWJsZVNsb3RzIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBib2R5LmdldEF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IEhhc1Byb3BlcnR5KGJvZHksICJkYXRhIikgPyBib2R5LmRhdGEgOiAoSGFzUHJvcGVydHkoYm9keSwgIkRhdGEiKSA/IGJvZHkuRGF0YSA6IG51bGwpOwogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzQ29udGFpbmVyID0gZGF0YU5vZGUuZ2V0QXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGFOb2RlICE9IG51bGwgJiYgSGFzUHJvcGVydHkoZGF0YU5vZGUsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBkYXRhTm9kZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHNsb3RzQ29udGFpbmVyICE9IG51bGwgJiYgSGFzUHJvcGVydHkoc2xvdHNDb250YWluZXIsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGVTbG90cyA9IHNsb3RzQ29udGFpbmVyLmF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgICAgIHJlc29sdmVkU2xvdHMgPSBhdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlU2xvdHMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gYXZhaWxhYmxlU2xvdHMgYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHMgaW4gbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xvdFN0ciA9IHM/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNsb3RTdHIgPT0gcmVxdWVzdGVkU2xvdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGV0YWlsTXNnID0gR2V0U3RyaW5nKGJvZHksICJkZXRhaWwiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbihkZXRhaWxNc2cpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZUtleSA9PSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHksICJpc1N1Y2Nlc3MiKSAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdENoZWNrUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHJlc3BvbnNlS2V5ID8/IChhdmFpbGFibGUgPyAiYXZhaWxhYmxlLXNsb3RzLXN1Y2Nlc3MiIDogInNsb3QtdW5hdmFpbGFibGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHMgPSByZXNvbHZlZFNsb3RzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHRocm93OwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJvdXRwdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpID8/IEdldENvbmZpZ1ZhbHVlKCJBUFBPSU5UTUVOVF9USU1FWk9ORSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGlkKSkKICAgICAgICAgICAgaWQgPSAiRXVyb3BlL0lzdGFuYnVsIjsKCiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKGlkLlRyaW0oKSk7IH0gY2F0Y2ggeyB9CiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKCJUdXJrZXkgU3RhbmRhcmQgVGltZSIpOyB9IGNhdGNoIHsgfQogICAgICAgIHJldHVybiBUaW1lWm9uZUluZm8uQ3JlYXRlQ3VzdG9tVGltZVpvbmUoIlRSVCIsIFRpbWVTcGFuLkZyb21Ib3VycygzKSwgIlRSVCAoVVRDKzMpIiwgIlRSVCAoVVRDKzMpIik7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGF0ZVRpbWUgQ29udmVydFRvVGltZVpvbmUoRGF0ZVRpbWUgZHQsIHN0cmluZyBvcmlnaW5hbCwgVGltZVpvbmVJbmZvIHR6KQogICAgewogICAgICAgIGlmIChkdC5LaW5kID09IERhdGVUaW1lS2luZC5VdGMpCiAgICAgICAgICAgIHJldHVybiBUaW1lWm9uZUluZm8uQ29udmVydFRpbWVGcm9tVXRjKGR0LCB0eik7CgogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShvcmlnaW5hbCwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHV0YyA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5Db252ZXJ0VGltZUZyb21VdGModXRjLCB0eik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZHQ7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
|
|
571
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2suCi8vLyBJbnZva2VzIGdldC1hdmFpbGFibGUtc2xvdHMgZnVuY3Rpb24gd2l0aCBhZHZpc29yIGFuZCBkYXRlIGZyb20gcmV6ZXJ2YXRpb24gaW5zdGFuY2UsCi8vLyB0aGVuIGNoZWNrcyBpZiB0aGUgcmVxdWVzdGVkIHN0YXJ0RGF0ZVRpbWUtZW5kRGF0ZVRpbWUgc2xvdCBpcyBpbiB0aGUgYXZhaWxhYmxlIHNsb3RzIGxpc3QuCi8vLyBPdXRwdXQ6IHNsb3RDaGVja1Jlc3VsdCB7IGF2YWlsYWJsZTogYm9vbCwga2V5Pzogc3RyaW5nIH0gZm9yIHVzZSBieSB2YWxpZGF0aW5nIHN0YXRlIGF1dG8gdHJhbnNpdGlvbnMuCi8vLyA8L3N1bW1hcnk+CmludGVybmFsIHNlYWxlZCBjbGFzcyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbiA6IEV4Y2VwdGlvbgp7CiAgICBwdWJsaWMgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb24oc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJlemVydmF0aW9uTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvciIpOwogICAgICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoYWR2aXNvcikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0gInZhbGlkYXRpb24tZXJyb3IiLAogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydERhdGVUaW1lOwogICAgICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RGF0ZVRpbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSA9ICJ2YWxpZGF0aW9uLWVycm9yIiwKICAgICAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBzdGFydERhdGVUaW1lLlRvU3RyaW5nKCJ5eXl5LU1NLWRkIik7CiAgICAgICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImFkdmlzb3JJZD0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoYWR2aXNvciksCiAgICAgICAgICAgICAgICAiZGF0ZT0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoZGF0ZVN0cikKICAgICAgICAgICAgfTsKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgPSAiaW5wdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJpbnB1dC1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXguTWVzc2FnZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyAgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgIHZhciBib2R5ID0gY29udGV4dC5Cb2R5OwogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHksICJpc1N1Y2Nlc3MiKSAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVyck5vZGUgPSBIYXNQcm9wZXJ0eShib2R5LCAiZGF0YSIpID8gYm9keS5kYXRhIDogbnVsbDsKICAgICAgICAgICAgICAgIHZhciBkZXRhaWwgPSBHZXRTdHJpbmcoZXJyTm9kZSwgImRldGFpbCIpID8/IEdldFN0cmluZyhib2R5LCAiZXJyb3JNZXNzYWdlIikgPz8gR2V0U3RyaW5nKGJvZHksICJkZXRhaWwiKTsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbihkZXRhaWwgPz8gIkZ1bmN0aW9uIGNhbGwgZmFpbGVkIiwiIik7CiAgICAgICAgICAgIH0KICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEYXRhID0gbmV3IHsgc2xvdENoZWNrUmVzdWx0ID0gbmV3IHsgYXZhaWxhYmxlID0gZmFsc2UsIGtleSA9ICJuby1pbnN0YW5jZS1kYXRhIiB9IH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGVUaW1lU3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmREYXRlVGltZVN0cikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREdFV0YyA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREdFV0YyA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc3RhcnREdFV0YyA9IFBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0cik7CiAgICAgICAgICAgICAgICBlbmREdFV0YyA9IFBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHR6ID0gUmVzb2x2ZUJ1c2luZXNzVGltZVpvbmUoKTsKICAgICAgICAgICAgdmFyIGxvY2FsU3RhcnQgPSBUaW1lWm9uZUluZm8uQ29udmVydFRpbWVGcm9tVXRjKHN0YXJ0RHRVdGMsIHR6KTsKICAgICAgICAgICAgdmFyIGxvY2FsRW5kID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhlbmREdFV0YywgdHopOwogICAgICAgICAgICB2YXIgcmVxdWVzdGVkU2xvdCA9IGxvY2FsU3RhcnQuVG9TdHJpbmcoIkhIOm1tIikgKyAiLSIgKyBsb2NhbEVuZC5Ub1N0cmluZygiSEg6bW0iKTsKCiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CiAgICAgICAgICAgIGR5bmFtaWMgcmVzb2x2ZWRTbG90cyA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKCiAgICAgICAgICAgICAgICBkeW5hbWljIHNsb3RzQ29udGFpbmVyID0gbnVsbDsKCiAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoYm9keSwgImdldEF2YWlsYWJsZVNsb3RzIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBib2R5LmdldEF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IEhhc1Byb3BlcnR5KGJvZHksICJkYXRhIikgPyBib2R5LmRhdGEgOiAoSGFzUHJvcGVydHkoYm9keSwgIkRhdGEiKSA/IGJvZHkuRGF0YSA6IG51bGwpOwogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzQ29udGFpbmVyID0gZGF0YU5vZGUuZ2V0QXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGFOb2RlICE9IG51bGwgJiYgSGFzUHJvcGVydHkoZGF0YU5vZGUsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHNDb250YWluZXIgPSBkYXRhTm9kZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHNsb3RzQ29udGFpbmVyICE9IG51bGwgJiYgSGFzUHJvcGVydHkoc2xvdHNDb250YWluZXIsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGVTbG90cyA9IHNsb3RzQ29udGFpbmVyLmF2YWlsYWJsZVNsb3RzOwogICAgICAgICAgICAgICAgICAgIHJlc29sdmVkU2xvdHMgPSBhdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlU2xvdHMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gYXZhaWxhYmxlU2xvdHMgYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHMgaW4gbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xvdFN0ciA9IHM/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNsb3RTdHIgPT0gcmVxdWVzdGVkU2xvdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGV0YWlsTXNnID0gR2V0U3RyaW5nKGJvZHksICJkZXRhaWwiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbihkZXRhaWxNc2cpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZUtleSA9PSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHksICJpc1N1Y2Nlc3MiKSAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2xvdENoZWNrUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHJlc3BvbnNlS2V5ID8/IChhdmFpbGFibGUgPyAiYXZhaWxhYmxlLXNsb3RzLXN1Y2Nlc3MiIDogInNsb3QtdW5hdmFpbGFibGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgc2xvdHMgPSByZXNvbHZlZFNsb3RzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHRocm93OwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJvdXRwdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpID8/IEdldENvbmZpZ1ZhbHVlKCJBUFBPSU5UTUVOVF9USU1FWk9ORSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGlkKSkKICAgICAgICAgICAgaWQgPSAiRXVyb3BlL0lzdGFuYnVsIjsKCiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKGlkLlRyaW0oKSk7IH0gY2F0Y2ggeyB9CiAgICAgICAgdHJ5IHsgcmV0dXJuIFRpbWVab25lSW5mby5GaW5kU3lzdGVtVGltZVpvbmVCeUlkKCJUdXJrZXkgU3RhbmRhcmQgVGltZSIpOyB9IGNhdGNoIHsgfQogICAgICAgIHJldHVybiBUaW1lWm9uZUluZm8uQ3JlYXRlQ3VzdG9tVGltZVpvbmUoIlRSVCIsIFRpbWVTcGFuLkZyb21Ib3VycygzKSwgIlRSVCAoVVRDKzMpIiwgIlRSVCAoVVRDKzMpIik7CiAgICB9CgogICAgcHJpdmF0ZSBib29sIFRyeVBhcnNlVG9VdGMoc3RyaW5nIGRhdGVTdHIsIG91dCBEYXRlVGltZSB1dGNEYXRlVGltZSkKICAgIHsKICAgICAgICB1dGNEYXRlVGltZSA9IGRlZmF1bHQ7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGVTdHIpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKERhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKGRhdGVTdHIsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkRhdGVUaW1lU3R5bGVzLk5vbmUsIG91dCB2YXIgZHRvKSkKICAgICAgICB7CiAgICAgICAgICAgIHV0Y0RhdGVUaW1lID0gZHRvLlV0Y0RhdGVUaW1lOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHByaXZhdGUgRGF0ZVRpbWUgUGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0cikKICAgIHsKICAgICAgICB2YXIgZHRvID0gRGF0ZVRpbWVPZmZzZXQuUGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSk7CiAgICAgICAgcmV0dXJuIGR0by5VdGNEYXRlVGltZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
498
572
|
}
|
|
499
573
|
}
|
|
500
574
|
]
|
|
@@ -502,6 +576,22 @@
|
|
|
502
576
|
],
|
|
503
577
|
"_comment": "## State Overview\n\n**Purpose:** Rezervasyon temel bilgilerini girmek icin kullanilir.\n\n* Tarih : Rezervasyon Tarihi\n* Saat : Rezervasyon Saati"
|
|
504
578
|
},
|
|
579
|
+
{
|
|
580
|
+
"key": "duplicate-rezervation",
|
|
581
|
+
"stateType": 2,
|
|
582
|
+
"versionStrategy": "Minor",
|
|
583
|
+
"labels": [
|
|
584
|
+
{
|
|
585
|
+
"label": "Duplicate Reservation",
|
|
586
|
+
"language": "en-US"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"label": "Mükerrer Rezervasyon",
|
|
590
|
+
"language": "tr-TR"
|
|
591
|
+
}
|
|
592
|
+
],
|
|
593
|
+
"transitions": []
|
|
594
|
+
},
|
|
505
595
|
{
|
|
506
596
|
"key": "active",
|
|
507
597
|
"stateType": 2,
|
|
@@ -18,10 +18,11 @@ public class CanStartRezervationTimerMapping : ScriptBase, ITimerMapping
|
|
|
18
18
|
if (string.IsNullOrWhiteSpace(startDateTimeStr))
|
|
19
19
|
return Task.FromResult(TimerSchedule.FromDuration(TimeSpan.FromMinutes(1)));
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
DateTime startDateTimeUtc;
|
|
22
|
+
if (!TryParseToUtc(startDateTimeStr, out startDateTimeUtc))
|
|
22
23
|
return Task.FromResult(TimerSchedule.FromDuration(TimeSpan.FromMinutes(1)));
|
|
23
24
|
|
|
24
|
-
var targetTime =
|
|
25
|
+
var targetTime = startDateTimeUtc.AddMinutes(-15);
|
|
25
26
|
var now = DateTime.UtcNow;
|
|
26
27
|
var duration = targetTime - now;
|
|
27
28
|
|
|
@@ -31,7 +32,21 @@ public class CanStartRezervationTimerMapping : ScriptBase, ITimerMapping
|
|
|
31
32
|
return Task.FromResult(TimerSchedule.FromDuration(duration));
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
private
|
|
35
|
+
private bool TryParseToUtc(string dateStr, out DateTime utcDateTime)
|
|
36
|
+
{
|
|
37
|
+
utcDateTime = default;
|
|
38
|
+
if (string.IsNullOrEmpty(dateStr)) return false;
|
|
39
|
+
if (DateTimeOffset.TryParse(dateStr,
|
|
40
|
+
System.Globalization.CultureInfo.InvariantCulture,
|
|
41
|
+
System.Globalization.DateTimeStyles.None, out var dto))
|
|
42
|
+
{
|
|
43
|
+
utcDateTime = dto.UtcDateTime;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private string GetString(dynamic obj, string name)
|
|
35
50
|
{
|
|
36
51
|
if (obj == null) return null;
|
|
37
52
|
try
|
|
@@ -36,10 +36,17 @@ public class ChatRoomRemoveMapping : ScriptBase, IMapping
|
|
|
36
36
|
var matrixBaseUrl = await GetSecretAsync(secretName, "workflow-secret", "MatrixBaseUrl");
|
|
37
37
|
if (string.IsNullOrWhiteSpace(matrixBaseUrl))
|
|
38
38
|
throw new InvalidOperationException("MatrixBaseUrl secret is required");
|
|
39
|
+
|
|
40
|
+
var SynapseServer = await GetSecretAsync(secretName, "workflow-secret", "SynapseServer");
|
|
41
|
+
if (string.IsNullOrWhiteSpace(SynapseServer))
|
|
42
|
+
throw new InvalidOperationException("SynapseServer secret is required");
|
|
43
|
+
|
|
39
44
|
var fullUrl = matrixBaseUrl.TrimEnd('/') + "/_matrix/client/v3/rooms/" + Uri.EscapeDataString(roomId) + "/kick";
|
|
40
45
|
httpTask.SetUrl(fullUrl);
|
|
41
46
|
|
|
42
|
-
var matrixUserId = removeMemberId.Trim().StartsWith("@") ? removeMemberId.Trim() : $"@{removeMemberId.Trim()}:
|
|
47
|
+
var matrixUserId = removeMemberId.Trim().StartsWith("@") ? removeMemberId.Trim() : $"@{removeMemberId.Trim()}:{SynapseServer}";
|
|
48
|
+
|
|
49
|
+
var sessionId = GetString(chatIntegration, "sessionId");
|
|
43
50
|
|
|
44
51
|
var headers = new Dictionary<string, string>
|
|
45
52
|
{
|
|
@@ -47,6 +54,8 @@ public class ChatRoomRemoveMapping : ScriptBase, IMapping
|
|
|
47
54
|
["Accept"] = "application/json",
|
|
48
55
|
["X-Matrix-User"] = user
|
|
49
56
|
};
|
|
57
|
+
if (!string.IsNullOrWhiteSpace(sessionId))
|
|
58
|
+
headers["Authorization"] = "Bearer " + sessionId;
|
|
50
59
|
httpTask.SetHeaders(headers);
|
|
51
60
|
|
|
52
61
|
httpTask.SetBody(new { user_id = matrixUserId });
|
|
@@ -37,10 +37,17 @@ public class ChatRoomTransferInviteMapping : ScriptBase, IMapping
|
|
|
37
37
|
var matrixBaseUrl = await GetSecretAsync(secretName, "workflow-secret", "MatrixBaseUrl");
|
|
38
38
|
if (string.IsNullOrWhiteSpace(matrixBaseUrl))
|
|
39
39
|
throw new InvalidOperationException("MatrixBaseUrl secret is required");
|
|
40
|
+
|
|
41
|
+
var SynapseServer = await GetSecretAsync(secretName, "workflow-secret", "SynapseServer");
|
|
42
|
+
if (string.IsNullOrWhiteSpace(SynapseServer))
|
|
43
|
+
throw new InvalidOperationException("SynapseServer secret is required");
|
|
44
|
+
|
|
40
45
|
var fullUrl = matrixBaseUrl.TrimEnd('/') + "/_matrix/client/v3/rooms/" + Uri.EscapeDataString(roomId) + "/invite";
|
|
41
46
|
httpTask.SetUrl(fullUrl);
|
|
42
47
|
|
|
43
|
-
var matrixUserId = newAdvisorId.Trim().StartsWith("@") ? newAdvisorId.Trim() : $"@{newAdvisorId.Trim()}:
|
|
48
|
+
var matrixUserId = newAdvisorId.Trim().StartsWith("@") ? newAdvisorId.Trim() : $"@{newAdvisorId.Trim()}:{SynapseServer}";
|
|
49
|
+
|
|
50
|
+
var sessionId = GetString(chatIntegration, "sessionId");
|
|
44
51
|
|
|
45
52
|
var headers = new Dictionary<string, string>
|
|
46
53
|
{
|
|
@@ -48,6 +55,8 @@ public class ChatRoomTransferInviteMapping : ScriptBase, IMapping
|
|
|
48
55
|
["Accept"] = "application/json",
|
|
49
56
|
["X-Matrix-User"] = user
|
|
50
57
|
};
|
|
58
|
+
if (!string.IsNullOrWhiteSpace(sessionId))
|
|
59
|
+
headers["Authorization"] = "Bearer " + sessionId;
|
|
51
60
|
httpTask.SetHeaders(headers);
|
|
52
61
|
|
|
53
62
|
httpTask.SetBody(new { user_id = matrixUserId });
|
|
@@ -26,6 +26,10 @@ public class ChatRoomTransferRemoveMapping : ScriptBase, IMapping
|
|
|
26
26
|
if (string.IsNullOrWhiteSpace(matrixBaseUrl))
|
|
27
27
|
throw new InvalidOperationException("MatrixBaseUrl secret is required");
|
|
28
28
|
|
|
29
|
+
var SynapseServer = await GetSecretAsync(secretName, "workflow-secret", "SynapseServer");
|
|
30
|
+
if (string.IsNullOrWhiteSpace(SynapseServer))
|
|
31
|
+
throw new InvalidOperationException("SynapseServer secret is required");
|
|
32
|
+
|
|
29
33
|
var data = context.Instance?.Data;
|
|
30
34
|
var user = GetString(data, "user");
|
|
31
35
|
var chatIntegration = data?.chatIntegration;
|
|
@@ -38,7 +42,9 @@ public class ChatRoomTransferRemoveMapping : ScriptBase, IMapping
|
|
|
38
42
|
var fullUrl = matrixBaseUrl.TrimEnd('/') + "/_matrix/client/v3/rooms/" + Uri.EscapeDataString(roomId) + "/kick";
|
|
39
43
|
httpTask.SetUrl(fullUrl);
|
|
40
44
|
|
|
41
|
-
var matrixUserId = currentAdvisorId.Trim().StartsWith("@") ? currentAdvisorId.Trim() : $"@{currentAdvisorId.Trim()}:
|
|
45
|
+
var matrixUserId = currentAdvisorId.Trim().StartsWith("@") ? currentAdvisorId.Trim() : $"@{currentAdvisorId.Trim()}:{SynapseServer}";
|
|
46
|
+
|
|
47
|
+
var sessionId = GetString(chatIntegration, "sessionId");
|
|
42
48
|
|
|
43
49
|
var headers = new Dictionary<string, string>
|
|
44
50
|
{
|
|
@@ -46,6 +52,8 @@ public class ChatRoomTransferRemoveMapping : ScriptBase, IMapping
|
|
|
46
52
|
["Accept"] = "application/json",
|
|
47
53
|
["X-Matrix-User"] = user
|
|
48
54
|
};
|
|
55
|
+
if (!string.IsNullOrWhiteSpace(sessionId))
|
|
56
|
+
headers["Authorization"] = "Bearer " + sessionId;
|
|
49
57
|
httpTask.SetHeaders(headers);
|
|
50
58
|
|
|
51
59
|
httpTask.SetBody(new { user_id = matrixUserId });
|
|
@@ -37,10 +37,17 @@ public class ChatRoomUpdateMapping : ScriptBase, IMapping
|
|
|
37
37
|
var matrixBaseUrl = await GetSecretAsync(secretName, "workflow-secret", "MatrixBaseUrl");
|
|
38
38
|
if (string.IsNullOrWhiteSpace(matrixBaseUrl))
|
|
39
39
|
throw new InvalidOperationException("MatrixBaseUrl secret is required");
|
|
40
|
+
|
|
41
|
+
var SynapseServer = await GetSecretAsync(secretName, "workflow-secret", "SynapseServer");
|
|
42
|
+
if (string.IsNullOrWhiteSpace(SynapseServer))
|
|
43
|
+
throw new InvalidOperationException("SynapseServer secret is required");
|
|
44
|
+
|
|
40
45
|
var fullUrl = matrixBaseUrl.TrimEnd('/') + "/_matrix/client/v3/rooms/" + Uri.EscapeDataString(roomId) + "/invite";
|
|
41
46
|
httpTask.SetUrl(fullUrl);
|
|
42
47
|
|
|
43
|
-
var matrixUserId = newMemberId.Trim().StartsWith("@") ? newMemberId.Trim() : $"@{newMemberId.Trim()}:
|
|
48
|
+
var matrixUserId = newMemberId.Trim().StartsWith("@") ? newMemberId.Trim() : $"@{newMemberId.Trim()}:{SynapseServer}";
|
|
49
|
+
|
|
50
|
+
var sessionId = GetString(chatIntegration, "sessionId");
|
|
44
51
|
|
|
45
52
|
var headers = new Dictionary<string, string>
|
|
46
53
|
{
|
|
@@ -48,6 +55,8 @@ public class ChatRoomUpdateMapping : ScriptBase, IMapping
|
|
|
48
55
|
["Accept"] = "application/json",
|
|
49
56
|
["X-Matrix-User"] = user
|
|
50
57
|
};
|
|
58
|
+
if (!string.IsNullOrWhiteSpace(sessionId))
|
|
59
|
+
headers["Authorization"] = "Bearer " + sessionId;
|
|
51
60
|
httpTask.SetHeaders(headers);
|
|
52
61
|
|
|
53
62
|
httpTask.SetBody(new { user_id = matrixUserId });
|