protected Outlet Map(OutletImport outletImport, List<string> mappingvalidationList) { var outletCode = outletImport.Code; var exists = Queryable.FirstOrDefault(_context.tblCostCentre, p => p.Cost_Centre_Code.ToLower().Trim() == outletImport.Code.ToLower().Trim() && p.CostCentreType == (int)CostCentreType.Outlet); Guid id = exists != null ? exists.Id : Guid.NewGuid(); var routeId = Queryable.Where(_context.tblRoutes, p => p.Code == outletImport.RouteCode).Select(p=>p.RouteID).FirstOrDefault(); var vatClassId =Queryable.Where(_context.tblVATClass, p => p.Name == outletImport.VATClassCode).Select(p => p.id).FirstOrDefault(); var route = _routeRepository.GetById(routeId); if(route==null){mappingvalidationList.Add(string.Format((string) "Invalid Route Code {0}", (object) outletImport.RouteCode));} var outletTypeId = Queryable.Where(_context.tblOutletType, p => p.Code == outletImport.OutletType).Select(p=>p.id).FirstOrDefault(); var outletType = _outletTypeRepository.GetById(outletTypeId); if(outletType==null){mappingvalidationList.Add(string.Format((string) "Invalid Outlet Type Code {0}",(object) outletImport.OutletType));} var outletCategoryId = Queryable.Where(_context.tblOutletCategory, p => p.Code == outletImport.OutletCategory).Select(p => p.id).FirstOrDefault(); var outletCategory = _outletCategoryRepository.GetById(outletCategoryId); if (outletCategory == null) { mappingvalidationList.Add(string.Format((string) "Invalid Outlet Category Code {0}", (object) outletImport.OutletCategory)); } var outletProductPricingTier = _productPricingTierRepository.GetByCode(outletImport.PricingTierCode); if(outletProductPricingTier==null){mappingvalidationList.Add(string.Format((string) "Invalid Outlet Product Pricing Tier Code {0}", (object) outletImport.PricingTierCode));} var specialProductPricingTier = _productPricingTierRepository.GetByCode(outletImport.SpecialPricingTierCode); var VATClass = _vatClassRepository.GetById(vatClassId); var parentCostCentre = _costCentreRepository.GetByCode(outletImport.DistributorCode,CostCentreType.Distributor); var discountGroup = _discountGroupRepository.GetByCode(outletImport.DiscountGroupCode); if (parentCostCentre == null) { mappingvalidationList.Add(string.Format((string) "Invalid Distributor Code {0}", (object) outletImport.DistributorCode)); } var outlet = new Outlet(id); outlet.Name = outletImport.Name; outlet.CostCentreCode = outletCode;//outletImport.Code; outlet.Route = route; outlet.OutletCategory = outletCategory; outlet.OutletType = outletType; outlet.OutletProductPricingTier = outletProductPricingTier; outlet.SpecialPricingTier = specialProductPricingTier; outlet.VatClass = VATClass; outlet.ParentCostCentre = parentCostCentre != null ? new CostCentreRef {Id = parentCostCentre.Id} : null; outlet.CostCentreType=CostCentreType.Outlet; outlet.DiscountGroup = discountGroup; outlet._Status=EntityStatus.Active; return outlet; }
static void PullCustomers() { bool boolSessionBegun = false; QBSessionManager sessionManager = new QBSessionManager(); List<OutletImport> customers = new List<OutletImport>(); List<RouteRegionInfo> routeRegionInfos=new List<RouteRegionInfo>(); try { IMsgSetRequest requestMsgSet; IMsgSetResponse responseMsgSet; sessionManager.OpenConnection("", _appName); sessionManager.BeginSession(qdbpath, ENOpenMode.omDontCare); boolSessionBegun = true; requestMsgSet = GetLatestMsgSetRequest(sessionManager); requestMsgSet.Attributes.OnError = ENRqOnError.roeStop; ICustomerQuery custQ = requestMsgSet.AppendCustomerQueryRq(); // custQ.ORCustomerListQuery.FullNameList. responseMsgSet = sessionManager.DoRequests(requestMsgSet); IResponse response = responseMsgSet.ResponseList.GetAt(0); ICustomerRetList customerRetList = response.Detail as ICustomerRetList; if (customerRetList != null && customerRetList.Count != 0) { var company = GetCurrentCompany(); for (var i = 0; i < customerRetList.Count; i++) { ICustomerRet customerRet = customerRetList.GetAt(i); if (customerRet != null && customerRet.IsActive.GetValue()) { var outlet = new OutletImport { DistributrCode = company != null ? company.CompanyName.GetValue() : "default", OutletName = customerRet.FullName != null ? customerRet.FullName.GetValue() : "", OutletCode = customerRet.Name != null ? customerRet.Name.GetValue() : "" }; if(customerRet.CustomerTypeRef !=null) outlet.Outletype = customerRet.CustomerTypeRef.FullName.GetValue(); if (customerRet.SalesTaxCodeRef != null) outlet.VatClassCode = "";//customerRet.SalesTaxCodeRef.FullName.GetValue(); if (customerRet.PriceLevelRef !=null) outlet.PricingTierCode = customerRet.PriceLevelRef.FullName.GetValue(); if (customerRet.SalesRepRef !=null) { outlet.RouteCode = customerRet.SalesRepRef.FullName.GetValue(); } else { continue; } if (customerRet.ShipAddress != null) { var address = customerRet.ShipAddress; var route= new RouteRegionInfo() { Salemanref = outlet.RouteCode, Region = address.State != null ? address.State.GetValue() : "" }; if (route != null && string.IsNullOrEmpty(route.Region)) routeRegionInfos.Add(route); } customers.Add(outlet); } } } sessionManager.EndSession(); boolSessionBegun = false; sessionManager.CloseConnection(); if (customers.Any()) { DumpExportFilesAsync(customers.ToCsv(), MasterDataCollective.Outlet.ToString()); } if(routeRegionInfos.Any()) { } } catch (Exception ex) { if (boolSessionBegun) { sessionManager.EndSession(); sessionManager.CloseConnection(); } string error = (ex.Message.ToString() + "\nStack Trace: \n" + ex.StackTrace + "\nExiting the application"); Log(error); MessageBox.Show(error); } }