public override void Deserialize(string i_QueryResult, AppointmentBookingData i_ABData, eAdditionalObjectQuery i_AdditionalObjQuery = default, bool async = false) { DeserializedQueryResult deserializedQuery = JsonConvert.DeserializeObject <DeserializedQueryResult>(i_QueryResult); switch (i_AdditionalObjQuery) { case eAdditionalObjectQuery.ServicesInResourcesTimeDomain: deserializeServicesInResourcesTimeDomain(i_ABData, deserializedQuery, async); break; case eAdditionalObjectQuery.ResourcesAdditionalObjects: i_ABData.ABAdditionalObjects.ResBreaksAndShiftsByResId = deserializedQuery.records.ToDictionary(record => record.Id); break; case eAdditionalObjectQuery.ResourceTerritories: deserializedResourceTerritories(i_ABData, deserializedQuery.records); break; case eAdditionalObjectQuery.Capacities: i_ABData.ABAdditionalObjects.Capacities = deserializedQuery.records; break; case eAdditionalObjectQuery.Calendars: i_ABData.ABAdditionalObjects.Calendars = deserializedQuery.records; break; default: break; } }
public override string getQuery(AppointmentBookingRequest i_Request = null, eAdditionalObjectQuery i_AdditionalObjQuery = default) { ServiceAppointment service = m_ABData.ServiceToSchedule; m_Start = service.EarliestStartTime.Value; m_Finish = service.DueDate.Value; calculateHorizonByMaxDaysSearchSlot(service, DateTime.Now, i_Request.SearchSlotsMaxDays, out m_Start, out m_Finish); string query; switch (i_AdditionalObjQuery) { case eAdditionalObjectQuery.ServicesInResourcesTimeDomain: query = getServicesInResourcesTimeDomainQuery(); break; case eAdditionalObjectQuery.ResourcesAdditionalObjects: query = getResourcesQueryForAdditionalObjects(i_Request); break; case eAdditionalObjectQuery.ResourceTerritories: query = getResourceTerritoriesQuery(i_Request); break; case eAdditionalObjectQuery.Capacities: query = getCapacitiesQuery(i_Request); break; case eAdditionalObjectQuery.Calendars: query = getCalendarsQuery(i_Request); break; default: query = String.Empty; break; } return(formatQueryString(query)); }