Skip to content
This repository has been archived by the owner on Jun 30, 2022. It is now read-only.

Commit

Permalink
calendar merge fix
Browse files Browse the repository at this point in the history
  • Loading branch information
lauren-mills committed Sep 14, 2019
1 parent cf1a54d commit 36448b4
Showing 1 changed file with 40 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -816,25 +816,26 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (date != null)
{
state.MeetingInfor.CreateHasDetail = true;
state.MeetingInfor.StartDate = date;
}

date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
// get end date from time range
date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (date != null)
{
state.MeetingInfor.CreateHasDetail = true;
state.MeetingInfor.EndDate = date;
}
}

if (entity.ToDate != null && !state.MeetingInfor.EndDate.Any())
if (entity.ToDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.ToDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone());
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, false);
if (date != null)
{
state.MeetingInfor.CreateHasDetail = true;
Expand All @@ -845,25 +846,25 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (time != null)
{
state.MeetingInfor.CreateHasDetail = true;
state.MeetingInfor.StartTime = time;
}

time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (time != null)
{
state.MeetingInfor.CreateHasDetail = true;
state.MeetingInfor.EndTime = time;
}
}

if (entity.ToTime != null && !state.MeetingInfor.EndTime.Any())
if (entity.ToTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.ToTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone());
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, false);
if (time != null)
{
state.MeetingInfor.CreateHasDetail = true;
Expand Down Expand Up @@ -914,13 +915,13 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (date != null)
{
state.MeetingInfor.StartDate = date;
}

date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (date != null)
{
state.MeetingInfor.EndDate = date;
Expand All @@ -930,13 +931,13 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (time != null)
{
state.MeetingInfor.StartTime = time;
}

time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (time != null)
{
state.MeetingInfor.EndTime = time;
Expand All @@ -956,13 +957,13 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (date != null)
{
state.MeetingInfor.StartDate = date;
}

date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (date != null)
{
state.MeetingInfor.EndDate = date;
Expand All @@ -972,23 +973,29 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.ToDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.ToDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone());
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (date != null)
{
state.UpdateMeetingInfor.NewStartDate = date;
}

date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (date != null)
{
state.UpdateMeetingInfor.NewEndDate = date;
}
}

if (entity.FromTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (time != null)
{
state.MeetingInfor.StartTime = time;
}

time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (time != null)
{
state.MeetingInfor.EndTime = time;
Expand All @@ -998,13 +1005,13 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.ToTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.ToTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (time != null)
{
state.UpdateMeetingInfor.NewStartTime = time;
}

time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (time != null)
{
state.UpdateMeetingInfor.NewEndTime = time;
Expand Down Expand Up @@ -1050,24 +1057,24 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (date != null)
{
state.MeetingInfor.StartDate = date;
state.MeetingInfor.StartDateString = dateString;
}

date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (date != null)
{
state.MeetingInfor.EndDate = date;
}
}

if (entity.ToDate != null && !state.MeetingInfor.EndDate.Any())
if (entity.ToDate != null)
{
var dateString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.ToDate[0]);
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone());
var date = GetDateFromDateTimeString(dateString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, false);
if (date != null)
{
state.MeetingInfor.EndDate = date;
Expand All @@ -1077,23 +1084,23 @@ protected async Task DigestCalendarLuisResult(DialogContext dc, CalendarLuis lui
if (entity.FromTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.FromTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), true, false);
if (time != null)
{
state.MeetingInfor.StartTime = time;
}

time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false);
time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, true);
if (time != null)
{
state.MeetingInfor.EndTime = time;
}
}

if (entity.ToTime != null && !state.MeetingInfor.EndTime.Any())
if (entity.ToTime != null)
{
var timeString = GetDateTimeStringFromInstanceData(luisResult.Text, entity._instance.ToTime[0]);
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone());
var time = GetTimeFromDateTimeString(timeString, dc.Context.Activity.Locale, state.GetUserTimeZone(), false, false);
if (time != null)
{
state.MeetingInfor.EndTime = time;
Expand Down Expand Up @@ -1548,8 +1555,9 @@ private string GetDateTimeStringFromInstanceData(string inputString, InstanceDat
return inputString.Substring(data.StartIndex, data.EndIndex - data.StartIndex);
}

private List<DateTime> GetDateFromDateTimeString(string date, string local, TimeZoneInfo userTimeZone, bool isStart = true)
private List<DateTime> GetDateFromDateTimeString(string date, string local, TimeZoneInfo userTimeZone, bool isStart, bool isTargetTimeRange)
{
// if isTargetTimeRange is true, will only parse the time range
var culture = local ?? English;
var results = RecognizeDateTime(date, culture, userTimeZone, true);
var dateTimeResults = new List<DateTime>();
Expand All @@ -1559,7 +1567,7 @@ private List<DateTime> GetDateFromDateTimeString(string date, string local, Time
{
if (result.Value != null)
{
if (!isStart)
if (isTargetTimeRange)
{
break;
}
Expand Down Expand Up @@ -1591,9 +1599,9 @@ private List<DateTime> GetDateFromDateTimeString(string date, string local, Time
return dateTimeResults;
}

private List<DateTime> GetTimeFromDateTimeString(string time, string local, TimeZoneInfo userTimeZone, bool isStart = true)
private List<DateTime> GetTimeFromDateTimeString(string time, string local, TimeZoneInfo userTimeZone, bool isStart, bool isTargetTimeRange)
{
// if isStart is false, will only get the end time of a timerange
// if isTargetTimeRange is true, will only parse the time range
var culture = local ?? English;
var results = RecognizeDateTime(time, culture, userTimeZone, false);
var dateTimeResults = new List<DateTime>();
Expand All @@ -1603,7 +1611,7 @@ private List<DateTime> GetTimeFromDateTimeString(string time, string local, Time
{
if (result.Value != null)
{
if (!isStart)
if (isTargetTimeRange)
{
break;
}
Expand Down

0 comments on commit 36448b4

Please sign in to comment.