Example #1
0
        public async Task <List <Goods> > LoadGoodsAsync(List <Company> lstCompanies)
        {
            var          externalService = ExternalServices.Goods;
            List <Goods> result          = new List <Goods>();
            List <Goods> lstGoods        = new List <Goods>();

            if (lstCompanies.Count == 0)
            {
                logger.Warn(externalService, "There isn't any company");
            }
            foreach (var item in lstCompanies)
            {
                GoodsInfo[] serviceDataInfos = null;
                try
                {
                    serviceDataInfos = await eliteClient.GetGoodsAsync(userName, password, item.RefId);
                }
                catch (Exception ex)
                {
                    logger.Error(externalService, ex, "An error happened at the loading company's goods list,the companyid is {0} ", item.RefId);
                }

                if (serviceDataInfos != null)
                {
                    lstGoods = mapper.Map <GoodsInfo[], List <Goods> >(serviceDataInfos);

                    lstGoods.ForEach(x =>
                    {
                        x.CompanyId = item.Id;
                        if (String.IsNullOrWhiteSpace(x.EnName))
                        {
                            x.EnName = x.FaName;
                        }
                        Company producer = lstCompanies.FirstOrDefault(y => y.RefId == x.ProducerRefId);
                        if (producer != null)
                        {
                            x.ProducerId = producer.Id;
                        }
                    });
                    result.AddRange(lstGoods);
                }
            }
            return(result);
        }