示例#1
0
        public DataResult GetSmartProduct([FromQuery] int qId, int wId, bool menu)
        {
            var result = new DataResult();

            if (menu)
            {
                result.datas.AddRange(SmartProductHelper.GetMenu(qId, wId));
            }
            else
            {
                var data           = SmartProductHelper.GetDetail(qId, wId);
                var processCodeIds = data.SelectMany(x => x.ProcessCodeIdsList).Distinct();
                if (processCodeIds.Any())
                {
                    var processCodeIdsList = SmartProcessCodeHelper.Instance.GetAllByIds <SmartProcessCode>(processCodeIds);
                    if (processCodeIdsList.Any())
                    {
                        foreach (var d in data)
                        {
                            foreach (var processCodeId in d.ProcessCodeIdsList)
                            {
                                var processCode = processCodeIdsList.FirstOrDefault(x => x.Id == processCodeId);
                                if (processCode != null)
                                {
                                    d.ProcessCodesList.Add(processCode.Code);
                                }
                            }
                        }
                    }
                }

                if (qId != 0)
                {
                    var smartProduct = data.FirstOrDefault();
                    if (smartProduct != null)
                    {
                        if (processCodeIds.Any())
                        {
                            smartProduct.Processes.AddRange(SmartProductProcessHelper.GetDetail(qId, smartProduct.ProcessCodeIdsList));
                        }

                        smartProduct.Capacities.AddRange(SmartProductCapacityHelper.GetDetail(smartProduct.CapacityId, qId, smartProduct.CategoryId));
                        result.datas.Add(smartProduct);
                    }
                    else
                    {
                        result.errno = Error.SmartProductNotExist;
                        return(result);
                    }
                }

                else
                {
                    result.datas.AddRange(data);
                }
            }

            if (qId != 0 && !result.datas.Any())
            {
                result.errno = Error.SmartProductNotExist;
                return(result);
            }
            return(result);
        }