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); }
public IntentsModule() : base("") { base.Post("/intents", params_ => { try { // body -> json -> RequestWebHookIntent RequestWebHookIntent incomeWebHook = RequestWebHookIntent.FromJson(RequestStream.FromStream(Request.Body).AsString()); IntentType.Type intentType = IntentType.GetType(incomeWebHook?.QueryResult?.Intent?.Name); object Parameters = incomeWebHook?.QueryResult?.Parameters; // Here is a temporary fix of bug in Dialogflow. // Slack have changed api and today (12.09.2019) Dialogflow not correct works with unswers to slack if (intentType == IntentType.Type.Undefined || (incomeWebHook?.QueryResult?.AllRequiredParamsPresent ?? false) == false) { return(buildFulfillmentMessage(incomeWebHook)); } switch (intentType) { case IntentType.Type.Undefined: break; case IntentType.Type.WhereCoworker: //return onWhereCoworker(WhereCoworkerDTO.FromObject(Parameters)); onWhereCoworker(WhereCoworkerDTO.FromObject(Parameters)); break; case IntentType.Type.WhenCoworker: //return onWhenCoworker(WhenCoworkerDTO.FromObject(Parameters)); onWhenCoworker(WhenCoworkerDTO.FromObject(Parameters)); break; } return(buildFulfillmentMessage(incomeWebHook)); } catch (Exception e) { Console.WriteLine("Exception: " + e.Message + "\n" + e.StackTrace); } return(404); }); }