/// <summary> /// Initial mapping entity model to view model. /// </summary> /// <param name="vendorFilter">The vendor filter entity model data.</param> /// <returns></returns> private VendorFilterViewModel InitialVendorFilterViewModel(VendorFilter vendorFilter) { var result = new VendorFilterViewModel(); var emp = _unitOfWork.GetRepository <Hremployee>().GetCache(x => x.Aduser == vendorFilter.AssignTo).FirstOrDefault(); var company = _unitOfWork.GetRepository <Hrcompany>().GetCache(x => x.SapcomCode == vendorFilter.CompanyCode).FirstOrDefault(); var period = _unitOfWork.GetRepository <PeriodItem>().GetCache(x => x.Id == vendorFilter.PeriodItemId).FirstOrDefault(); var purOrg = _unitOfWork.GetRepository <PurchaseOrg>().GetCache(x => x.PurchaseOrg1 == vendorFilter.PurchasingOrg).FirstOrDefault(); var vendor = _unitOfWork.GetRepository <Data.Pocos.Vendor>().GetCache(x => x.VendorNo == vendorFilter.VendorNo).FirstOrDefault(); var valueHelpList = _unitOfWork.GetRepository <ValueHelp>().GetCache(x => x.ValueType == ConstantValue.ValueTypeVendorSendingStatus); var weightingKeyList = _unitOfWork.GetRepository <ValueHelp>().GetCache(x => x.ValueType == ConstantValue.ValueTypeWeightingKey); return(new VendorFilterViewModel { Id = vendorFilter.Id, AssignTo = vendorFilter.AssignTo, AssignToName = string.Format(ConstantValue.EmpTemplate, emp?.FirstnameTh, emp?.LastnameTh), CompanyCode = vendorFilter.CompanyCode, CompanyName = company?.LongText, IsSending = vendorFilter.IsSending ?? false, SendingStatus = vendorFilter.IsSending.HasValue && vendorFilter.IsSending.Value ? valueHelpList.FirstOrDefault(x => x.ValueKey == ConstantValue.VendorSending)?.ValueText : valueHelpList.FirstOrDefault(x => x.ValueKey == ConstantValue.VendorWaiting)?.ValueText, PeriodItemId = vendorFilter.PeriodItemId, PeriodItemName = period?.PeriodName, PurchasingOrg = vendorFilter.PurchasingOrg, PurchasingName = purOrg?.PurchaseName, SendEvaluationDate = vendorFilter.SendingEvaDate, VendorNo = vendorFilter.VendorNo, VendorName = vendor?.VendorName, WeightingKey = vendorFilter.WeightingKey, WeightingKeyName = weightingKeyList.FirstOrDefault(x => x.ValueKey == vendorFilter.WeightingKey)?.ValueText }); }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <returns></returns> public GenericCollectionViewModel <ListVendorsLightViewModel> GetByFilter(VendorFilterViewModel model) { var lang = this._languageService.CurrentLanguage; ConditionFilter <Vendor, long> condition = new ConditionFilter <Vendor, long>() { Order = Order.Descending }; if (model.Sort?.Count > 0) { if (model.Sort[0].Dir != "desc") { condition.Order = Order.Ascending; } } //if (model.DateFrom.HasValue) model.DateFrom = model.DateFrom.SetTimeToNow(); if (model.DateTo.HasValue) { model.DateTo = model.DateTo.SetTimeToMax(); } // The IQueryable data to query. IQueryable <Vendor> queryableData = this._VendorsRepository.Get(condition); queryableData = queryableData.Where(x => x.Language == lang && x.ParentKeyVendor != null); if (string.IsNullOrEmpty(model.Code) == false) { queryableData = queryableData.Where(x => x.ParentKeyVendor.Code.Contains(model.Code)); } if (string.IsNullOrEmpty(model.Name) == false) { queryableData = queryableData.Where(x => x.Name.Contains(model.Name)); } if (model.OpeningCreditFrom.HasValue) { queryableData = queryableData.Where(x => x.ParentKeyVendor.OpeningCredit >= model.OpeningCreditFrom); } if (model.OpeningCreditTo.HasValue) { queryableData = queryableData.Where(x => x.ParentKeyVendor.OpeningCredit <= model.OpeningCreditTo); } if (model.DateFrom.HasValue) { queryableData = queryableData.Where(x => x.ParentKeyVendor.Date >= model.DateFrom); } if (model.DateTo.HasValue) { queryableData = queryableData.Where(x => x.ParentKeyVendor.Date <= model.DateTo); } var entityCollection = queryableData.ToList(); var dtoCollection = entityCollection.Select(entity => entity.ToListModel()).ToList(); //foreach (var item in entityCollection) //{ // var ViewModel = dtoCollection.Find(x => x.Id == item.ParentKeyVendorId); // //ViewModel.Amount = item.Amount.ToString() + " " + item.Currency.ChildTranslatedCurrencys.FirstOrDefault(z => z.Language == lang).Name; // //if (item.ParentKeyBankMovement.Bank != null) // //{ // // ViewModel.BankName = item.ParentKeyBankMovement.Bank.ChildTranslatedBanks.First(x => x.Language == lang).Name; // //} // //if (item.ParentKeyBankMovement.JournalType != null) // //{ // // ViewModel.JournalTypeName = item.ParentKeyBankMovement.JournalType.ChildTranslatedJournalTypes.First(x => x.Language == lang).Name; ; // //} //} var total = dtoCollection.Count(); dtoCollection = dtoCollection.Skip(model.PageIndex * model.PageSize).Take(model.PageSize).ToList(); var result = new GenericCollectionViewModel <ListVendorsLightViewModel> { Collection = dtoCollection, TotalCount = total, PageIndex = model.PageIndex, PageSize = model.PageSize }; return(result); }