public bool PutResponseInfoData(FormResponseDetail formResponseDetail)
        {
            CosmosDBCRUD formResponseCRUD = new CosmosDBCRUD();
            var          formResponsePropertiesFlattenedList = formResponseDetail.ToFormResponsePropertiesFlattenedList();
            var          result = formResponseCRUD.SaveFormResponsePropertiesAsync(formResponsePropertiesFlattenedList).Result;

            return(true);
        }
Пример #2
0
        //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);
        }