コード例 #1
0
ファイル: LoanAccess.cs プロジェクト: rokn/HackBulgaria
        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();
        }
コード例 #2
0
ファイル: LibraryManager.cs プロジェクト: grm-bina/LibProject
        // 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);
            }
        }
コード例 #3
0
ファイル: Borrow.xaml.cs プロジェクト: grm-bina/LibProject
        // 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;
            }
        }
コード例 #4
0
ファイル: LibraryManager.cs プロジェクト: grm-bina/LibProject
        // 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);
            }
        }
コード例 #5
0
ファイル: LibraryManager.cs プロジェクト: grm-bina/LibProject
        // 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);
            }
        }