public void ReturnBook(HardCopy copy) { var history = new BookLeaningHistory { HardCopyId = copy.Id, UserLeantTo = copy.UserLeantTo.Value, LeantDate = copy.LeantDate.Value, ReturnedDate = DateTime.Now }; _libraryContext.BookLeaningHistories.InsertOnSubmit(history); _libraryContext.SubmitChanges(); }
// Borrow (return string with message (user + item) if it's working) public Respone <string> Return(HardCopy data) { Respone <string> feedback; // find user id in borrowed items HardCopy tempdata; if (!_borrowedHardCopies.TryGetValue(data.CopyId, out tempdata)) { feedback = new Respone <string>(); feedback.IsWorking = false; feedback.Message = "Missing or invalid data"; feedback.WrongDataType = WrongData.CopyId; return(feedback); } else { data.BorrowerId = tempdata.BorrowerId; } User user; AbstractItem item; feedback = CheckAndSearchItemAndUser(data, out user, out item); if (!feedback.IsWorking) { return(feedback); } else { Respone <HardCopy> tempFeedback = BorrowReturnOperations <HardCopy> .Return(data, item, user); if (!tempFeedback.IsWorking) { feedback.IsWorking = false; feedback.Message = tempFeedback.Message; } else { // remove hard-copy data from borrowed-dictionary _borrowedHardCopies.Remove(tempFeedback.Data.CopyId); feedback.Data = tempFeedback.Message; } return(feedback); } }
// Get input from text-boxes private void GetInput() { _input = new HardCopy(); int temp; if (int.TryParse(userIdTbx.Text, out temp)) { _input.BorrowerId = temp; } if (int.TryParse(itemIdTbx.Text, out temp)) { _input.ItemId = temp; } Guid tempGuid; if (Guid.TryParse(copyIdTbx.Text, out tempGuid)) { _input.CopyId = tempGuid; } }
// Borrow (return string with message (user + item) if it's working) public Respone <string> Borrow(HardCopy data) { User user; AbstractItem item; Respone <string> feedback = CheckAndSearchItemAndUser(data, out user, out item); if (!feedback.IsWorking) { return(feedback); } else { Respone <HardCopy> tempFeedback = BorrowReturnOperations <HardCopy> .Borrow(data, item, user); if (!tempFeedback.IsWorking) { feedback.IsWorking = false; feedback.Message = tempFeedback.Message; } else { // add hard-copy data to borrowed-dictionary if (_borrowedHardCopies.ContainsKey(tempFeedback.Data.CopyId)) { _borrowedHardCopies[tempFeedback.Data.CopyId] = tempFeedback.Data; } else { _borrowedHardCopies.Add(tempFeedback.Data.CopyId, tempFeedback.Data); } feedback.Data = tempFeedback.Message; } return(feedback); } }
// check data and search item and user private Respone <string> CheckAndSearchItemAndUser(HardCopy data, out User user, out AbstractItem item) { Respone <string> feedback = new Respone <string>(); user = null; item = null; // check if current user can do it (reader can't borrow by himself) if (_users.CurrentUser != null && _users.CurrentUser.Access == UserType.Reader) { feedback.IsWorking = false; feedback.Message = "For borrow or return item, please ask librarian for help"; feedback.WrongDataType = WrongData.UserType; return(feedback); } // check if all data exist in input if (data.ItemId == null || data.CopyId == null || data.BorrowerId == null) { feedback.IsWorking = false; feedback.Message = "Missing or invalid data"; if (data.ItemId == null) { feedback.WrongDataType = WrongData.ItemId; } else if (data.CopyId == null) { feedback.WrongDataType = WrongData.CopyId; } else { feedback.WrongDataType = WrongData.UserId; } return(feedback); } // try find item and user user = _users.GetUser(data.BorrowerId); if (user == null || !_itemsById.TryGetValue(data.ItemId, out item)) { feedback.IsWorking = false; if (user == null) { feedback.Message = "User not found"; feedback.WrongDataType = WrongData.UserId; } else { feedback.Message = "Item not found"; feedback.WrongDataType = WrongData.ItemId; } return(feedback); } else { feedback.IsWorking = true; return(feedback); } }