public async Task GivenBorrowServiceWhenBorrowIdIsNullThenReturnBorrowNull()
        {
            int?            borrowId        = null;
            BorrowViewModel borrowViewModel = await this._borrowService.Get(borrowId);

            Assert.Null(borrowViewModel);
        }
        public BorrowViewModel GetBorrowsByNationalCode([FromQuery] string nationalCode)
        {
            var user = _unitOfWork.Users.Find(u => u.NationalCode == nationalCode).FirstOrDefault();

            if (user == null)
            {
                Response.StatusCode = 400;
                return(null);
            }
            var model  = _unitOfWork.Borrows.GetBookBorrowsByUserId(user.Id);
            var result = new BorrowViewModel
            {
                FatherName   = user.FatherName,
                FirstName    = user.FirstName,
                LastName     = user.LastName,
                NationalCode = user.NationalCode
            };
            var list = new List <BookViewModel>();

            foreach (var bookBorrow in model)
            {
                list.Add(_mapper.Map <Book, BookViewModel>(bookBorrow.Book));
            }

            result.Books = list;
            return(result);
        }
        public async Task <IActionResult> Borrow(uint?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var book = await _context.Books.FindAsync(id);

            if (book == null)
            {
                return(NotFound());
            }
            if (book.BookStatusId != 0)
            {
                return(NotFound());
            }
            var UserResult = _userManager.GetUserAsync(User).Result;
            var borrow     = new BorrowViewModel
            {
                BookId   = book.BookId,
                BookName = book.BookName,

                UserId   = UserResult.Id,
                UUID     = UserResult.UUID,
                UserName = UserResult.UserName,
            };

            return(View(borrow));
        }
Exemplo n.º 4
0
        public static void AddBooking(BorrowViewModel borrowViewModel, ApplicationDbContext context)
        {
            var   books   = context.Books.Where(b => borrowViewModel.MyBooks.Contains(b.Isbn)).ToList();
            short counter = 0;

            foreach (var book in books)
            {
                book.NumberInStock--;

                var borrows = new Borrow
                {
                    BorrowerType = borrowViewModel.Borrow.BorrowerType,
                    BorrowerId   = borrowViewModel.Borrow.BorrowerId,
                    Name         = borrowViewModel.Borrow.Name,
                    Isbn         = borrowViewModel.MyBooks[counter],
                    BorrowDate   = DateTime.Today
                };

                var entry = context.Entry(borrows);
                if (entry.State == EntityState.Detached)
                {
                    context.Borrows.Attach(borrows);
                }

                counter++;
                context.Borrows.Add(borrows);
            }

            context.SaveChanges();
        }
        public IActionResult Borrow(BorrowViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(View());
            }

            var borrower = this.context.Borrowers.Find(model.BorrowerId);
            int movieId  = Convert.ToInt32(this.RouteData.Values["id"]);
            var movie    = this.context.Movies.Find(movieId);

            if (borrower == null || movie == null)
            {
                return(View());
            }

            var borrowedMovie = new BorrowerMovie()
            {
                MovieId    = movie.Id,
                BorrowerId = borrower.Id,
                StartDate  = model.StartDate,
                EndDate    = model.EndDate
            };

            this.context.BorrowedMovies.Add(borrowedMovie);
            this.context.SaveChanges();

            return(RedirectToPage("/Index"));
        }
        public IActionResult Borrow(int id)
        {
            if (id == 0)
            {
                return(this.NotFound());
            }

            var movies = this.context.Movies.Find(id);

            if (movies == null)
            {
                return(this.NotFound());
            }

            var model = new BorrowViewModel()
            {
                Borrowers = this.context.Borrowers
                            .Select(b => new SelectListItem()
                {
                    Text  = b.Name,
                    Value = b.Id.ToString()
                })
                            .ToList(),
                StartDate = DateTime.Now
            };

            return(this.View(model));
        }
Exemplo n.º 7
0
        // GET: BorrowHistories/Create
        public ActionResult Create()
        {
            BorrowViewModel borrowViewModel = new BorrowViewModel();

            borrowViewModel.Students = StudentService.GetStudentList();
            borrowViewModel.Books    = BookServices.GetBooksList();

            return(View(borrowViewModel));
        }
