// שליפת מודעות ללוח לפי תאריך וקוד public static List <PanelDTO> GetPanelAdByBoardAndDate(int boardid, System.DateTime date) { using (BoardDB3Entities db2 = new BoardDB3Entities()) { panel = PanelDTO.ListToDTO(db2.PanelAds.Where(x => x.BoardId == boardid && x.PanelDate == date).ToList()); return(panel); } }
public ConceptDatasetQueryDTO(string queryId, string conceptId) { var res = new ResourceRef(); if (Urn.TryParse(conceptId, out var urn)) { res.UniversalId = urn.Value; } else { res.Id = new Guid(conceptId); } var panel = new PanelDTO { SubPanels = new List <SubPanelDTO> { new SubPanelDTO { PanelItems = new List <PanelItemDTO> { new PanelItemDTO { Resource = res } } } } }; QueryId = queryId; Panels = new List <PanelDTO> { panel }; PanelFilters = new List <PanelFilterDTO>(); }
//שליפת לוחות לפי כתובת ותאריך public static List <PanelDTO> GetPanelAdByAddressAndDate(string street, string city, System.DateTime date) { var newpanel = new List <PanelDTO>(); string[] streetArr = street.Split(','); List <BillboardDTO> billboardlist = BillboardBLL.GetBillBoardByCityAndArrStreet(city, streetArr); List <PanelDTO> panellist = PanelDTO.ListToDTO(db.PanelAds.Where(x => x.PanelDate == date).ToList()); if (panellist.Count == 0 || billboardlist.Count == 0) { return(null); } foreach (var item in billboardlist) { foreach (var item2 in panellist) { if (item.BoardId == item2.BoardId) { newpanel.Add(item2); } } } if (newpanel.Count == 0) { return(null); } var orderedList = newpanel.OrderBy(x => x.PanelLineStart).ThenBy(x => x.PanelColumnStart).ToList(); var emptyAdsList = new List <PanelDTO>(); int row = 0, col = 0; for (int i = 0; i < 8; i++) { bool rowIsFull = false; int columns = 0; var thisRow = orderedList.Where(a => a.PanelLineStart == i || (a.PanelLineStart <= i && a.PanelLineEnd >= i)) .OrderBy(x => x.PanelColumnStart).ThenBy(x => x.PanelLineStart).ToList(); if (thisRow.Count == 0) { for (int j = 0; j < 4; j++) { emptyAdsList.Add(new PanelDTO() { AdId = -1, BoardId = orderedList.FirstOrDefault().BoardId, PanelLineStart = i, PanelLineEnd = i, PanelColumnStart = j, PanelColumnEnd = j }); } continue; } // check if need to add empty ads in the beginning of the row var firstColumn = thisRow.Min(a => a.PanelColumnStart); for (int j = 0; j < firstColumn; j++) { emptyAdsList.Add(new PanelDTO() { AdId = -1, BoardId = orderedList.FirstOrDefault().BoardId, PanelLineStart = i, PanelLineEnd = i, PanelColumnStart = j, PanelColumnEnd = j }); } //check if need to add empty ads in the middle of the row for (int j = 0; j < thisRow.Count; j++) { columns = thisRow[j].PanelColumnEnd; if (j < thisRow.Count - 1) { int nextColumnStart = thisRow[j + 1].PanelColumnStart; if (columns + 1 < nextColumnStart) { for (int k = columns + 1; k < nextColumnStart; k++) { emptyAdsList.Add(new PanelDTO() { AdId = -1, BoardId = orderedList.FirstOrDefault().BoardId, PanelLineStart = i, PanelLineEnd = i, PanelColumnStart = k, PanelColumnEnd = k }); } } } if (columns == 3) { rowIsFull = true; break; } } //check if need to add empty ads in the end of the row if (!rowIsFull) { for (int k = columns + 1; k < 4; k++) { emptyAdsList.Add(new PanelDTO() { AdId = -1, BoardId = orderedList.FirstOrDefault().BoardId, PanelLineStart = i, PanelLineEnd = i, PanelColumnStart = k, PanelColumnEnd = k }); } } } orderedList.AddRange(emptyAdsList); return(orderedList.OrderBy(x => x.PanelLineStart).ThenBy(x => x.PanelColumnStart).ToList()); }