public bool PutResponseInfoData(FormResponseDetail formResponseDetail) { CosmosDBCRUD formResponseCRUD = new CosmosDBCRUD(); var formResponsePropertiesFlattenedList = formResponseDetail.ToFormResponsePropertiesFlattenedList(); var result = formResponseCRUD.SaveFormResponsePropertiesAsync(formResponsePropertiesFlattenedList).Result; return(true); }
//public bool SaveResponsexxx(SurveyResponseBO surveyResponseBO) //{ // using (ManualResetEvent completionEvent = new ManualResetEvent(false)) // { // bool isSuccessful = false; // Task<bool> isSuccessfulTask = null; // var backgroundTask = Task.Run(() => // { // isSuccessfulTask = SaveFormResponseProperties(surveyResponseBO); // }); // var millisecondsToSleep = 100; // var retries = (Int32)TimeSpan.FromSeconds(5).TotalMilliseconds / millisecondsToSleep; // bool isCompleted = false; // while (retries > 0) // { // if (isSuccessfulTask == null) { Thread.Sleep(10); continue; } // isCompleted = isSuccessfulTask.IsCompleted; // if (isCompleted) break; // Thread.Sleep(millisecondsToSleep); // retries -= 1; // } // isSuccessful = isCompleted; // var awaiter = isSuccessfulTask.ContinueWith(t => // { // if (surveyResponseBO.Status == RecordStatus.Saved) // { // NotifyConsistencyService(surveyResponseBO, surveyResponseBO.Status, RecordStatusChangeReason.SubmitOrClose); // } // completionEvent.Set(); // }, TaskContinuationOptions.AttachedToParent).ConfigureAwait(false); // isSuccessful &= completionEvent.WaitOne(TimeSpan.FromSeconds(5)); // awaiter.GetAwaiter().GetResult(); // isSuccessful &= isSuccessfulTask.Result; // isSuccessful &= backgroundTask.Wait(TimeSpan.FromSeconds(5)); // return isSuccessful; // } //} #region Save Form Response Properties /// <summary> /// First time store ResponseId, RecStatus, and SurveyId in CosmosDB /// </summary> /// <param name="response"></param> /// <returns></returns> private async Task <bool> SaveFormResponseProperties(SurveyResponseBO response) { FormResponseResource recoveredResponse; if (response.RecStatus == RecordStatus.RecoverLastRecordVersion) { //recoveredResponse = RetrieveResponseAttachment( } var now = DateTime.UtcNow; List <FormResponseProperties> formResponsePropertiesList = response.ResponseDetail.ToFormResponsePropertiesFlattenedList(); bool isSuccessful = false; var result = await _formResponseCRUD.SaveFormResponsePropertiesAsync(formResponsePropertiesList).ConfigureAwait(false); isSuccessful = result.Resource != null; return(isSuccessful); }