Exemplo n.º 1
0
        public IActionResult Load(long?ID, long?QusLevel, long?LineOfBusiness, long?SubLineOfBusiness, long?langId)
        {
            GetQuestionnaire operation = new GetQuestionnaire();

            operation.ID = ID;
            operation.QustionnaireLevel = QusLevel;
            operation.LineOfBusiness    = LineOfBusiness;
            operation.SubLineOfBusiness = SubLineOfBusiness;
            if (langId.HasValue)
            {
                operation.LangID = langId;
            }
            else
            {
                operation.LangID = 1;
            }

            var result = operation.QueryAsync().Result;

            if (result is ValidationsOutput)
            {
                return(Ok(new ApiResult <List <ValidationItem> >()
                {
                    Data = ((ValidationsOutput)result).Errors
                }));
            }
            else
            {
                return(Ok((List <Questionnaire>)result));
            }
        }
        public IActionResult LoadRelatedQuestionnaire(long?langId, long?productDetailedID, long?LineOfBusiness, long?SubLine)
        {
            GetProductQuestionears questionears = new GetProductQuestionears();
            GetQuestionnaire       operation    = new GetQuestionnaire();

            questionears.ProductDetailedID = productDetailedID;
            questionears.LineOfBusniess    = LineOfBusiness;
            if (langId.HasValue)
            {
                operation.LangID    = langId;
                questionears.LangID = langId;
            }
            else
            {
                operation.LangID    = 1;
                questionears.LangID = 1;
            }


            operation.LineOfBusiness = LineOfBusiness;
            var result = operation.QueryAsync().Result;
            var qus    = questionears.QueryAsync().Result;

            var questionnaires = (List <Questionnaire>)result;

            var productQuestionnaires = (List <ProductQuestionnaire>)qus;
            List <ProductQuestionnaire> RelatedQuestionnaires   = new List <ProductQuestionnaire>();
            List <Questionnaire>        UnRelatedQuestionnaires = new List <Questionnaire>();

            if (productQuestionnaires.Count > 0)
            {
                RelatedQuestionnaires = productQuestionnaires.Where(p => questionnaires.Any(s => s.ID == p.QuestionnaireID && (s.SubLineOfBusiness == SubLine || s.SubLineOfBusiness == null))).ToList();

                UnRelatedQuestionnaires = questionnaires.Where(s => productQuestionnaires.Any(p => p.QuestionnaireID != s.ID &&
                                                                                              (s.SubLineOfBusiness == SubLine || s.SubLineOfBusiness == null))).ToList();

                UnRelatedQuestionnaires = UnRelatedQuestionnaires.Where(un => !RelatedQuestionnaires.Exists(re => un.ID == re.QuestionnaireID)).ToList();
            }
            else
            {
                UnRelatedQuestionnaires = questionnaires.Where(q => q.SubLineOfBusiness == SubLine || q.SubLineOfBusiness == null).ToList();
            }

            if (result is ValidationsOutput)
            {
                return(Ok(new ApiResult <List <ValidationItem> >()
                {
                    Data = ((ValidationsOutput)result).Errors
                }));
            }
            else
            {
                return(Ok(new { RelatedQuestionnaires, UnRelatedQuestionnaires }));
            }
        }
        public IActionResult LoadQuestionnaire(long?langId, long?productID, long?productDetailedID)
        {
            GetProductsDetails operation    = new GetProductsDetails();
            GetQuestionnaire   questionears = new GetQuestionnaire();

            operation.ProductID = productID;

            if (langId.HasValue)
            {
                operation.LangID    = langId;
                questionears.LangID = langId;
            }
            else
            {
                operation.LangID    = 1;
                questionears.LangID = 1;
            }


            var result = operation.QueryAsync().Result;
            var qus    = questionears.QueryAsync().Result;

            var ProductDetails = (List <ProductDetails>)result;

            var productQuestionnaires = (List <Questionnaire>)qus;
            List <Questionnaire> RelatedQuestionnaires   = new List <Questionnaire>();
            List <Questionnaire> UnRelatedQuestionnaires = new List <Questionnaire>();

            if (productQuestionnaires.Count > 0)
            {
                foreach (var prod in ProductDetails)
                {
                    foreach (var item in productQuestionnaires)
                    {
                        if (prod.LineOfBusniess == item.LineOfBusiness && item.SubLineOfBusiness == null)
                        {
                            bool alreadyExist             = UnRelatedQuestionnaires.Contains(item);
                            bool alreadyExistInSecondList = RelatedQuestionnaires.Contains(item);
                            if (!alreadyExist && !alreadyExistInSecondList)
                            {
                                UnRelatedQuestionnaires.Add(item);
                            }
                            else
                            {
                                UnRelatedQuestionnaires.Add(item);

                                RelatedQuestionnaires.Remove(item);
                            }
                        }
                        else
                        {
                            bool alreadyExist            = RelatedQuestionnaires.Contains(item);
                            bool alreadyExistInFirstList = UnRelatedQuestionnaires.Contains(item);
                            if (!alreadyExist && !alreadyExistInFirstList)
                            {
                                RelatedQuestionnaires.Add(item);
                            }
                        }
                    }
                }
            }
            else
            {
                UnRelatedQuestionnaires = productQuestionnaires;
            }
            if (result is ValidationsOutput)
            {
                return(Ok(new ApiResult <List <ValidationItem> >()
                {
                    Data = ((ValidationsOutput)result).Errors
                }));
            }
            else
            {
                return(Ok(new { RelatedQuestionnaires, UnRelatedQuestionnaires }));
            }
        }