Botframework - NodeJS - Adaptive Card - Input.Time - node.js

I have a azure botframework chatbot running in MS Teams. I got a scenario to show adpative card to user and ask for Date, Start Time and End Time. I'm using Input.Date and Input.Time pickers.
Issue is, in sql server we have UTC timezone. But in adaptive card, users might choose time based on their timezone. Is there any way I could convert this selected time to UTC timezone ?
I mean, if they choose Start Time as 8AM and End Time as 10AM (IST), I should get 2.30 AM - 4.30AM (UTC).
Below is the context.activity object
{"text":"book ticket","textFormat":"plain","type":"message","timestamp":"2022-05-17T07:20:18.165Z","localTimestamp":"2022-05-17T07:20:18.165Z","dfFBCQ","name":"User A","aadObjectId":"6f0b02-7e1d-4876-9278-0991e8fa763b"},"conversation":{"conversationType":"personal","tenantId":"aee6-xxx-xxx739ff24f","name":"teams-bot"},"entities":[{"locale":"en-US","country":"US","platform":"Web","timezone":"Asia/Calcutta","type":"clientInfo"}],"channelData":8.1659492+05:30","callerId":"urn:botframework:azure"}
Please let me know if any informations required.

Related

Send Reminder to User and inform him about his plan expiry Django

Hi I want to create a payment plan expiry reminder using django
Current Solution
Create a management command
Run the management command as a cron job
Problems with the Current sollution
in windows cron job doesn't work
it will run at particular time for all the users
I don't want to run cron for every minute
But i want to notify the user when 50%,30%,20%,10% and 5% time is remaining.
What I'm looking for
I'm trying to do something that can be done using the expiry_date ('available in the membership model of user and plan ')
using which we can just look at the membership which are expiring and notify them only.
final and most important i don't want to run a cron job every minute , but want to achieve a functionality which lets the user even remind that you have just 10mins remaining ,5 mins remaining kind of notifications.
as the process is for learning I'm not looking for any paid API's

Why is the timezone of Connect/webhook dates not UTC?

When processing webhook posts, I see the dates are all in my (Eastern US) timezone. This is reported correctly if I apply the option to include Time Zone Information.
I can work with this, but I have a few questions:
why not send in UTC, which is used consistently -- I believe -- throughout the API? (At least, the REST API)
Is Time Zone Information working correctly? I ask because this report says it doesn't support fractional info, such as India's UTC+5.5 correctly.)
What Time Zone is used in the webhook posts? I have changed both my personal preference and my account setting to Katmandu, but I still Eastern. (Thus, I cannot test #2 myself.)
Thank you
1.) Most datetimes coming back from API are UTC, however SOAP and Connect messages follow a hidden account setting. You will need to ask support to change it. It's called "Time Zone used for Connect and SOAP".
2.) Fractional datetimes should work fine
3.) Webhook and SOAP currently use the same time zone as mentioned above. Your UI preferences (account settings and personal preferences) that you see are aimed at UI users. Since you are an API integrator, they follow a different setting.

NLP timezone issue

Currently i am using Bot Framework with Node for my chat bot and i am using API AI as my Natural Language Processing.
My question is, let say the user replied with "yesterday" or "today" or "tomorrow" and it is base on the server time. Now, it will go wrong if a person in Australia says today at 6 AM in the morning and their time which is in GMT will still be previous day and this gives a wrong date.
May i have suggestion on how do i solve this timezone issue?
Each API.AI agent has a default time zone setting which can be altered in your agents settings (documentation here) which will be used to determine the meaning of user's date/time queries like "tomorrow" and "yesterday" and "3pm":
If you're using API.AI's /query API you can send the timezone parameter in the request JSON to indicate what timezone the user you are sending the request on behalf of is in.

How does Acumatica calculate LastDateTimeModified

I have recently noticed that retrieving the LastDateTimeModified (through the WebService API) from Acumatica gives me the date and time in a very different time zone - I am guessing GMT time.
However when I view this through a Generic Inquiry it seems that it is showing the correct time - based on my Time Zone set up in the user profile.
Is there a way to get the LastDateTimeModified in the correct time zone when retrieving from the Web Service API. I have attempted changing the Time Zone for the SDK user with no success
Thanks,
G
For most screens, except a few CRM screens, the LastDateTimeModified and CreatedDateTime are stored in the same time zone as the database server machine. When reading it using web services, you are retrieving the raw value form the database, with no timezone conversion. It is up to you to convert it to the desired timezone.
The Help->Audit History panel does a manual conversion to the current user time zone. I have not been able to get the generic inquiry to show the time as you mention in your question; it is only showing the date.

Apigee Usergrid: Automatic database trigger based on passage of time

I am using Apigee Usergrid to create a car service database. My scenario is as such.
A customer can book his car for a service with his mobile app. This creates a service request in the car service db .
Now, many a times, the customers do not turn up on the booked date and time. In such a case, I want to mark the slot NO-SHOW as soon the stipulated date and time gets over.
As of now, I have a job that runs every day to clear up all such no-shows. But now, we have a requirement to mark such slots NO-SHOW almost as soon as the stipulated hour + 2 passes by.
E.g. if the reservation is on 24th Sept at 0900hrs and the car owner doesn't show up even after 1100hrs, the reservation booking has to be marked NO-SHOW.
Is there a way to achieve this implicitly in user grid?
Unfortunately this isn't available out of the box. You might try wiring up a Node.js service in Edge (enterprise.apigee.com) to do this?

Resources