Exemplo n.º 8
0
        public ActionResult Borrow(int bookId)
        {
            var book      = _bookRepository.GetBookById(bookId);
            var bookModel = new BorrowViewModel
            {
                Id    = book.Id,
                Title = book.Title
            };

            return(View(bookModel));
        }
        public IActionResult Borrow(int id)
        {
            var  userId          = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
            bool isSuccessful    = _libraryService.Borrow(userId, id);
            var  book            = _libraryService.getBooks().Single(item => item.id == id);//itereaza prin toate item-urile si returneaza pe singurul care are acel id
            var  borrowViewModel = new BorrowViewModel
            {
                IsSuccessful = isSuccessful,
                BookName     = book.title
            };

            return(View(borrowViewModel));
        }
Exemplo n.º 10
0
        public PartialViewResult Borrow(BorrowViewModel bookModel)
        {
            var reader = new Reader(bookModel.Reader);

            _bookRepository.BorrowABook(bookModel.Id, reader, bookModel.Days);

            var book  = _bookRepository.GetBookById(bookModel.Id);
            var books = new List <Book> {
                book
            };

            return(PartialView("BorrowResult", books));
        }
        // GET: /BorrowItem/
        public ActionResult Index(string keyword = "", int page = 1)
        {
            var borrowitems = db.borrowItems.Include(b => b.book).Include(b => b.reader);

            if (!string.IsNullOrEmpty(keyword))
            {
                borrowitems = borrowitems.Where(o => o.book.bookName.Contains(keyword) || o.reader.readerName.Contains(keyword));
            }
            var borrowItemVideMode = new BorrowViewModel();

            borrowItemVideMode.BorrowItems = borrowitems.Where(b => b.status == Status.在借).OrderByDescending(p => p.burrowTime).ToPagedList(page, 5);
            return(View(borrowItemVideMode));
        }
Exemplo n.º 12
0
        private async Task <BorrowViewModel> GetBorrowModelAsync(int?id)
        {
            BorrowViewModel borrowViewModel = await this._borrowService.Get(id);

            if (borrowViewModel == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            borrowViewModel.ProductOwner = this._userManager.FindUserName(borrowViewModel.ProductOwnerUserIdentity);
            borrowViewModel.BorrowerName = this._userManager.FindUserName(borrowViewModel.BorrowerUserIdentity);

            return(borrowViewModel);
        }
        public async Task GivenBorrowServiceWhenCreateWithDataValidThenCreateNewBorrow()
        {
            int             productId = 0;
            BorrowViewModel model     = FakeBuilder.GetBorrowViewModelFake(0, productId);

            this._mockUserManager.Setup(mock => mock.FindUserDomain(It.IsAny <ClaimsPrincipal>()))
            .Returns(Task.FromResult(new User(Guid.NewGuid().ToString())));
            this._mockProductRepository.Setup(mock => mock.Get(It.IsAny <int>()))
            .Returns(Task.FromResult(FakeBuilder.GetProductFake()));
            await this._borrowService.Create(new ClaimsPrincipal(), model);

            this._mockBorrowRepository.Verify(mock => mock.Save(It.IsAny <Borrow>()), Times.Once);
            Assert.True(true);
        }
Exemplo n.º 14
0
 public ActionResult Create(BorrowViewModel borrow)
 {
     if (ModelState.IsValid)
     {
         var user = _context.GetUserData();
         borrow.Id     = 0;
         borrow.UserId = user.Id;
         var borrowModel = Mapper.Map <BorrowViewModel, Borrow>(borrow);
         _borrowAppRepository.Add(borrowModel);
         _gameAppRepository.BorrowGame(borrowModel.GameId);
         return(RedirectToAction("Index"));
     }
     return(View());
 }
Exemplo n.º 15
0
        public ActionResult AddRecord(BorrowViewModel borrowViewModel)
        {
            // Check if borrower has books in his/her possession.
            var borrowersId = borrowViewModel.Borrow.BorrowerId;
            var isbn        = borrowViewModel.Borrow.Isbn;
            var checkBook   = _context.Borrows
                              .SingleOrDefault(b => b.IsReturned == false && b.BorrowerId == borrowersId && b.Isbn == isbn);

            if (checkBook != null)
            {
                var model = new BorrowViewModel((byte)borrowViewModel.MyBooks.Length)
                {
                    BorrowTypes = _context.BorrowTypes.ToList()
                };

                var message =
                    $@"Borrower has {isbn} book in his/her possession already.";
                ModelState.AddModelError(string.Empty, message);
                return(View("AddRecord", model));
            }

            var validator = _context.Borrows
                            .Where(b => b.BorrowerId == borrowViewModel.Borrow.BorrowerId && b.IsReturned == false);
            var settings = _context.Settings.Single(s => s.Id == 1);

            if (validator.Count() >= settings.MaximumNumberOfBooksPerBorrow)
            {
                var model = new BorrowViewModel((byte)borrowViewModel.MyBooks.Length)
                {
                    BorrowTypes = _context.BorrowTypes.ToList()
                };

                var message =
                    string.Format(
                        @"Maximum number of books exceeded, the borrower has {0} books in his/her possession already.",
                        validator.Count());
                ModelState.AddModelError(string.Empty, message);
                return(View("AddRecord", model));
            }


            Booking.AddBooking(borrowViewModel, _context);

            var processBorrowers = new ProcessLendingViewModel(_context);

            ViewBag.Borrowers = _context.Borrows.Where(b => b.IsReturned == false).ToList().Count();

            return(View("Index", processBorrowers.GetLendingDetails()));
        }
Exemplo n.º 16
0
        public ActionResult Create(BorrowViewModel borrowViewModel)
        {
            try
            {
                BorrowService.AddNewBorrow(borrowViewModel.StudentId, borrowViewModel.BookId);
                Book book = BookServices.GetBook(borrowViewModel.BookId);
                BookServices.DecreaseBookAvlaible(book);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View("Error"));
            }
        }
        public IActionResult Borrow(int id)
        {
            var userId = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);

            bool isSuccessful = _libraryService.Borrow(userId, id);

            var book = _libraryService.GetBooks().Single(item => item.id == id);

            var borrowViewModel = new BorrowViewModel
            {
                isSuccessful = isSuccessful,
                BookName = book.title
            };

            return View(borrowViewModel);
        }
