public IHttpActionResult TransferStoredItems(string boxFromID, string boxToID, string userID, [FromBody] List <Client_ItemPK_TransferQuantity_IsRestored> list) { if (new ValidationBeforeCommandDAO().IsValidUser(userID, "Staff")) { BoxDAO boxDAO = new BoxDAO(); StoringDAO storingDAO = new StoringDAO(); TransferringSession transferringSession = null; try { if (boxFromID != boxToID) { // lấy inBoxQuantity Box boxFrom = boxDAO.GetBoxByBoxID(boxFromID); StoredBox sBoxFrom = boxDAO.GetStoredBoxbyBoxPK(boxFrom.BoxPK); Box boxTo = boxDAO.GetBoxByBoxID(boxToID); StoredBox sBoxTo = boxDAO.GetStoredBoxbyBoxPK(boxTo.BoxPK); if (sBoxFrom == null) { return(Content(HttpStatusCode.Conflict, "BOX KHÔNG HỢP LỆ!")); } List <Entry> entries = (from e in db.Entries where e.StoredBoxPK == sBoxFrom.StoredBoxPK select e).ToList(); foreach (var item in list) { List <Entry> tempEntries = new List <Entry>(); foreach (var entry in entries) { if (entry.ItemPK == item.ItemPK) { tempEntries.Add(entry); } } if (item.TransferQuantity > storingDAO.EntriesQuantity(tempEntries)) { return(Content(HttpStatusCode.Conflict, "SỐ LƯỢNG KHÔNG HỢP LỆ!")); } } transferringSession = storingDAO.CreateTransferingSession(boxFromID, boxToID, userID); storingDAO.CreateInAndOutEntry(list, sBoxFrom, sBoxTo, transferringSession); } else { return(Content(HttpStatusCode.Conflict, "BOX KHÔNG HỢP LỆ!")); } return(Content(HttpStatusCode.OK, "TRANSFER THÀNH CÔNG!")); } catch (Exception e) { if (transferringSession != null) { storingDAO.DeleteTransferingSession(transferringSession.TransferingSessionPK); } return(Content(HttpStatusCode.Conflict, new Content_InnerException(e).InnerMessage())); } } else { return(Content(HttpStatusCode.Conflict, "BẠN KHÔNG CÓ QUYỀN ĐỂ THỰC HIỆN VIỆC NÀY")); } }