Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="product"></param>
        /// <returns></returns>
        private async Task <CrmProduct> GetNewProductByOriginProductAsync(CrmProduct product)
        {
            var newName = (await _productRelationRepository.FirstOrDefaultAsync(
                               e => e.OriginalProductName.Replace(" ", "") == product.Prod_Name.Replace(" ", "")
                               ))?.NewProductName;

            return(await _productRepository.FirstOrDefaultAsync(e => e.Prod_Name.Replace(" ", "") == newName.Replace(" ", "")));
        }
        /// <summary>
        /// 配置产品
        /// </summary>
        /// <param name="productOptions"></param>
        /// <returns></returns>
        public async Task <string> ConfigureProduct(string shortName, string productName, int productTypeId, string productLevelIds, int periodClassHour)
        {
            var productType = await _productTypeRepository
                              .Include(e => e.ProductSubTypes)
                              .FirstOrDefaultAsync(e => e.Prot_ID == productTypeId);

            List <CrmProduct> products = new List <CrmProduct>();

            foreach (var pst in productType.ProductSubTypes)
            {
                var product = new CrmProduct()
                {
                    Prod_Ab              = shortName,
                    Prod_Name            = $"{productName}({pst.Prost_Name})",
                    Prod_ClassHour       = null,
                    Prod_Amount          = 0,
                    Prod_TermType        = 0,
                    Prod_Type            = productTypeId,
                    Prod_SubTypeID       = pst.Prost_ID,
                    Prod_CreatedBy       = 1,
                    Prod_CreatedDate     = DateTime.Now,
                    Prod_UpdatedBy       = 1,
                    Prod_UpdatedDate     = DateTime.Now,
                    Prod_Deleted         = 0,
                    Prod_Status          = 1,//默认禁用
                    Prod_Levels          = productLevelIds,
                    Prod_PeriodClassHour = periodClassHour
                };
                await _productRepository.InsertAsync(product);

                products.Add(product);
            }
            await _uow.SaveChangesAsync();

            return(string.Join(',', products.Select(e => e.Prod_ID).OrderBy(e => e).ToList()));
        }