Example #1
0
        public async Task <QualificationSupplierDataReviewViewModel> GetSupplierDataReviewModel(int qualificationId, string supplierId)
        {
            int QualificationTypeId = 0;


            QualificationSupplierDataReviewViewModel supplierData = new QualificationSupplierDataReviewViewModel();
            var List = await _context.QualificationSupplierData.Where(q => q.TenderId == qualificationId && q.SupplierSelectedCr == supplierId && q.IsActive == true)
                       .Select(q => new QualificationSupplierDataModel
            {
                QualificationConfigurationId = q.ID,
                ItemCode                = q.QualificationItem.Code,
                QualificationItemId     = q.QualificationItem.ID,
                QualificationItemName   = q.QualificationItem.Name,
                PointValue              = q.PointValue,
                QualificationItemTypeId = q.QualificationItem.QualificationItemTypeId,
                lstQualificationConfigurationAttachmentModel = (q.QualificationConfigurationAttachments == null ? null : q.QualificationConfigurationAttachments.Select(e => new ViewModel.Qualification.QualificationConfigurationAttachmentModel
                {
                    FileReferenceId = e.FileReferenceId,
                    FileName = e.FileName,
                    QualificationSupplierDataId = e.QualificationSupplierDataId
                }).ToList()),
                lstQualificationSupplierProjectModel = (q.QualificationSupplierProjects == null ? null : q.QualificationSupplierProjects.Select(e => new QualificationSupplierProjectModel
                {
                    ContractName = e.ContractName,
                    OwnerName = e.OwnerName,
                    ContractValue = e.ContractValue,
                    Description = e.Description,
                    EmailAddress = e.EmailAddress,
                    EndDateStr = (e.EndDate != null ? e.EndDate.Value.ToHijriDateWithFormat("dd/MM/yyyy") : string.Empty),
                    StartDateStr = (e.StartDate != null ? e.StartDate.Value.ToHijriDateWithFormat("dd/MM/yyyy") : string.Empty),
                    PhoneNumber = e.PhoneNumber
                }).ToList()),
                QualificationTypeId        = q.Tender.QualificationTypeId.HasValue ? q.Tender.QualificationTypeId.Value : 0,
                QualificationSubCategoryId = q.QualificationItem.SubCategoryId,
                QualificationCategoryId    = q.QualificationItem.QualificationSubCategory.QualificationCategoryId,
                TenderIdStr         = Util.Encrypt(q.TenderId),
                SupplierValueString = q.QualificationItem.QualificationItemTypeId == (int)Enums.QualificationItemType.Select ?
                                      q.QualificationLookup.Name
                                    : q.SupplierValue.ToString(),
                InsuranceProvider           = q.InsuranceProvider,
                InsuranceCoverage           = q.LevelOfCoverage,
                InsuranceCoverageEndDateStr = (q.CoverageExpireDate != null ? q.CoverageExpireDate.Value.ToHijriDateWithFormat("dd/MM/yyyy") : string.Empty),
                Weight         = q.Weight,
                TenderStatusId = q.Tender.TenderStatusId
            }).OrderBy(q => q.ItemCode).ToListAsync();



            if (List != null && List.Count > 0)
            {
                QualificationTypeId = (List != null && List.Count > 0 ? List.Select(a => a.QualificationTypeId).FirstOrDefault() : 0);

                var yearlyList = _context.QualificationSupplierDataYearly.Where(y => y.TenderId == qualificationId && y.SupplierSelectedCr == supplierId && y.IsActive == true)
                                 .Include(y => y.QualificationItem).AsEnumerable().GroupBy(y => y.QualificationItemId)
                                 .Select(x => new QualificationSupplierDataYearlyViewModel
                {
                    ItemCode    = x.FirstOrDefault().QualificationItem.Code,
                    CurrentYear = x.Where(xx => xx.QualificationYearId == (int)Enums.QualificationYear.CurrentYear).FirstOrDefault().SupplierValue,
                    Year1       = (QualificationTypeId != (int)Enums.PreQualificationType.Small ? x.Where(xx => xx.QualificationYearId == (int)Enums.QualificationYear.SecondYear).FirstOrDefault().SupplierValue : 0.0M),
                    Year2       = (QualificationTypeId != (int)Enums.PreQualificationType.Small ? x.Where(xx => xx.QualificationYearId == (int)Enums.QualificationYear.ThirdYear).FirstOrDefault().SupplierValue : 0.0M),
                    Name        = x.FirstOrDefault().QualificationItem.Name,
                }).OrderBy(a => a.ItemCode)
                                 .ToList();

                supplierData.lstQualificationSupplierTechDataModel      = (List != null && List.Count > 0 ? List.Where(l => l.QualificationCategoryId == (int)Enums.QualificationItemCategory.Technical).ToList() : null);
                supplierData.lstQualificationSupplierFinancialDataModel = (List != null && List.Count > 0 ? List.Where(l => l.QualificationCategoryId == (int)Enums.QualificationItemCategory.Financial).ToList() : null);
                supplierData.QualificationTypeId = (List != null && List.Count > 0 ? List.FirstOrDefault().QualificationTypeId : 0);
                supplierData.SupplierCR          = supplierId;
                supplierData.TenderIdStr         = Util.Encrypt(qualificationId);
                supplierData.TenderStatusId      = List.Count > 0 ? List.FirstOrDefault().TenderStatusId : 0;
                supplierData.lstQualificationSupplierProjectModel = (List != null && List.Count > 0 ? List.Where(a => a.QualificationItemId == (int)Enums.QualificationEvaluationItems.NumberOfProjectsImplementedLastThreeYears).FirstOrDefault()?.lstQualificationSupplierProjectModel : null);


                supplierData.QualificationSupplierDataYearly = yearlyList;
            }

            return(supplierData);
        }
        public async Task <IViewComponentResult> InvokeAsync(string qualificationId, string SupplierId)
        {
            QualificationSupplierDataReviewViewModel result = await _ApiClient.GetAsync <QualificationSupplierDataReviewViewModel>("Qualification/GetSupplierDataReviewModel/" + Util.Decrypt(qualificationId) + "/" + SupplierId, null);

            return(View(result));
        }