public void ExtractData(RestAPIMeasurments i_measurments) { measurments = i_measurments; getPolicyRulesAndObjectives(); getService(); getTimeDependencies(); getMSTServices(); //TODO: here is performed a query to bring the Dictionary for SA duration fields. //TODO: Since this is a custom setting it cannot be queried. This must be done in MP getSTMs(); getServiceParentInformation(); getVisitingHours(); getCandidates(); getUnlicensedUsers(); getAdditionalObjects(); }
public static string ProcessRequest(string i_RequestBody) { SFDCScheduleRequest request; request = ParseRequestString(i_RequestBody); connectToSF(request); string header = "\n~~~~~~~~ REST API ~~~~~~~~"; m_DataProcessor = new DataProcessor(m_FSLClient, request); Stopwatch watch = new Stopwatch(); watch.Start(); RestAPIMeasurments measures = new RestAPIMeasurments(); m_DataProcessor.ExtractData(measures); watch.Stop(); long elapsedTime = watch.ElapsedMilliseconds; watch.Reset(); for (int i = 0; i < 99; i++) { Stopwatch watchExtractData = new Stopwatch(); watchExtractData.Start(); RestAPIMeasurments currMeasures = new RestAPIMeasurments(); m_DataProcessor.ExtractData(currMeasures); watchExtractData.Stop(); mergeMeasures(measures, currMeasures); elapsedTime += watchExtractData.ElapsedMilliseconds; watchExtractData.Reset(); } measures.updateMesurments(); string finalMeasures = JsonConvert.SerializeObject(measures.getAverage(), Formatting.Indented); string log = header + "\nExtraction of data by REST API took (average of 100 calls): " + (elapsedTime / 100) + " ms\nMeasurements per query (average of 100 calls):\n" + finalMeasures + "\n\n"; LambdaLogger.Log(log); //LambdaLogger.Log("Whole process by REST API including login to SF took: " + (watchExtractData.ElapsedMilliseconds + m_SFLoginTime) +" ms\n"); return(log); }
private static void mergeMeasures(RestAPIMeasurments measures, RestAPIMeasurments currMeasures) { measures.getMeasurments[Measures.SA_PROCESSING] += currMeasures.getMeasurments[Measures.SA_PROCESSING]; measures.getMeasurments[Measures.DEPENDENCIES_PROCESSING] += currMeasures.getMeasurments[Measures.DEPENDENCIES_PROCESSING]; measures.getMeasurments[Measures.MST_PROCESSING] += currMeasures.getMeasurments[Measures.MST_PROCESSING]; measures.getMeasurments[Measures.STM_PROCESSING] += currMeasures.getMeasurments[Measures.STM_PROCESSING]; measures.getMeasurments[Measures.PARENT_PROCESSING] += currMeasures.getMeasurments[Measures.PARENT_PROCESSING]; measures.getMeasurments[Measures.VISITING_HOURS_PROCESSING] += currMeasures.getMeasurments[Measures.VISITING_HOURS_PROCESSING]; measures.getMeasurments[Measures.RESOURCES_PROCESSING] += currMeasures.getMeasurments[Measures.RESOURCES_PROCESSING]; measures.getMeasurments[Measures.UNLICENSED_USERS_PROCESSING] += currMeasures.getMeasurments[Measures.UNLICENSED_USERS_PROCESSING]; measures.getMeasurments[Measures.CALENDARS_PROCESSING] += currMeasures.getMeasurments[Measures.CALENDARS_PROCESSING]; measures.getMeasurments[Measures.SA_QUERY] += currMeasures.getMeasurments[Measures.SA_QUERY]; measures.getMeasurments[Measures.DEPENDENCIES_QUERY] += currMeasures.getMeasurments[Measures.DEPENDENCIES_QUERY]; measures.getMeasurments[Measures.STM_QUERY] += currMeasures.getMeasurments[Measures.STM_QUERY]; measures.getMeasurments[Measures.PARENT_QUERY] += currMeasures.getMeasurments[Measures.PARENT_QUERY]; measures.getMeasurments[Measures.RESOURCES_QUERY] += currMeasures.getMeasurments[Measures.RESOURCES_QUERY]; measures.getMeasurments[Measures.UNLICENSED_USERS_QUERY] += currMeasures.getMeasurments[Measures.UNLICENSED_USERS_QUERY]; measures.getMeasurments[Measures.CALENDARS_QUERY] += currMeasures.getMeasurments[Measures.CALENDARS_QUERY]; measures.getMeasurments[Measures.OBJECTIVES_RULES_PARALLEL] += currMeasures.getMeasurments[Measures.OBJECTIVES_RULES_PARALLEL]; measures.getMeasurments[Measures.ADITTIONAL_DATA_PARALLEL] += currMeasures.getMeasurments[Measures.ADITTIONAL_DATA_PARALLEL]; }