private List <BookEntryTicketDetail> Get_List_Ticket_Detail_Standardized_Quantity(string[] product, int[] qty) { List <BookEntryTicketDetail> listticketdetail = new List <BookEntryTicketDetail>(); for (int i = 0; i < product.Length; i++) { BookEntryTicketDetail ticketdetail = new BookEntryTicketDetail() { BookId = product[i], Count = qty[i] }; listticketdetail.Add(ticketdetail); } // tao ra 1 list product tu 2 mang product va quantity var newlistticketdetail = listticketdetail.GroupBy(x => x.BookId) .Select(x => new { bookid = x.Key, count = x.Sum(y => y.Count) }).ToList(); var listticketdetail_update = newlistticketdetail.Select(x => new BookEntryTicketDetail { BookId = x.bookid, Count = x.count }).ToList(); return(listticketdetail_update); }
public IActionResult Create(string[] product, int[] qty, string[] category) { BookEntryTicket ticket = new BookEntryTicket(); if (product.Contains(null) || qty.Contains(0)) { ModelState.AddModelError("", "Vui lòng chọn sách và nhập số lượng đầy đủ"); Add_SelectList_For_ViewBag(); return(View(ticket)); } try { List <BookEntryTicketDetail> ticketDetails = new List <BookEntryTicketDetail>(); var listticketdetail_update = Get_List_Ticket_Detail_Standardized_Quantity(product, qty); for (int i = 0; i < listticketdetail_update.Count; i++) { var obj = new BookEntryTicketDetail { BookEntryTicketId = ticket.Id, BookId = listticketdetail_update[i].BookId, Count = listticketdetail_update[i].Count, Book = _db.Books.AsNoTracking().Include(x => x.Category).FirstOrDefault(x => x.Id == product[i]), }; obj.Book.Category.Books = null; ticketDetails.Add(obj); } ticket.BookEntryTicketDetail = ticketDetails; ticket.Id = Guid.NewGuid().ToString(); ticket.DateEntry = DateTime.Now; check_rule_1(ticket); HttpContext.Session.SetObject("ticket", ticket); return(RedirectToAction("TicketDemo")); } catch (Exception e) { ModelState.AddModelError("", e.Message); Add_SelectList_For_ViewBag(); return(View(ticket)); } }