// Old Reservation code to show Popup , assign section color and Show reservation for a Table. //private void CheckReservations(AISModels.FloorTable table, DateTime? startTime, DateTime? endTime) //{ // var design = table.TableDesign; // var TableName = this.GetMatchedTagsFromHtml(design, String.Format("<h3>(.*?)</h3>")).FirstOrDefault(); // if (!string.IsNullOrEmpty(TableName)) // { // Reservation reservation = null; // if (startTime.HasValue) // { // if (startTime.HasValue && endTime.HasValue) // { // reservation = table.Reservations.Where(r => r.TimeForm <= startTime.Value && r.TimeTo >= endTime.Value).FirstOrDefault(); // } // else // { // var start = startTime.Value.Date.AddTicks(DateTime.UtcNow.TimeOfDay.Ticks); // reservation = table.Reservations.Where(r => r.TimeForm <= start && r.TimeTo >= start).FirstOrDefault(); // } // } // else // { // reservation = table.Reservations.Where(r => r.TimeForm <= DateTime.UtcNow && r.TimeTo >= DateTime.UtcNow).FirstOrDefault(); // } // if (reservation != null) // { // //table.TableDesign = design.Replace(TableName, TableName + "<img alt=\"\" src=\"/images/red-s.png\" class=\"table-img\">"); // design = design.Replace(TableName, TableName + "<img alt=\"\" src=\"/images/red-s.png\" class=\"table-img\">"); // var regex = new Regex(@"([\w-]+)\s*:\s*([^;]+)"); // var match = regex.Match(GetMatchedTagsFromHtml(design, String.Format("<div[^>]*?class=([\"'])[^>]*{0}[^>]*\\1[^>]*>", "table-main")).FirstOrDefault()); // while (match.Success) // { // var key = match.Groups[1].Value; // var value = match.Groups[2].Value; // if (key == "top") // { // design = design.Replace(value, reservation.TablePositionTop); // } // if (key == "left") // { // design = design.Replace(value, reservation.TablePositionLeft); // } // match = match.NextMatch(); // } // var popup = this.RenderPartialViewToString("ReservationPopupPartial", reservation); // StringBuilder designer = new StringBuilder(); // designer.Append(design.Substring(0, design.Length - 6)); // designer.Append(popup + "</div>"); // table.TableDesign = designer.ToString(); // } // else // { // table.TableDesign = design.Replace(TableName, TableName + "<img alt=\"\" src=\"/images/green-a.png\" class=\"table-img\">"); // } // } //} private void CheckReservations(AISModels.FloorTable table, DateTime? startTime, DateTime? endTime, int? shiftId, out int coverCount) { coverCount = 0; var design = table.TableDesign; var TableName = this.GetMatchedTagsFromHtml(design, String.Format("<h3(.*?)>(.*?)</h3>")).FirstOrDefault(); if (!string.IsNullOrEmpty(TableName)) { IEnumerable<Reservation> reservation = table.Reservations.Where(r => !r.IsDeleted && r.FloorPlanId == table.FloorPlanId).AsEnumerable(); if (!shiftId.HasValue) { if (startTime.HasValue) { if (startTime.HasValue && endTime.HasValue) { reservation = reservation.Where(r => r.TimeForm <= startTime.Value && r.TimeTo >= endTime.Value).AsEnumerable(); } else { var start = startTime.Value.Date.AddTicks(DateTime.UtcNow.TimeOfDay.Ticks); reservation = reservation.Where(r => r.TimeForm <= start && r.TimeTo >= start).AsEnumerable(); } } else { reservation = reservation.Where(r => r.TimeForm <= DateTime.UtcNow && r.TimeTo >= DateTime.UtcNow).AsEnumerable(); } } else { if (startTime.HasValue) { reservation = reservation.Where(r => r.ReservationDate == startTime.Value.Date).AsEnumerable(); } else { reservation = reservation.Where(r => r.ReservationDate == DateTime.UtcNow.Date).AsEnumerable(); } if (shiftId.Value != 0) { reservation = reservation.Where(r => r.FoodMenuShiftId == shiftId.Value).AsEnumerable(); } } if (reservation.Count() > 0) { //table.TableDesign = design.Replace(TableName, TableName + "<img alt=\"\" src=\"/images/red-s.png\" class=\"table-img\">"); design = design.Replace(TableName, TableName + "<img alt=\"\" src=\"/images/red-s.png\" class=\"table-img\">"); //var regex = new Regex(@"([\w-]+)\s*:\s*([^;]+)"); //var match = regex.Match(GetMatchedTagsFromHtml(design, String.Format("<div[^>]*?class=([\"'])[^>]*{0}[^>]*\\1[^>]*>", "table-main")).FirstOrDefault()); //while (match.Success) //{ // var key = match.Groups[1].Value; // var value = match.Groups[2].Value; // if (key == "top") // { // design = design.Replace(value, reservation.TablePositionTop); // } // if (key == "left") // { // design = design.Replace(value, reservation.TablePositionLeft); // } // match = match.NextMatch(); //} var popup = this.RenderPartialViewToString("ReservationListPartial", reservation); StringBuilder designer = new StringBuilder(); designer.Append(design.Substring(0, design.LastIndexOf("</div>"))); designer.Append(popup + "</div>"); table.TableDesign = designer.ToString(); coverCount = reservation.Sum(r => r.Covers); } else { table.TableDesign = design.Replace(TableName, TableName + "<img alt=\"\" src=\"/images/green-a.png\" class=\"table-img\">"); } } }
private void ChangeChairColor(AISModels.FloorTable table) { var design = table.TableDesign; var section = table.Section; if (section != null) { var sectionColor = section.Color; var seats = this.GetMatchedTagsFromHtml(design, String.Format("<div[^>]*?class=([\"'])[^>]*{0}[^>]*\\1[^>]*>(\r*?\n*?)(.*?)</div>", "seat ")); foreach (var seat in seats) { if (seat.IndexOf("style") > 0) { design = design.Replace(seat, seat.Replace("style=\"", "style=\"background:" + sectionColor + ";")); } else { design = design.Replace(seat, seat.Replace("<div", "<div style=\"background:" + sectionColor + ";\"")); } } table.TableDesign = design; } }