Exemplo n.º 18
0
        public IActionResult Borrow(int id)
        {
            var borrowersQuery = this.Context.Borrowers.Select(b => new SelectListItem()
            {
                Text = b.Name, Value = b.Id.ToString()
            });
            var borrowers = borrowersQuery.ToList();

            BorrowViewModel model = new BorrowViewModel()
            {
                Borrowers = borrowers,
                MovieId   = id,
                StartDate = DateTime.UtcNow,
            };

            return(this.View(model));
        }
        public async Task GivenBorrowServiceWhenCreateWithUnavailableProductDateThenProductNoAvailableException()
        {
            Product productDomain = FakeBuilder.GetProductFake();

            productDomain.EditAvailability(new Term(DateTime.Now.AddYears(2), DateTime.Now.AddYears(4)));
            BorrowViewModel model = FakeBuilder.GetBorrowViewModelFake(0, productDomain.ProductId);

            this._mockUserManager.Setup(mock => mock.FindUserDomain(It.IsAny <ClaimsPrincipal>()))
            .Returns(Task.FromResult(new User(Guid.NewGuid().ToString())));

            this._mockProductRepository.Setup(mock => mock.Get(It.IsAny <int>()))
            .Returns(Task.FromResult(productDomain));

            await Assert.ThrowsAsync <ProductNoAvailableException>(() => this._borrowService.Create(new ClaimsPrincipal(), model));

            this._mockBorrowRepository.Verify(mock => mock.Save(It.IsAny <Borrow>()), Times.Never);
        }
        public async Task GivenBorrowServiceWhenBorrowIdExistThenReturnBorrowNotNull()
        {
            int?   borrowId     = 1;
            Borrow borrowDomain = FakeBuilder.GetBorrowFake();

            this._mockBorrowRepository.Setup(repo => repo.Get(It.IsAny <int>()))
            .ReturnsAsync(borrowDomain);

            BorrowViewModel borrowViewModel = await this._borrowService.Get(borrowId);

            Assert.NotNull(borrowViewModel);
            borrowViewModel.BorrowId.Should().Be(borrowDomain.BorrowId);
            borrowViewModel.BorrowerId.Should().Be(borrowDomain.BorrowerId);
            borrowViewModel.Start.Should().Be(borrowDomain.Duration.Start);
            borrowViewModel.End.Should().Be(borrowDomain.Duration.End);
            borrowViewModel.Status.Should().Be(borrowDomain.Status.ToString());
        }
        public async Task GivenBorrowServiceWhenCreateWithBorrowOwnerIsEqualProductOwnerThenInvalidOperationException()
        {
            User            user          = FakeBuilder.GetOwnerFake();
            Product         productDomain = FakeBuilder.GetProductFake(user);
            BorrowViewModel model         = FakeBuilder.GetBorrowViewModelFake(0, productDomain.ProductId);

            model.BorrowerId     = productDomain.OwnerId;
            model.ProductOwnerId = productDomain.OwnerId;

            this._mockUserManager.Setup(mock => mock.FindUserDomain(It.IsAny <ClaimsPrincipal>()))
            .Returns(Task.FromResult(user));

            this._mockProductRepository.Setup(mock => mock.Get(It.IsAny <int>()))
            .Returns(Task.FromResult(productDomain));

            await Assert.ThrowsAsync <BorrowerIsSameOwnerProductException>(() => this._borrowService.Create(new ClaimsPrincipal(), model));

            this._mockBorrowRepository.Verify(mock => mock.Save(It.IsAny <Borrow>()), Times.Never);
        }
        public async Task GivenBorrowServiceWhenCreateWithProductUnsharyThenStatusInvalidException()
        {
            Product productDomain = FakeBuilder.GetProductFake();

            productDomain.UnShary();
            Assert.True(productDomain.IsUnshary());

            BorrowViewModel model = FakeBuilder.GetBorrowViewModelFake(0, productDomain.ProductId);

            this._mockUserManager.Setup(mock => mock.FindUserDomain(It.IsAny <ClaimsPrincipal>()))
            .Returns(Task.FromResult(new User(Guid.NewGuid().ToString())));

            this._mockProductRepository.Setup(mock => mock.Get(It.IsAny <int>()))
            .Returns(Task.FromResult(productDomain));

            await Assert.ThrowsAsync <StatusInvalidException>(() => this._borrowService.Create(new ClaimsPrincipal(), model));

            this._mockBorrowRepository.Verify(mock => mock.Save(It.IsAny <Borrow>()), Times.Never);
        }
