diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs index 3832c14..0e9036d 100644 --- a/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs +++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs @@ -1528,9 +1528,9 @@ namespace EasyBL.WEBAPP.ShowEasy } //展覽列表 - public List QueryExhibitions(string sLanguageID, string sServiceID) + public List QueryExhibitions(string sLanguageID, string sServiceID,string sYear, string sMonth) { - List saExhibition = new List(); + List saReturnExhibition = new List(); var db = SugarBase.GetIntance(); try { @@ -1546,20 +1546,92 @@ namespace EasyBL.WEBAPP.ShowEasy if (objONSiteBaseInfo.ExhibitionID != "[]" && objONSiteBaseInfo.ExhibitionID != "") { + if (!string.IsNullOrEmpty(sYear) && string.IsNullOrEmpty(sMonth)) + { + + var saExhibition2 = db.Queryable((t1, t2) => + new object[] { + JoinType.Inner, t1.OrgID == t2.OrgID && t1.ExhibitionID == t2.ExhibitionID && t1.LanguageID==t2.LanguageID + }) + .Where((t1, t2) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID) && t2.Year == sYear) + + .Select((t1, t2) => new ArgumentDTO + { + ArgumentID = t1.ExhibitionID, + ArgumentValue = t1.ExhibitionName + }) + .ToList(); + + //防止重複 + if (saExhibition2.Count() > 0) + { + saReturnExhibition.Add(saExhibition2[0]); + foreach (var ExhibitionYearModel in saExhibition2) + { + + var Flag = saReturnExhibition.Where(x => x.ArgumentID == ExhibitionYearModel.ArgumentID).Single(); + if (Flag == null) + { + saReturnExhibition.Add(ExhibitionYearModel); + } + } + } - saExhibition = db.Queryable - () - .Where((t1) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID)) - .Select((t1) => new ArgumentDTO - { - ArgumentID=t1.ExhibitionID, - ArgumentValue = t1.ExhibitionName - }) - .ToList(); - + } + else if (!string.IsNullOrEmpty(sYear) && !string.IsNullOrEmpty(sMonth)) + { + + var rMonthStart = new DateTime(); + var rMonthEnd = new DateTime(); + rMonthStart = SqlFunc.ToDate(sYear + "/" + sMonth.Split('-')[0] + "/01"); + rMonthEnd = SqlFunc.ToDate(sYear + "/" + sMonth.Split('-')[1] + "/01").AddMonths(1).AddDays(-1); + var saExhibition3 = db.Queryable((t1, t2) => + new object[] { + JoinType.Inner, t1.OrgID == t2.OrgID && t1.ExhibitionID == t2.ExhibitionID && t1.LanguageID==t2.LanguageID + }) + .Where((t1, t2) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID) && t2.Year == sYear) + .WhereIF(!string.IsNullOrEmpty(sMonth), (t1, t2) => t2.EndDate >= SqlFunc.ToDate(rMonthStart)) + .WhereIF(!string.IsNullOrEmpty(sMonth), (t1, t2) => t2.StartDate <= SqlFunc.ToDate(rMonthEnd)) + .WhereIF(!string.IsNullOrEmpty(sMonth), (t1, t2) => t2.StartDate <= SqlFunc.ToDate(rMonthEnd) && t2.EndDate >= SqlFunc.ToDate(rMonthStart)) + .Select((t1, t2) => new ArgumentDTO + { + ArgumentID = t1.ExhibitionID, + ArgumentValue = t1.ExhibitionName + }) + .ToList(); + + + //防止重複 + if (saExhibition3.Count() > 0) + { + saReturnExhibition.Add(saExhibition3[0]); + foreach (var ExhibitionYearModel in saExhibition3) + { + + var Flag = saReturnExhibition.Where(x => x.ArgumentID == ExhibitionYearModel.ArgumentID).Single(); + if (Flag == null) + { + saReturnExhibition.Add(ExhibitionYearModel); + } + } + } + } + else { + var saExhibition = db.Queryable() + .Where((t1) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID)) + .Select((t1) => new ArgumentDTO + { + ArgumentID = t1.ExhibitionID, + ArgumentValue = t1.ExhibitionName + }) + .ToList(); + + + saReturnExhibition = saExhibition; + } } - return saExhibition; + return saReturnExhibition; } while (false); @@ -1569,7 +1641,7 @@ namespace EasyBL.WEBAPP.ShowEasy } - return saExhibition; + return saReturnExhibition; } diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs index 46c4cd5..ec7fb0a 100644 --- a/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs +++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs @@ -684,7 +684,7 @@ namespace EasyBL.WEBAPP.ShowEasy /// /// /// - public HttpResponseMessage QueryExhibitions(string sLanguageID, string ServiceID) + public HttpResponseMessage QueryExhibitions(string sLanguageID, string ServiceID,string Year, string Month) { SuccessResponseMessage srm = null; string sError = null; @@ -697,7 +697,7 @@ namespace EasyBL.WEBAPP.ShowEasy sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE; } ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService(); - var rsResult = em_qry.QueryExhibitions(sLanguageID, ServiceID); + var rsResult = em_qry.QueryExhibitions(sLanguageID, ServiceID, Year, Month); srm = new SuccessResponseMessage(null, null); srm.DATA.Add(BLWording.REL, rsResult); diff --git a/EuroTran/WebApp/Controllers/OnsiteController.cs b/EuroTran/WebApp/Controllers/OnsiteController.cs index daae390..bfba810 100644 --- a/EuroTran/WebApp/Controllers/OnsiteController.cs +++ b/EuroTran/WebApp/Controllers/OnsiteController.cs @@ -99,7 +99,7 @@ namespace WebApp.Controllers [HttpGet] public HttpResponseMessage Exhibitions(string Lang,string ServiceID,string Year,string Month) { - return new OnsiteService().QueryExhibitions(Lang, ServiceID); + return new OnsiteService().QueryExhibitions(Lang, ServiceID, Year, Month); } //服務細項目