From dedcad9f4574fead72bf7eb5d38e5a70974c09e5 Mon Sep 17 00:00:00 2001 From: "Luke Mao [SSW]" Date: Mon, 6 Nov 2023 15:58:09 +1000 Subject: [PATCH] Revert "Fix "who is on client work in china"" --- .../src/SSW.SophieBot/SSWSophieBot.dialog | 83 +++ ...GetAvailableExpertsByLocationDialog.dialog | 221 ++++++ ...lableExpertsByLocationDialog.dialog.schema | 58 ++ ...AvailableExpertsByLocationDialog.en-us.qna | 0 ...tAvailableExpertsByLocationDialog.en-us.lg | 167 +++++ ...tAvailableExpertsByLocationDialog.en-us.lu | 0 ...bleExpertsByLocationDialog.en-us.lu.dialog | 8 + ...AvailableExpertsByLocationDialog.lu.dialog | 5 + ...lableExpertsByLocationDialog.lu.qna.dialog | 4 + .../GetExpertsByLocationDialog.dialog | 272 ++++++++ .../GetExpertsByLocationDialog.dialog.schema | 103 +++ .../GetExpertsByLocationDialog.en-us.qna | 0 .../en-us/GetExpertsByLocationDialog.en-us.lg | 69 ++ .../en-us/GetExpertsByLocationDialog.en-us.lu | 0 ...GetExpertsByLocationDialog.en-us.lu.dialog | 8 + .../GetExpertsByLocationDialog.lu.dialog | 5 + .../GetExpertsByLocationDialog.lu.qna.dialog | 4 + .../GetPeopleOnClientWorkDialog.dialog | 642 +++++++++--------- .../en-us/SSWSophieBot.en-us.lg | 7 + 19 files changed, 1335 insertions(+), 321 deletions(-) create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog.schema create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/knowledge-base/en-us/GetAvailableExpertsByLocationDialog.en-us.qna create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-generation/en-us/GetAvailableExpertsByLocationDialog.en-us.lg create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-understanding/en-us/GetAvailableExpertsByLocationDialog.en-us.lu create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.en-us.lu.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.qna.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog.schema create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/knowledge-base/en-us/GetExpertsByLocationDialog.en-us.qna create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-generation/en-us/GetExpertsByLocationDialog.en-us.lg create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-understanding/en-us/GetExpertsByLocationDialog.en-us.lu create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.en-us.lu.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.dialog create mode 100644 bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.qna.dialog diff --git a/bots/employee-finder/src/SSW.SophieBot/SSWSophieBot.dialog b/bots/employee-finder/src/SSW.SophieBot/SSWSophieBot.dialog index 0d837d2b..33123f7d 100644 --- a/bots/employee-finder/src/SSW.SophieBot/SSWSophieBot.dialog +++ b/bots/employee-finder/src/SSW.SophieBot/SSWSophieBot.dialog @@ -469,6 +469,89 @@ } ] }, + { + "$kind": "Microsoft.OnIntent", + "$designer": { + "id": "mBzfYS", + "name": "OnIntent (GetExpertsByLocation)" + }, + "intent": "GetExpertsByLocation", + "entities": [], + "actions": [ + { + "$kind": "Microsoft.TraceActivity", + "$designer": { + "id": "6Yd16Q" + }, + "name": "SSWSophieBot.OnIntent_GetExpertsByLocation", + "value": "=null" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "ATIN53" + }, + "condition": "=exists(@redirect) && length(@redirect.actionType) > 0", + "actions": [ + { + "$kind": "Microsoft.TelemetryTrackEventAction", + "$designer": { + "id": "pdzSoX" + }, + "eventName": "IntentRedirect", + "properties": { + "SourceIntent": "=@redirect.sourceIntent", + "TargetIntent": "GetExpertsByLocation", + "Action": "=@redirect.action", + "ActionType": "=@redirect.actionType" + } + } + ] + }, + { + "$kind": "Microsoft.EmitEvent", + "$designer": { + "id": "DHZDW5" + }, + "eventName": "SetOptions" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "5ewWN6" + }, + "condition": "=contains($options.implemented, \"GetExpertsByLocation\")", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "eQ0O3I" + }, + "activity": "${SendActivity_eQ0O3I()}" + } + ], + "actions": [ + { + "$kind": "Microsoft.BeginDialog", + "$designer": { + "id": "eOKgOm" + }, + "activityProcessed": true, + "dialog": "GetExpertsByLocationDialog", + "options": { + "skillEntity": "=$options.skill", + "locationEntity": "=coalesce($options.location, 'all')", + "byBillable": "=@byBillable", + "isCurrentLocation": "=@isCurrentLocation", + "experienceLevel": "=coalesce(@experienceLevel, 'Advanced, Intermediate')", + "title": "=@title", + "clientNowSubtitle": "=@clientNowSubTitle" + } + } + ] + } + ] + }, { "$kind": "Microsoft.OnIntent", "$designer": { diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog new file mode 100644 index 00000000..2c2550ff --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog @@ -0,0 +1,221 @@ +{ + "$kind": "Microsoft.AdaptiveDialog", + "$designer": { + "id": "DLIumR", + "name": "GetAvailableExpertsByLocationDialog", + "comment": "To be removed as this is not used anywhere" + }, + "autoEndDialog": true, + "defaultResultProperty": "dialog.result", + "triggers": [ + { + "$kind": "Microsoft.OnBeginDialog", + "$designer": { + "name": "BeginDialog", + "description": "", + "id": "whgYu3" + }, + "actions": [ + { + "$kind": "Microsoft.TraceActivity", + "$designer": { + "id": "TqUAsT" + }, + "name": "SSWSophieBot.GetAvailableExpertsByLocation.BeginDialog", + "value": "=null" + }, + { + "$kind": "GetProfileAction", + "$designer": { + "id": "Ny2ohz" + }, + "queryString": [ + { + "key": "booked", + "value": false + }, + { + "key": "fromDate", + "value": "=dialog.dateEntity.value" + }, + { + "key": "location", + "value": "=dialog.locationEntity" + }, + { + "key": "skills", + "value": "=dialog.skillEntity" + } + ], + "statusCodeProperty": "turn.statusCode", + "reasonPhraseProperty": "turn.reasonPhrase", + "employeesProperty": "turn.employees", + "skill": {} + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "7yX8TD" + }, + "condition": "=turn.statusCode == 200", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "0L7CNj" + }, + "activity": "${SendActivity_0L7CNj()}" + } + ], + "actions": [ + { + "$kind": "GetProfileAction", + "$designer": { + "id": "wTBXbs" + }, + "queryString": [ + { + "key": "booked", + "value": "true" + }, + { + "key": "fromDate", + "value": "=dialog.dateEntity.value" + }, + { + "value": "=dialog.locationEntity", + "key": "location" + }, + { + "value": "=dialog.skillEntity", + "key": "skills" + } + ], + "statusCodeProperty": "turn.statusCode", + "reasonPhraseProperty": "turn.reasonPhrase", + "employeesProperty": "turn.internalbookedEmployees" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "zUXzc0" + }, + "condition": "=turn.statusCode == 200", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "C1DsiX" + }, + "activity": "${SendActivity_C1DsiX()}" + } + ], + "actions": [ + { + "$kind": "TimeFormatAction", + "$designer": { + "id": "7KxZvy" + }, + "datetime": "=dialog.dateEntity.value", + "format": "dddd d MMMM", + "resultProperty": "turn.formatDate" + }, + { + "$kind": "GetInternalBookedEmployeesAction", + "$designer": { + "id": "7zJtZc" + }, + "employees": "=turn.internalbookedEmployees", + "result": "turn.internalbookedEmployees", + "date": "=dialog.dateEntity.value" + }, + { + "$kind": "Microsoft.SetProperty", + "$designer": { + "id": "zPkbul" + }, + "property": "turn.employees", + "value": "=union(turn.internalbookedEmployees, turn.employees) " + }, + { + "$kind": "Microsoft.SetProperty", + "$designer": { + "id": "wIXxRd" + }, + "value": "=select(turn.employees, e, e.firstName)", + "property": "turn.firstNames" + }, + { + "$kind": "StringJoinAction", + "$designer": { + "id": "ie4Rpw" + }, + "stringList": "=select(turn.firstNames, n, concat(\"**\", n, \"**\"))", + "delimiter": ", ", + "lastDelimiter": " and ", + "resultProperty": "dialog.firstNames", + "wrapCount": 4 + }, + { + "$kind": "GetFreeEmployeesAction", + "$designer": { + "id": "x6JX6d" + }, + "employees": "=turn.employees", + "result": "turn.employees", + "date": "=dialog.dateEntity.value" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "rEdHJ2" + }, + "condition": "=count(turn.employees) > 0", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "iSmCig" + }, + "activity": "${SendActivity_sftkhO()}" + } + ], + "actions": [ + { + "$kind": "Microsoft.ForeachPage", + "$designer": { + "id": "OZCZuQ" + }, + "pageIndex": "dialog.foreach.pageindex", + "page": "dialog.foreach.page", + "pageSize": 15, + "itemsProperty": "turn.employees", + "actions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "6uyLeH" + }, + "activity": "${SendActivity_6uyLeH()}" + } + ] + } + ] + } + ] + } + ] + }, + { + "$kind": "Microsoft.EndDialog", + "$designer": { + "id": "7g17jJ" + } + } + ] + } + ], + "generator": "GetAvailableExpertsByLocationDialog.lg", + "recognizer": "GetAvailableExpertsByLocationDialog.lu.qna", + "id": "GetAvailableExpertsByLocationDialog" +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog.schema b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog.schema new file mode 100644 index 00000000..70f4f896 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/GetAvailableExpertsByLocationDialog.dialog.schema @@ -0,0 +1,58 @@ +{ + "$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema", + "$role": "implements(Microsoft.IDialog)", + "title": "GetAvailableExpertsByLocationDialog", + "type": "object", + "properties": { + "skillEntity": { + "title": "Skill Entity", + "$ref": "#/definitions/stringExpression" + }, + "locationEntity": { + "$ref": "#/definitions/stringExpression", + "title": "Location Entity" + }, + "dateEntity": { + "$ref": "#/definitions/stringExpression", + "title": "Date Entity" + } + }, + "$result": { + "type": "object", + "properties": {} + }, + "definitions": { + "equalsExpression": { + "$role": "expression", + "type": "string", + "title": "Equals Expression", + "description": "Expression starting with =.", + "pattern": "^=.*\\S.*", + "examples": [ + "=user.name" + ] + }, + "stringExpression": { + "$role": "expression", + "title": "String or expression", + "description": "Interpolated string or expression to evaluate.", + "oneOf": [ + { + "type": "string", + "title": "String", + "description": "Interpolated string", + "pattern": "^(?!(=)).*", + "examples": [ + "Hello ${user.name}" + ] + }, + { + "$ref": "#/definitions/equalsExpression", + "examples": [ + "=concat('x','y','z')" + ] + } + ] + } + } +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/knowledge-base/en-us/GetAvailableExpertsByLocationDialog.en-us.qna b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/knowledge-base/en-us/GetAvailableExpertsByLocationDialog.en-us.qna new file mode 100644 index 00000000..e69de29b diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-generation/en-us/GetAvailableExpertsByLocationDialog.en-us.lg b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-generation/en-us/GetAvailableExpertsByLocationDialog.en-us.lg new file mode 100644 index 00000000..d00b2bc1 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-generation/en-us/GetAvailableExpertsByLocationDialog.en-us.lg @@ -0,0 +1,167 @@ +[common](common.en-us.lg) +[Icons](icons.en-us.lg) + +# SendActivity_0L7CNj() +[Activity + Text = ${SendActivity_0L7CNj_text()} +] + +# SendActivity_0L7CNj_text() +- ${ErrorMessage()} +# SendActivity_sftkhO() +[Activity + Text = ${SendActivity_sftkhO_text()} +] + +# SendActivity_sftkhO_text() +- Sorry, I couldn't find anyone available with **${dialog.skillEntity}** skill in **${dialog.locationEntity}** on **${turn.formatDate}**. Please try again. +# SendActivity_6uyLeH() +[Activity + Attachments = ${json(EmployeesListCard(turn.formatDate, dialog.skillEntity, dialog.locationEntity, dialog.foreach.page))} +] + +# EmployeesListCard(date, skill, location, employees) +- ``` +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.2", + "body": [ + ${join(where(createArray(Title(date, skill, location), EmployeesList(employees), Footer()), item => item != ''), ',')} + ] +} +``` + +# Title(date, skill, location) +- IF: ${ dialog.foreach.pageindex == 1 } + - ``` + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "text": "${TitleText(location, skill, count(turn.employees))}", + "wrap": true, + "size": "Large" + }, + { + "type": "TextBlock", + "text": "Available: ${date}", + "wrap": true, + "isSubtle": true + } + ], + "width": "stretch" + } + ] + } + ``` +- ELSE: + - + +# TitleText(location, skill, count) +-IF: ${ exists(location) } + - ${location} - ${skill} [${count(turn.employees)}] +- ELSE: + - ${skill} [${count(turn.employees)}] + +# Footer() +- IF: ${ dialog.foreach.pageindex == ceiling(div(count(turn.employees), float('15.0'))) } + - ${MoreBookingInfoButton()} +- ELSE: + - + +# EmployeesList(employees) +- ``` +{ + "type": "ColumnSet", + "columns": [ + ${HeaderColumns()} + ], + "style": "default" +}, +{ + "type": "Container", + "items": [${join(select(employees, employee => EmployeeRow(employee)), ',')}] +} +``` + +# HeaderColumns() +-``` +{ + "type": "Column", + "width": "50px", + "items": [] +}, +{ + "type": "Column", + "width": "100px", + "items": [] +}, +{ + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "Availability for next 4 weeks", + "wrap": true, + "weight": "Bolder", + "horizontalAlignment": "Center" + } + ], + "verticalContentAlignment": "Center" +} +``` + +# EmployeeRow(employee) +- ``` +{ + "type": "ColumnSet", + "columns": [ + ${BodyColumns(employee)} + ], + "height": "stretch", + "separator": false +} +``` + +# FreeDays(client, freeDays) +-``` +${freeDays}/20 days +``` + +# BodyColumns(employee) +- ${join(createArray( + Avatar(employee.avatarUrl, employee.firstName, employee.lastName, '50px', '35px'), + ClickableName(employee.displayName, employee.firstName, employee.lastName, '100px', ContentTextSize(), 'Default', 'GetAvailableExpertsByLocation'), + BodyColumn(FreeDays(employee.nextClient, employee.freeDays))), ',')} + +# BodyColumn(text) +-``` +{ + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "${text}", + "wrap": true, + "size": "Medium", + "horizontalAlignment": "Center" + } + ], + "verticalContentAlignment": "Center" +} +``` + +# SendActivity_C1DsiX() +[Activity + Text = ${SendActivity_C1DsiX_text()} +] + +# SendActivity_C1DsiX_text() +- ${ErrorMessage()} \ No newline at end of file diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-understanding/en-us/GetAvailableExpertsByLocationDialog.en-us.lu b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/language-understanding/en-us/GetAvailableExpertsByLocationDialog.en-us.lu new file mode 100644 index 00000000..e69de29b diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.en-us.lu.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.en-us.lu.dialog new file mode 100644 index 00000000..501d9038 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.en-us.lu.dialog @@ -0,0 +1,8 @@ +{ + "$kind": "Microsoft.LuisRecognizer", + "id": "LUIS_GetAvailableExpertsByLocationDialog", + "applicationId": "=settings.luis.GetAvailableExpertsByLocationDialog_en_us_lu.appId", + "version": "=settings.luis.GetAvailableExpertsByLocationDialog_en_us_lu.version", + "endpoint": "=settings.luis.endpoint", + "endpointKey": "=settings.luis.endpointKey" +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.dialog new file mode 100644 index 00000000..c7e83ae0 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.dialog @@ -0,0 +1,5 @@ +{ + "$kind": "Microsoft.MultiLanguageRecognizer", + "id": "LUIS_GetAvailableExpertsByLocationDialog", + "recognizers": {} +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.qna.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.qna.dialog new file mode 100644 index 00000000..80b77f0d --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetAvailableExpertsByLocationDialog/recognizers/GetAvailableExpertsByLocationDialog.lu.qna.dialog @@ -0,0 +1,4 @@ +{ + "$kind": "Microsoft.CrossTrainedRecognizerSet", + "recognizers": [] +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog new file mode 100644 index 00000000..96d83084 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog @@ -0,0 +1,272 @@ +{ + "$kind": "Microsoft.AdaptiveDialog", + "$designer": { + "id": "PRCvf9", + "name": "GetExpertsByLocationDialog", + "comment": "" + }, + "autoEndDialog": true, + "defaultResultProperty": "dialog.result", + "triggers": [ + { + "$kind": "Microsoft.OnBeginDialog", + "$designer": { + "name": "BeginDialog", + "description": "", + "id": "aAox74" + }, + "actions": [ + { + "$kind": "Microsoft.TraceActivity", + "$designer": { + "id": "WBXxN0" + }, + "name": "SSWSophieBot.GetExpertsByLocation.BeginDialog", + "value": "=null" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "CIhSxz" + }, + "condition": "=exists(dialog.locationEntity)", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "HNg6Pg" + }, + "activity": "${SendActivity_HNg6Pg()}" + }, + { + "$kind": "Microsoft.EndDialog", + "$designer": { + "id": "pNQUWD" + } + } + ], + "actions": [] + }, + { + "$kind": "GetProfileAction", + "$designer": { + "id": "J1SiVn" + }, + "queryString": [ + { + "value": "=if(toLower(dialog.locationEntity) == 'all', '', dialog.locationEntity)", + "key": "=if(exists(dialog.isCurrentLocation) && dialog.isCurrentLocation == true, \"currentLocation\", \"location\")" + }, + { + "key": "skills", + "value": "=dialog.skillEntity" + }, + { + "key": "inoffice", + "value": "=if(exists(dialog.isCurrentLocation), dialog.isCurrentLocation, '')" + } + ], + "statusCodeProperty": "turn.statusCode", + "reasonPhraseProperty": "turn.reasonPhrase", + "employeesProperty": "turn.employees", + "skill": {} + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "JtN8iE" + }, + "condition": "=turn.statusCode == 200", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "emJef2" + }, + "activity": "${SendActivity_emJef2()}" + } + ], + "actions": [ + { + "$kind": "Microsoft.Foreach", + "$designer": { + "id": "uZUI1J" + }, + "index": "dialog.foreach.index", + "value": "dialog.foreach.value", + "itemsProperty": "turn.employees", + "actions": [ + { + "$kind": "Microsoft.SetProperty", + "$designer": { + "id": "sSkr26" + }, + "property": "turn.employees[dialog.foreach.index].skillLevel", + "value": "=where(dialog.foreach.value.skills, x => toLower(x.technology) == toLower(dialog.skillEntity))[0].experienceLevel" + } + ] + }, + { + "$kind": "Microsoft.SetProperty", + "$designer": { + "id": "s1P4OK" + }, + "property": "turn.sortedEmployees", + "value": "=sortBy(turn.employees, 'skillLevel')" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "9lOauV" + }, + "condition": "=exists(turn.sortedEmployees) && count(turn.sortedEmployees) > 0", + "elseActions": [ + { + "$kind": "GetProfileAction", + "$designer": { + "id": "5whOGQ" + }, + "queryString": [ + { + "key": "skills", + "value": "=dialog.skillEntity" + } + ], + "statusCodeProperty": "turn.statusCode", + "reasonPhraseProperty": "turn.reasonPhrase", + "employeesProperty": "turn.employees" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "gX9T29" + }, + "condition": "=exists(turn.employees) && count(turn.employees) > 0", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "WQzWA6" + }, + "activity": "${SendActivity_WQzWA6()}" + } + ], + "actions": [ + { + "$kind": "Microsoft.SetProperty", + "$designer": { + "id": "O3E1as" + }, + "value": "=unique(select(turn.employees, employee => employee.defaultSite.name))", + "property": "turn.locations" + }, + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "5B8HeB" + }, + "activity": "${SendActivity_5B8HeB()}" + } + ] + } + ], + "actions": [ + { + "$kind": "GetEmployeesByBillableAction", + "$designer": { + "id": "3c1YMv" + }, + "employees": "=turn.sortedEmployees", + "workingEmployeesProperty": "turn.billableEmployees" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "4Ays01" + }, + "condition": "=exists(dialog.byBillable) && dialog.byBillable == true", + "elseActions": [ + { + "$kind": "Microsoft.ForeachPage", + "$designer": { + "id": "P938cg" + }, + "pageIndex": "dialog.foreach.pageindex", + "page": "dialog.foreach.page", + "pageSize": 10, + "itemsProperty": "turn.sortedEmployees", + "actions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "LcKuck" + }, + "activity": "${SendActivity_LcKuck()}" + } + ] + } + ], + "actions": [ + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "HLW9Wq" + }, + "condition": "=dialog.clientNowSubtitle", + "actions": [ + { + "$kind": "ClientNowAction", + "$designer": { + "id": "m3Sb5b" + }, + "format": "ddd d MMM", + "resultProperty": "turn.clientNow" + } + ] + }, + { + "$kind": "Microsoft.SetProperty", + "$designer": { + "id": "JkGEqi" + }, + "property": "dialog.billableTitle", + "value": "=coalesce(dialog.title, titleCase(dialog.locationEntity))" + }, + { + "$kind": "Microsoft.ForeachPage", + "$designer": { + "id": "haPEIU" + }, + "pageIndex": "dialog.foreach.pageindex", + "page": "dialog.foreach.page", + "pageSize": 10, + "itemsProperty": "turn.billableEmployees.employees", + "actions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "WXSOyK" + }, + "activity": "${SendActivity_WXSOyK()}" + } + ] + } + ] + } + ] + } + ] + }, + { + "$kind": "Microsoft.EndDialog", + "$designer": { + "id": "IclLWP" + } + } + ] + } + ], + "generator": "GetExpertsByLocationDialog.lg", + "recognizer": "GetExpertsByLocationDialog.lu.qna", + "id": "GetExpertsByLocationDialog" +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog.schema b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog.schema new file mode 100644 index 00000000..648e1007 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/GetExpertsByLocationDialog.dialog.schema @@ -0,0 +1,103 @@ +{ + "$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema", + "$role": "implements(Microsoft.IDialog)", + "title": "GetExpertsByLocation", + "type": "object", + "properties": { + "skillEntity": { + "description": "The advanced skill of the experts", + "title": "Skill Entity", + "$ref": "#/definitions/stringExpression" + }, + "locationEntity": { + "description": "The current location of the experts", + "$ref": "#/definitions/stringExpression", + "title": "Location Entity" + }, + "byBillable": { + "description": "If set true, the response will be a billable list card", + "$ref": "#/definitions/booleanExpression", + "title": "By Billable" + }, + "isCurrentLocation": { + "description": "If set to true, look for experts in the specified current location", + "$ref": "#/definitions/booleanExpression", + "title": "Is Current Location" + }, + "experienceLevel": { + "description": "Used for filtering employees with specified experience level on a particular skill", + "$ref": "https://schemas.botframework.com/schemas/component/v1.0/component.schema#/definitions/stringExpression", + "title": "Experience Level" + }, + "title": { + "description": "Title for the list card", + "$ref": "https://schemas.botframework.com/schemas/component/v1.0/component.schema#/definitions/stringExpression", + "title": "Title" + }, + "clientNowSubtitle": { + "description": "When set to true, display local current time in the subtitle", + "$ref": "https://schemas.botframework.com/schemas/component/v1.0/component.schema#/definitions/booleanExpression", + "title": "Client Now Subtitle" + } + }, + "$result": { + "type": "object", + "properties": {} + }, + "definitions": { + "equalsExpression": { + "$role": "expression", + "type": "string", + "title": "Equals Expression", + "description": "Expression starting with =.", + "pattern": "^=.*\\S.*", + "examples": [ + "=user.name" + ] + }, + "stringExpression": { + "$role": "expression", + "title": "String or expression", + "description": "Interpolated string or expression to evaluate.", + "oneOf": [ + { + "type": "string", + "title": "String", + "description": "Interpolated string", + "pattern": "^(?!(=)).*", + "examples": [ + "Hello ${user.name}" + ] + }, + { + "$ref": "#/definitions/equalsExpression", + "examples": [ + "=concat('x','y','z')" + ] + } + ] + }, + "booleanExpression": { + "$role": "expression", + "title": "Boolean or expression", + "description": "Boolean constant or expression to evaluate.", + "oneOf": [ + { + "type": "boolean", + "title": "Boolean", + "description": "Boolean constant.", + "default": false, + "examples": [ + false + ] + }, + { + "$ref": "#/definitions/equalsExpression", + "examples": [ + "=user.isVip" + ] + } + ] + } + } +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/knowledge-base/en-us/GetExpertsByLocationDialog.en-us.qna b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/knowledge-base/en-us/GetExpertsByLocationDialog.en-us.qna new file mode 100644 index 00000000..e69de29b diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-generation/en-us/GetExpertsByLocationDialog.en-us.lg b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-generation/en-us/GetExpertsByLocationDialog.en-us.lg new file mode 100644 index 00000000..9119b8aa --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-generation/en-us/GetExpertsByLocationDialog.en-us.lg @@ -0,0 +1,69 @@ +[Common](common.en-us.lg) +[PeopleList](peopleList.en-us.lg) + +# SendActivity_emJef2() +[Activity + Text = ${SendActivity_emJef2_text()} +] + +# SendActivity_emJef2_text() +- ${ErrorMessage()} +# SendActivity_LcKuck() +[Activity + Attachments = ${json(PeopleListBySkill(dialog.locationEntity, dialog.foreach.page, count(turn.sortedEmployees)))} +] + +# SendActivity_WXSOyK() +[Activity + Attachments = ${json(PeopleListByBilled( + if(dialog.foreach.pageindex == 1, dialog.billableTitle, GetNextTitle(dialog.foreach.pageindex, 10)), + turn.clientNow, + if(dialog.foreach.pageindex == 1, true, false), + dialog.foreach.page, + dialog.foreach.pageindex * 10 >= count(turn.billableEmployees.employees), + '', + false, + 'GetExpertsByLocation'))} +] + +# SendActivity_HNg6Pg() +[Activity + Text = ${SendActivity_HNg6Pg_text()} +] + +# SendActivity_HNg6Pg_text() +- Sorry, I don't know the place you are talking about. + +# SendActivity_WQzWA6() +[Activity + Text = ${SendActivity_WQzWA6_text()} +] + +# SendActivity_WQzWA6_text() +- Sorry, I couldn't find anyone with **${dialog.skillEntity}** skill in **${dialog.locationEntity}** office. I will let you in on a secret. No one in the company has **${dialog.skillEntity}** skills! +# SendActivity_5B8HeB() +[Activity + Attachments = ${json(SendActivity_5B8HeB_attachment_0iePvL(turn.employees, dialog.skillEntity, turn.locations))} +] + +# SendActivity_5B8HeB_attachment_0iePvL(employees, skill, locations) +-``` +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.2", + "body": [ + { + "type": "TextBlock", + "text": "Sorry, I couldn't find anyone with **${skill}** skills in **${dialog.locationEntity}** office. However, I did find **${employees.count}** ${if(employees.count == 1, 'person', 'people')} in the rest of the company.", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Narrow your search...", + "wrap": true + }, + ${GetExpertsButtons(employees, skill, locations, 'GetExpertsByLocation', 'GetExpertsByLocation')} + ] +} +``` diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-understanding/en-us/GetExpertsByLocationDialog.en-us.lu b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/language-understanding/en-us/GetExpertsByLocationDialog.en-us.lu new file mode 100644 index 00000000..e69de29b diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.en-us.lu.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.en-us.lu.dialog new file mode 100644 index 00000000..23dac19e --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.en-us.lu.dialog @@ -0,0 +1,8 @@ +{ + "$kind": "Microsoft.LuisRecognizer", + "id": "LUIS_GetExpertsByLocation", + "applicationId": "=settings.luis.GetExpertsByLocation_en_us_lu.appId", + "version": "=settings.luis.GetExpertsByLocation_en_us_lu.version", + "endpoint": "=settings.luis.endpoint", + "endpointKey": "=settings.luis.endpointKey" +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.dialog new file mode 100644 index 00000000..260a05a8 --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.dialog @@ -0,0 +1,5 @@ +{ + "$kind": "Microsoft.MultiLanguageRecognizer", + "id": "LUIS_GetExpertsByLocationDialog", + "recognizers": {} +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.qna.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.qna.dialog new file mode 100644 index 00000000..80b77f0d --- /dev/null +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetExpertsByLocationDialog/recognizers/GetExpertsByLocationDialog.lu.qna.dialog @@ -0,0 +1,4 @@ +{ + "$kind": "Microsoft.CrossTrainedRecognizerSet", + "recognizers": [] +} diff --git a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetPeopleOnClientWorkDialog/GetPeopleOnClientWorkDialog.dialog b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetPeopleOnClientWorkDialog/GetPeopleOnClientWorkDialog.dialog index d0bd5d82..f50e4e50 100644 --- a/bots/employee-finder/src/SSW.SophieBot/dialogs/GetPeopleOnClientWorkDialog/GetPeopleOnClientWorkDialog.dialog +++ b/bots/employee-finder/src/SSW.SophieBot/dialogs/GetPeopleOnClientWorkDialog/GetPeopleOnClientWorkDialog.dialog @@ -1,323 +1,323 @@ { - "$kind": "Microsoft.AdaptiveDialog", - "$designer": { - "id": "bv7sZU", - "name": "GetPeopleOnClientWorkDialog", - "comment": "" - }, - "autoEndDialog": true, - "defaultResultProperty": "dialog.result", - "triggers": [ - { - "$kind": "Microsoft.OnBeginDialog", - "$designer": { - "name": "BeginDialog", - "description": "", - "id": "2WTH3E" - }, - "actions": [ - { - "$kind": "Microsoft.TraceActivity", - "$designer": { - "id": "4kaiSh" - }, - "name": "SSWSophieBot.GetPeopleOnClientWorkDialog.BeginDialog", - "value": "=null" - }, - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "cDHzU3" - }, - "condition": "=dialog.dateEntity != null && dialog.dateEntity.type != 'date'", - "actions": [ - { - "$kind": "Microsoft.SendActivity", - "$designer": { - "id": "T25WLi" - }, - "activity": "${SendActivity_T25WLi()}" - }, - { - "$kind": "Microsoft.EndDialog", - "$designer": { - "id": "9pofbV" - } - } - ] - }, - { - "$kind": "Microsoft.SetProperties", - "$designer": { - "id": "XBTmsk" - }, - "assignments": [ - { - "property": "dialog.booked", - "value": "=dialog.availableEntity == null || dialog.availableEntity == ''" - }, - { - "property": "dialog.onInternal", - "value": "=dialog.internalEntity != null && dialog.internalEntity != ''" - }, - { - "property": "dialog.fromDate", - "value": "=dialog.dateEntity.value" - }, - { - "value": "=if(dialog.locationEntity == 'All', '', dialog.locationEntity)", - "property": "dialog.location" - } - ] - }, - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "0pJH3f" - }, - "condition": "=indexOf(turn.recognized.text, 'today') != -1 && dialog.rawDateEntity.type == 'date'", - "actions": [ - { - "$kind": "ClientNowAction", - "$designer": { - "id": "8gzEsK" - }, - "format": "yyyy-MM-dd", - "resultProperty": "dialog.fromDate" - } - ] - }, - { - "$kind": "GetProfileAction", - "$designer": { - "id": "KaK4v1" - }, - "queryString": [ - { - "key": "booked", - "value": "=dialog.booked" - }, - { - "value": "=dialog.fromDate", - "key": "fromDate" - }, - { - "key": "site", - "value": "=dialog.location" - }, - { - "key": "skills", - "value": "=dialog.skillEntity" - } - ], - "statusCodeProperty": "turn.statusCode", - "reasonPhraseProperty": "turn.reasonPhrase", - "employeesProperty": "turn.employees", - "skill": {} - }, - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "g63YTy" - }, - "condition": "=turn.statusCode == 200", - "elseActions": [ - { - "$kind": "Microsoft.SendActivity", - "$designer": { - "id": "jZGZUb" - }, - "activity": "${SendActivity_jZGZUb()}" - } - ], - "actions": [ - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "NZz62n" - }, - "condition": "dialog.dateEntity != null && dialog.dateEntity.value != ''", - "actions": [ - { - "$kind": "TimeFormatAction", - "$designer": { - "id": "D6HuU2" - }, - "datetime": "=dialog.dateEntity.value", - "format": "ddd d MMM", - "resultProperty": "turn.formatDate" - } - ], - "elseActions": [ - { - "$kind": "ClientNowAction", - "$designer": { - "id": "1fqjqj" - }, - "resultProperty": "turn.formatDate", - "format": "ddd d MMM" - } - ] - }, - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "Cbn7dl" - }, - "condition": "=dialog.booked == True", - "actions": [ - { - "$kind": "GetEmployeesByDateAction", - "$designer": { - "id": "acD2tF" - }, - "employees": "=turn.employees", - "date": "=dialog.fromDate", - "result": "turn.employees" - } - ], - "elseActions": [ - { - "$kind": "GetProfileAction", - "$designer": { - "id": "BVVSfA" - }, - "queryString": [ - { - "key": "booked", - "value": true - }, - { - "value": "=dialog.fromDate", - "key": "fromDate" - }, - { - "value": "=dialog.location", - "key": "site" - } - ], - "statusCodeProperty": "turn.statusCode", - "reasonPhraseProperty": "turn.reasonPhrase", - "employeesProperty": "turn.bookedEmployees" - }, - { - "$kind": "GetInternalBookedEmployeesAction", - "$designer": { - "id": "9MVjzM" - }, - "employees": "=turn.bookedEmployees", - "date": "=dialog.fromDate", - "result": "turn.internalbookedEmployees" - }, - { - "$kind": "GetFreeEmployeesAction", - "$designer": { - "id": "GEdTT3" - }, - "employees": "=union(turn.internalbookedEmployees, turn.employees) ", - "date": "=dialog.fromDate", - "result": "turn.employees" - } - ] - }, - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "HXqDZn" - }, - "condition": "=count(turn.employees) == 0", - "actions": [ - { - "$kind": "Microsoft.SendActivity", - "$designer": { - "id": "x5sCo7" - }, - "activity": "${SendActivity_x5sCo7()}" - }, - { - "$kind": "Microsoft.EndDialog", - "$designer": { - "id": "6wKbpa" - } - } - ] - }, - { - "$kind": "Microsoft.IfCondition", - "$designer": { - "id": "vjhrqb" - }, - "condition": "dialog.locationEntity != null", - "actions": [ - { - "$kind": "Microsoft.ForeachPage", - "$designer": { - "id": "WcUcKx" - }, - "pageIndex": "dialog.foreach.pageindex", - "page": "dialog.foreach.page", - "pageSize": 10, - "itemsProperty": "turn.employees", - "actions": [ - { - "$kind": "Microsoft.SendActivity", - "$designer": { - "id": "CDte9G" - }, - "activity": "${SendActivity_CDte9G()}" - } - ] - } - ], - "elseActions": [ - { - "$kind": "Microsoft.SetProperties", - "$designer": { - "id": "YHESg1" - }, - "assignments": [ - { - "property": "turn.firstNames", - "value": "=select(turn.employees, e, e.firstName)" - }, - { - "property": "turn.locations", - "value": "=unique( select(turn.employees, employee => employee.defaultSite.name))" - } - ] - }, - { - "$kind": "StringJoinAction", - "$designer": { - "id": "nNPmm3" - }, - "resultProperty": "turn.firstNames", - "stringList": "=select(turn.firstNames, n, concat(\"**\", n, \"**\"))", - "delimiter": ", ", - "wrapCount": 4, - "lastDelimiter": " and " - }, - { - "$kind": "Microsoft.SendActivity", - "$designer": { - "id": "7cnUNi" - }, - "activity": "${SendActivity_7cnUNi()}" - } - ] - } - ] - }, - { - "$kind": "Microsoft.EndDialog", - "$designer": { - "id": "9qNmAW" - } - } - ] - } - ], - "generator": "GetPeopleOnClientWorkDialog.lg", - "recognizer": "GetPeopleOnClientWorkDialog.lu.qna", - "id": "GetPeopleOnClientWorkDialog" + "$kind": "Microsoft.AdaptiveDialog", + "$designer": { + "id": "bv7sZU", + "name": "GetPeopleOnClientWorkDialog", + "comment": "" + }, + "autoEndDialog": true, + "defaultResultProperty": "dialog.result", + "triggers": [ + { + "$kind": "Microsoft.OnBeginDialog", + "$designer": { + "name": "BeginDialog", + "description": "", + "id": "2WTH3E" + }, + "actions": [ + { + "$kind": "Microsoft.TraceActivity", + "$designer": { + "id": "4kaiSh" + }, + "name": "SSWSophieBot.GetPeopleOnClientWorkDialog.BeginDialog", + "value": "=null" + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "cDHzU3" + }, + "condition": "=dialog.dateEntity != null && dialog.dateEntity.type != 'date'", + "actions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "T25WLi" + }, + "activity": "${SendActivity_T25WLi()}" + }, + { + "$kind": "Microsoft.EndDialog", + "$designer": { + "id": "9pofbV" + } + } + ] + }, + { + "$kind": "Microsoft.SetProperties", + "$designer": { + "id": "XBTmsk" + }, + "assignments": [ + { + "property": "dialog.booked", + "value": "=dialog.availableEntity == null || dialog.availableEntity == ''" + }, + { + "property": "dialog.onInternal", + "value": "=dialog.internalEntity != null && dialog.internalEntity != ''" + }, + { + "property": "dialog.fromDate", + "value": "=dialog.dateEntity.value" + }, + { + "value": "=if(dialog.locationEntity == 'All', '', dialog.locationEntity)", + "property": "dialog.location" + } + ] + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "0pJH3f" + }, + "condition": "=indexOf(turn.recognized.text, 'today') != -1 && dialog.rawDateEntity.type == 'date'", + "actions": [ + { + "$kind": "ClientNowAction", + "$designer": { + "id": "8gzEsK" + }, + "format": "yyyy-MM-dd", + "resultProperty": "dialog.fromDate" + } + ] + }, + { + "$kind": "GetProfileAction", + "$designer": { + "id": "KaK4v1" + }, + "queryString": [ + { + "key": "booked", + "value": "=dialog.booked" + }, + { + "value": "=dialog.fromDate", + "key": "fromDate" + }, + { + "key": "location", + "value": "=dialog.location" + }, + { + "key": "skills", + "value": "=dialog.skillEntity" + } + ], + "statusCodeProperty": "turn.statusCode", + "reasonPhraseProperty": "turn.reasonPhrase", + "employeesProperty": "turn.employees", + "skill": {} + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "g63YTy" + }, + "condition": "=turn.statusCode == 200", + "elseActions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "jZGZUb" + }, + "activity": "${SendActivity_jZGZUb()}" + } + ], + "actions": [ + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "NZz62n" + }, + "condition": "dialog.dateEntity != null && dialog.dateEntity.value != ''", + "actions": [ + { + "$kind": "TimeFormatAction", + "$designer": { + "id": "D6HuU2" + }, + "datetime": "=dialog.dateEntity.value", + "format": "ddd d MMM", + "resultProperty": "turn.formatDate" + } + ], + "elseActions": [ + { + "$kind": "ClientNowAction", + "$designer": { + "id": "1fqjqj" + }, + "resultProperty": "turn.formatDate", + "format": "ddd d MMM" + } + ] + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "Cbn7dl" + }, + "condition": "=dialog.booked == True", + "actions": [ + { + "$kind": "GetEmployeesByDateAction", + "$designer": { + "id": "acD2tF" + }, + "employees": "=turn.employees", + "date": "=dialog.fromDate", + "result": "turn.employees" + } + ], + "elseActions": [ + { + "$kind": "GetProfileAction", + "$designer": { + "id": "BVVSfA" + }, + "queryString": [ + { + "key": "booked", + "value": true + }, + { + "value": "=dialog.fromDate", + "key": "fromDate" + }, + { + "value": "=dialog.location", + "key": "location" + } + ], + "statusCodeProperty": "turn.statusCode", + "reasonPhraseProperty": "turn.reasonPhrase", + "employeesProperty": "turn.bookedEmployees" + }, + { + "$kind": "GetInternalBookedEmployeesAction", + "$designer": { + "id": "9MVjzM" + }, + "employees": "=turn.bookedEmployees", + "date": "=dialog.fromDate", + "result": "turn.internalbookedEmployees" + }, + { + "$kind": "GetFreeEmployeesAction", + "$designer": { + "id": "GEdTT3" + }, + "employees": "=union(turn.internalbookedEmployees, turn.employees) ", + "date": "=dialog.fromDate", + "result": "turn.employees" + } + ] + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "HXqDZn" + }, + "condition": "=count(turn.employees) == 0", + "actions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "x5sCo7" + }, + "activity": "${SendActivity_x5sCo7()}" + }, + { + "$kind": "Microsoft.EndDialog", + "$designer": { + "id": "6wKbpa" + } + } + ] + }, + { + "$kind": "Microsoft.IfCondition", + "$designer": { + "id": "vjhrqb" + }, + "condition": "dialog.locationEntity != null", + "actions": [ + { + "$kind": "Microsoft.ForeachPage", + "$designer": { + "id": "WcUcKx" + }, + "pageIndex": "dialog.foreach.pageindex", + "page": "dialog.foreach.page", + "pageSize": 10, + "itemsProperty": "turn.employees", + "actions": [ + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "CDte9G" + }, + "activity": "${SendActivity_CDte9G()}" + } + ] + } + ], + "elseActions": [ + { + "$kind": "Microsoft.SetProperties", + "$designer": { + "id": "YHESg1" + }, + "assignments": [ + { + "property": "turn.firstNames", + "value": "=select(turn.employees, e, e.firstName)" + }, + { + "property": "turn.locations", + "value": "=unique( select(turn.employees, employee => employee.defaultSite.name))" + } + ] + }, + { + "$kind": "StringJoinAction", + "$designer": { + "id": "nNPmm3" + }, + "resultProperty": "turn.firstNames", + "stringList": "=select(turn.firstNames, n, concat(\"**\", n, \"**\"))", + "delimiter": ", ", + "wrapCount": 4, + "lastDelimiter": " and " + }, + { + "$kind": "Microsoft.SendActivity", + "$designer": { + "id": "7cnUNi" + }, + "activity": "${SendActivity_7cnUNi()}" + } + ] + } + ] + }, + { + "$kind": "Microsoft.EndDialog", + "$designer": { + "id": "9qNmAW" + } + } + ] + } + ], + "generator": "GetPeopleOnClientWorkDialog.lg", + "recognizer": "GetPeopleOnClientWorkDialog.lu.qna", + "id": "GetPeopleOnClientWorkDialog" } diff --git a/bots/employee-finder/src/SSW.SophieBot/language-generation/en-us/SSWSophieBot.en-us.lg b/bots/employee-finder/src/SSW.SophieBot/language-generation/en-us/SSWSophieBot.en-us.lg index a5dbeedc..5c5e08b5 100644 --- a/bots/employee-finder/src/SSW.SophieBot/language-generation/en-us/SSWSophieBot.en-us.lg +++ b/bots/employee-finder/src/SSW.SophieBot/language-generation/en-us/SSWSophieBot.en-us.lg @@ -68,6 +68,13 @@ # SendActivity_JcLjcy_text() - Thanks for using SophieBot. Please give us feedback at +# SendActivity_eQ0O3I() +[Activity + Text = ${SendActivity_eQ0O3I_text()} +] + +# SendActivity_eQ0O3I_text() +- Getting experts from location is still a work in progress. # SendActivity_lPfvXI() [Activity Text = ${SendActivity_lPfvXI_text()}