Exemplo n.º 23
0
        //
        public ActionResult AddRecord(short getCount)
        {
            var getSettings = _context.Settings.FirstOrDefault();

            if (getSettings != null && getCount > getSettings.MaximumNumberOfBooksPerBorrow)
            {
                return(Content("The maximum number of books exceeded. The maximum per individual is "
                               + getSettings.MaximumNumberOfBooksPerBorrow
                               + " books"));
            }


            var borrowViewModel = new BorrowViewModel(getCount)
            {
                BorrowTypes = _context.BorrowTypes.ToList()
            };

            return(View(borrowViewModel));
        }
        public async Task Create(ClaimsPrincipal user, BorrowViewModel borrow)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (borrow == null)
            {
                throw new ArgumentNullException(nameof(borrow));
            }

            Product productDomain = await this._productRepository.Get(borrow.ProductId);

            User owner = await this._userManager.FindUserDomain(user);

            Borrow borrowDomain = new Borrow(owner, productDomain, new Term(borrow.Start, borrow.End));

            await this._borrowRepository.Save(borrowDomain);
        }
Exemplo n.º 25
0
        public async Task <IActionResult> CreateRitualMoney(BorrowViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var data = JsonConvert.SerializeObject(model);

            Uri         address = new Uri(_config["api"] + "/RitualMoney");
            ResultModel result  = new ResultModel();

            result = await _callApi.CallAPI(data, address, "POST");

            TempData["IsSuccess"] = result.IsSuccess;
            TempData["msg"]       = result.Message;
            if (!result.IsSuccess)
            {
                return(View(model));
            }
            return(RedirectToAction(nameof(CreateRitualMoney)));
        }
