Exemple #1
0
        /// <summary>
        /// To map booking and contact records
        /// </summary>
        /// <param name="surveyResponse"></param>
        /// <param name="answers"></param>
        private void MapBookingContact(Entity surveyResponse, Response response)
        {
            trace.Trace("Processing MapBookingContact - start");
            var bookingNumber = AnswerHelper.GetBookingNumber(response.Answers, trace);
            var sourceMarket  = AnswerHelper.GetSourceMarket(response.Answers, trace);
            var tourOperator  = AnswerHelper.GetTourOperator(response.Answers, trace);
            var brand         = AnswerHelper.GetBrand(response.Answers, trace);
            var lastName      = ContactHelper.GetLastName(response.Contact, trace);

            if (string.IsNullOrWhiteSpace(bookingNumber))
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(sourceMarket))
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(tourOperator))
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(brand))
            {
                return;
            }

            FetchBookingContact(bookingNumber, sourceMarket, tourOperator, brand, lastName, surveyResponse);

            trace.Trace("Processing MapBookingContact - end");
        }
Exemple #2
0
        /// <summary>
        /// To map Gateway information to survey record
        /// </summary>
        /// <param name="surveyResponse"></param>
        /// <param name="response"></param>
        private void MapGateway(Entity surveyResponse, Response response)
        {
            trace.Trace("Processing MapGateway - start");
            surveyResponse[Attributes.SurveyResponse.GatewayId] = null;
            if (response.Answers == null || response.Answers.Count == 0)
            {
                return;
            }
            var gatewayCode = AnswerHelper.GetTcdisDestinationAirport(response.Answers, payloadSurvey.Trace);

            if (string.IsNullOrWhiteSpace(gatewayCode))
            {
                return;
            }
            var query = $@"<fetch distinct='false' mapping='logical' output-format='xml-platform' version='1.0'>
                           <entity name='tc_gateway'>
                           <attribute name='tc_gatewayid'/>
                            <filter type='and'>
                             <condition attribute='tc_iata' value='{gatewayCode}' operator='eq'/>
                            </filter>
                           </entity>
                           </fetch>";

            var entColGateways = CommonXrm.RetrieveMultipleRecordsFetchXml(query, payloadSurvey.CrmService);

            if (entColGateways == null || entColGateways.Entities.Count == 0)
            {
                return;
            }
            surveyResponse.Attributes[Attributes.SurveyResponse.GatewayId] = new EntityReference(EntityName.Gateway, entColGateways.Entities[0].Id);
            trace.Trace("Processing MapGateway - end");
        }
Exemple #3
0
 /// <summary>
 /// To create Feedback records
 /// </summary>
 /// <param name="answersToCreate"></param>
 /// <param name="surveyId"></param>
 private void CreateFeedback(List <Answer> answersToCreate, Guid surveyId)
 {
     trace.Trace("Processing CreateFeedback - start");
     if (answersToCreate == null || answersToCreate.Count == 0 || surveyId == Guid.Empty)
     {
         return;
     }
     for (int i = 0; i < answersToCreate.Count; i++)
     {
         var feedbackEntity = AnswerHelper.GetFeedbackEntityFromPayload(answersToCreate[i], payloadSurvey.Trace);
         feedbackEntity.Attributes[Attributes.SurveyResponseFeedback.SurveyFeedbackId] = new EntityReference(EntityName.SurveyResponse, surveyId);
         CommonXrm.CreateEntity(feedbackEntity, payloadSurvey.CrmService);
     }
     trace.Trace("Processing CreateFeedback - end");
 }
Exemple #4
0
        /// <summary>
        /// To process answer records
        /// </summary>
        /// <param name="answers"></param>
        /// <param name="existingFeedback"></param>
        /// <param name="isSurveyCreate"></param>
        /// <returns></returns>
        private EntityCollection ProcessAnswers(List <Answer> answers, Dictionary <Guid, string> existingFeedback, bool isCreateSurvey)
        {
            trace.Trace("Processing ProcessAnswers - start");
            var feedbackCollection = new EntityCollection();

            if (answers != null)
            {
                for (int i = 0; i < answers.Count; i++)
                {
                    trace.Trace("Processing Answer " + i + " - start");
                    var feedback = AnswerHelper.GetFeedbackEntityFromPayload(answers[i], existingFeedback, isCreateSurvey, trace);
                    if (feedback != null)
                    {
                        feedbackCollection.Entities.Add(feedback);
                    }
                    trace.Trace("Processing Answer " + i + " - end");
                }
            }
            trace.Trace("Processing ProcessAnswers - end");
            return(feedbackCollection);
        }