public IActionResult Load(long?ID, long?ReportGroupID, long?LanguageID) { GetReport operation = new GetReport(); operation.ID = ID; operation.ReportGroupID = ReportGroupID; if (LanguageID.HasValue) { operation.LangID = LanguageID; } 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 <Report>)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 })); } }
public IActionResult LoadReports(long?groupID, long?reportID, long?LanguageID) { GetGroupRelation operation = new GetGroupRelation(); GetReport getRelatedReport = new GetReport(); operation.GroupID = groupID; GetReport getUnRelatedReport = new GetReport(); if (LanguageID.HasValue) { operation.LangID = LanguageID; getRelatedReport.LangID = LanguageID; getUnRelatedReport.LangID = LanguageID; } else { operation.LangID = 1; getUnRelatedReport.LangID = 1; getRelatedReport.LangID = 1; } var Reports = (List <Report>)getRelatedReport.QueryAsync().Result; var result = operation.QueryAsync().Result; var reports = (List <GroupRelation>)result; List <Report> returnedRelatedReports = new List <Report>(); List <Report> returnedUnRelatedReports = new List <Report>(); var groups = (List <GroupRelation>)result; if (groups.Count > 0) { foreach (var item in Reports) { foreach (var group in groups) { if (group.RefrenceID == item.ID) { bool alreadyExist = returnedRelatedReports.Contains(item); bool alreadyExistInSecondList = returnedUnRelatedReports.Contains(item); if (!alreadyExist && !alreadyExistInSecondList) { item.ReportRelationID = group.ID.Value; returnedRelatedReports.Add(item); } else { item.ReportRelationID = group.ID.Value; returnedRelatedReports.Add(item); returnedUnRelatedReports.Remove(item); } } else { bool alreadyExist = returnedUnRelatedReports.Contains(item); bool alreadyExistInFirstList = returnedRelatedReports.Contains(item); if (!alreadyExist && !alreadyExistInFirstList) { item.ReportRelationID = group.ID.Value; returnedUnRelatedReports.Add(item); } } } } } else { returnedUnRelatedReports = Reports; } if (result is ValidationsOutput) { return(Ok(new ApiResult <List <ValidationItem> >() { Data = ((ValidationsOutput)result).Errors })); } else { return(Ok(new { RelatedReports = returnedRelatedReports, UnRelatedReports = returnedUnRelatedReports })); } }