Exemplo n.º 26
0
        // 封装BorrowViewModel
        public List <BorrowViewModel> BorrowSealed(List <Borrow> b)
        {
            List <BorrowViewModel> bvm = new List <BorrowViewModel>();
            DateTime today             = DateTime.Today;

            foreach (Borrow item in b)
            {
                BorrowViewModel tmp = new BorrowViewModel();
                tmp.BTitle          = item.BTitle;
                tmp.BorrowID        = item.BorrowID;
                tmp.UserID          = item.UserID;
                tmp.BTotal          = item.BTotal.ToString("C");
                tmp.BMonthShouldPay = item.BMonthShouldPay.ToString("C");
                tmp.BNextRepay      = item.BNextRepay.ToShortDateString();
                tmp.BShouldPay      = item.BShouldPay;
                tmp.BHavePay        = item.BHavePay;
                tmp.BRemark         = item.BRemark;
                tmp.Bcolor          = CompareMonth(today, item.BNextRepay, item.BFinish);
                bvm.Add(tmp);
            }
            return(bvm);
        }
        public async Task GivenBorrowServiceWhenChangeDurationWithBorrowFoundThenBorrowIsUpdated()
        {
            int             productId       = 0;
            Borrow          borrowDomain    = FakeBuilder.GetBorrowFake();
            BorrowViewModel borrowViewModel = FakeBuilder.GetBorrowViewModelFake(0, productId);

            this._mockBorrowRepository.Setup(mock => mock.Get(It.IsAny <int>()))
            .ReturnsAsync(borrowDomain);

            borrowDomain.BorrowId.Should().Be(borrowViewModel.BorrowId);
            borrowDomain.Duration.Start.Should().NotBe(borrowViewModel.Start);
            borrowDomain.Duration.End.Should().NotBe(borrowViewModel.End);
            borrowDomain.Status.ToString().Should().Be(borrowViewModel.Status);

            await this._borrowService.ChangeDuration(borrowViewModel.BorrowId, borrowViewModel.Start, borrowViewModel.End);

            borrowViewModel.BorrowId.Should().Be(borrowDomain.BorrowId);
            borrowViewModel.Start.Should().Be(borrowDomain.Duration.Start);
            borrowViewModel.End.Should().Be(borrowDomain.Duration.End);
            borrowViewModel.Status.Should().Be(borrowDomain.Status.ToString());

            this._mockBorrowRepository.Verify(mock => mock.Save(It.IsAny <Borrow>()), Times.Once);
        }
Exemplo n.º 28
0
        public async Task <ResultModel> Post([FromBody] BorrowViewModel b)
        {
            ResultModel       result = new ResultModel();
            RitualMoneyRecord record = new RitualMoneyRecord();

            if (!string.IsNullOrEmpty(b.Name))
            {
                b.Name = b.Name.Trim().ToUpper();
            }
            var query = from m in _context.members
                        where (string.IsNullOrEmpty(b.Name) ? true : m.Name.ToUpper() == (b.Name)) &&
                        (string.IsNullOrEmpty(b.Identity) ? true : m.Identity == b.Identity)
                        select m;

            //查無會員
            if (query.Count() == 0)
            {
                result.IsSuccess = false;
                result.Message   = "查無資料.";
                return(result);
            }
            //查詢到多筆同名會員
            if (query.Count() > 1)
            {
                result.IsSuccess = false;
                result.Message   = "查詢到多筆同名會員";
                return(result);
            }
            //
            var recordQuery = from o in _context.RitualMoneyRecords
                              where (o.MemberId == query.SingleOrDefault().MemberId) &&
                              (o.IsReturn == false)
                              select o;

            if (recordQuery.Count() > 0)
            {
                result.IsSuccess = false;
                result.Message   = "尚有未還願的借用紀錄";
                return(result);
            }
            try
            {
                var member = query.SingleOrDefault();
                record.MemberId     = member.MemberId;
                record.BorrowDate   = DateTime.Now.ToLocalTime();
                record.BorrowAmount = b.BorrowAmount;
                //_context.RitualMoneyRecords.Add(record);
                await _context.RitualMoneyRecords.AddAsync(record);

                await _context.SaveChangesAsync();

                result.IsSuccess = true;
                result.Message   = "借用發財金成功.";
            }
            catch (Exception e)
            {
                result.IsSuccess = false;
                result.Message   = "DB error.";
            }
            var accessToken = Request.Headers["Authorization"];
            var user        = await _TokenGetUserHelper.GetUser(accessToken);

            //logger.Info("userId=" + user.Id + ", username="******"\nCreate " + "RitualMoney id= " + record.RitualMoneyRecordId +" successfully.");

            return(result);
        }