Esempio n. 1
0
        public static Respone <T> Return(T data, IBorrowable <T> item, IBorrower <T> client)
        {
            Respone <T> feedback = new Respone <T>();

            try
            {
                if (!item.ReturnMe(data))
                {
                    feedback.IsWorking = false;
                    feedback.Message   = "Failed: invalid data";
                    return(feedback);
                }
                if (!client.ReturnAt(data))
                {
                    item.BorrowMe(data);

                    feedback.IsWorking = false;
                    feedback.Message   = "Failed: invalid data";
                    return(feedback);
                }

                feedback.IsWorking = true;
                feedback.Message   = $"{item.ToString()}\nreturned succesfully by\n{client.ToString()}";
            }
            catch (Exception e)
            {
                feedback.IsWorking = false;
                feedback.Message   = e.Message;
            }

            return(feedback);
        }
Esempio n. 2
0
        public static Respone <T> Borrow(T data, IBorrowable <T> item, IBorrower <T> client)
        {
            Respone <T> feedback = new Respone <T>();

            // check if item can be borrowed and client can borrow it
            if (!client.IsCanBorrow)
            {
                feedback.IsWorking = false;
                feedback.Message   = "Client can't borrow any item";
                return(feedback);
            }
            if (!item.IsAvailable)
            {
                feedback.IsWorking = false;
                feedback.Message   = "The item is not available";
                return(feedback);
            }
            if (!client.IsCanBorrowAt(data))
            {
                feedback.IsWorking = false;
                feedback.Message   = "Client can't borrow this item";
                return(feedback);
            }

            // update borrowing-data
            data.ItemDescription = item.ToString();
            data.BorrowedSinse   = DateTime.Now;

            // try borrow
            try
            {
                if (!item.BorrowMe(data))
                {
                    feedback.IsWorking = false;
                    feedback.Message   = "Failed";
                    return(feedback);
                }

                if (!client.BorrowAt(data))
                {
                    feedback.IsWorking = false;
                    feedback.Message   = "Failed";

                    item.ReturnMe(data);

                    return(feedback);
                }

                feedback.Data      = data;
                feedback.IsWorking = true;
                feedback.Message   = $"{item.ToString()}\nborrowed succesfully by\n{client.ToString()}";;
            }
            catch (Exception e)
            {
                feedback.IsWorking = false;
                feedback.Message   = e.Message;
            }

            return(feedback);
        }
 protected override void PickUpBorrowedItem(IBorrowable itemToBorrow)
 {
     if (borrowedItems.Count < MAX_BORROW)
         borrowedItems.Add((IBorrowable)itemToBorrow);
     else
     {
         throw new Exception("Borrow Limit Reached");
     }
 }
        protected override void PickUpBorrowedItem(IBorrowable itemToAdd)
        {
            if (!itemToAdd.GetType().Equals(typeof(LibrarySystem.Areas.Inventory.Models.Book.Copy))) throw new Exception("You must be staff to borrow this item");

            if (borrowedItems.Count < MAX_BORROW)
            {
                borrowedItems.Add(itemToAdd);
            }
            else
            {
                throw new Exception("Borrow Limit Reached");
            }
        }