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); }