private Response onWhereCoworker(WhereCoworkerDTO userQuery) { Console.WriteLine(userQuery.ToJson(true)); var tp = new TimePeriodDTO() { StartTime = DateTimeOffset.Now.Date.Add(TimeSpan.Zero), EndTime = DateTimeOffset.Now.Date.Add(new TimeSpan(23, 59, 59)) }; Console.WriteLine("Default: " + tp.StartTime.ToString() + " " + tp.EndTime.ToString()); // if user hasn't entered any data and time -> set to current date and time if (userQuery.TimePeriod == null && (!userQuery.Date.HasValue) && userQuery.DateTimeObject == null && (!userQuery.Time.HasValue)) { userQuery.DateTimeObject = new DateTimeWraper(DateTimeOffset.UtcNow); } // recognize any possible time and data tp = RecognizeDate(userQuery.Date, oldTp: tp); tp = RecognizeTime(userQuery, oldTp: tp); tp = RecognizeDateTime(userQuery, oldTp: tp); // create params for Event Server request var whereHolderRequest = new HolderLocationPeriodDTO() { QueryType = ((DateTime.UtcNow - tp.StartTime)?.TotalMinutes < 15) ? QueryType.Type.WhereNow : QueryType.Type.Where, HolderName = userQuery.TargetName.Trim().Replace("?", ""), HolderMiddlename = userQuery.TargetMiddlename.Trim().Replace("?", ""), HolderSurname = userQuery.TargetLastname.Trim().Replace("?", ""), TimePeriod = ((DateTime.UtcNow - tp.StartTime)?.TotalMinutes < 15) ? new TimePeriodDTO() { StartTime = DateTimeOffset.Now.Date.Add(TimeSpan.Zero), EndTime = DateTimeOffset.Now.Date.Add(new TimeSpan(23, 59, 59)) } : tp }; Console.WriteLine(whereHolderRequest.ToJson(true)); foreach (var eventsListener in GlobalScope.CSEventsListeners) { eventsListener.PostCommand(new RequestHolderLocation(whereHolderRequest)); } // send response to Dialogflow (Dialogflow automatically resend it to Slack, Telegram, Skype, etc.) //return new ResponseWebHookIntent() { // FulfillmentText = $"*Буду искать:* '{whereHolderRequest.HolderName} {whereHolderRequest.HolderMiddlename} {whereHolderRequest.HolderSurname}'\n" + // $"*c :* {whereHolderRequest.TimePeriod.StartTime.ToString()}\n" + // $"*по:* {whereHolderRequest.TimePeriod.EndTime.ToString()}" //}.ToJson(); return(200); }
private Response onWhenCoworker(WhenCoworkerDTO userQuery) { //Console.WriteLine(userQuery.ToJson(true)); var tp = new TimePeriodDTO() { StartTime = DateTimeOffset.UtcNow.Date.Add(TimeSpan.Zero), EndTime = DateTimeOffset.UtcNow.Date.Add(new TimeSpan(23, 59, 59)) }; // if user hasn't entered any data and time -> set to current date and time if (!userQuery.Date.HasValue) { userQuery.Date = DateTimeOffset.UtcNow; } // recognize any possible time and data tp = RecognizeDate(date: userQuery.Date, oldTp: tp); // create params for Event Server request var holderRequest = new HolderLocationPeriodDTO() { QueryType = QueryType.GetType(userQuery.QueryType), HolderName = userQuery.TargetName.Trim().Replace("?", ""), HolderMiddlename = userQuery.TargetMiddlename.Trim().Replace("?", ""), HolderSurname = userQuery.TargetLastname.Trim().Replace("?", ""), TimePeriod = tp, IsHolderIn = userQuery.InOrOut == null ? new bool?() : userQuery.InOrOut.Trim().Equals("пришла", StringComparison.OrdinalIgnoreCase) ? true : false }; Console.WriteLine(holderRequest.ToJson(true)); foreach (var eventsListener in GlobalScope.CSEventsListeners) { eventsListener.PostCommand(new RequestHolderLocation(holderRequest)); } return(200); }