public IActionResult Load(long?ID, long?ProductID, long?ProductDetailID, long?langId) { GetProductReports operation = new GetProductReports(); operation.ID = ID; operation.ProductId = ProductID; operation.ProductDetailId = ProductDetailID; if (langId.HasValue) { operation.LangID = langId; } else { operation.LangID = 1; } var result = operation.QueryAsync().Result; if (result is ValidationsOutput) { return(Ok(new ApiResult <List <ValidationItem> >() { Data = ((ValidationsOutput)result).Errors })); } else { return(Ok((List <ProductReport>)result)); } }
public IActionResult LoadRelated(long?ID, long?ProductID, long?ProductDetailID, long?langId) { GetProductReports operation = new GetProductReports(); GetReport operation2 = new GetReport(); operation.ID = ID; operation.ProductId = ProductID; operation.ProductDetailId = ProductDetailID; if (langId.HasValue) { operation.LangID = langId; operation2.LangID = langId; } else { operation.LangID = 1; operation2.LangID = 1; } var result = operation.QueryAsync().Result; var result2 = (List <Report>)operation2.QueryAsync().Result; List <ProductReport> RelatedReports = new List <ProductReport>(); List <Report> UnRelatedReports = new List <Report>(); var productReports = (List <ProductReport>)result; if (productReports.Count > 0) { RelatedReports = productReports.Where(p => result2.Any(s => s.ID == p.ReportId)).ToList(); UnRelatedReports = result2.Where(s => productReports.Any(p => p.ReportId != s.ID)).ToList(); UnRelatedReports = UnRelatedReports.Where(un => !RelatedReports.Exists(re => un.ID == re.ReportId)).ToList(); } else { UnRelatedReports = result2; } if (result is ValidationsOutput) { return(Ok(new ApiResult <List <ValidationItem> >() { Data = ((ValidationsOutput)result).Errors })); } else { return(Ok(new { UnRelatedReports, RelatedReports })); } }