private BorrowListItem CreateBorrowListItem(BorrowRecord record) { int limitDays = 31; string getBorrowDayLimitValue = GlobalConfigReader.ReadFromLibraryServiceConfig("BorrowDayLimit", "days"); if (!string.IsNullOrEmpty(getBorrowDayLimitValue)) { limitDays = Convert.ToInt32(getBorrowDayLimitValue); } var state = new AdminBookState(record); var item = new BorrowListItem { BorrowId = record.BorrowRecordId.ToString(), BookId = record.BookId.ToString(), BookNumber = record.Book.BookNumber, Title = record.Book.BookType.Title, UserId = record.UserId.ToString(), UserName = record.User.DisplayName, BorrowDate = record.BorrowedDate.ToShortDateString(), ReturnDate = record.BorrowedDate.AddDays(limitDays).ToShortDateString(), State = state.State, Operation = state.Operation }; return(item); }
private void RemoveBorrowRecord(BorrowRecord record) { _db.BorrowRecords.Remove(record); SubmitChanges(); OnBorrowRecordRemoved(record); }
public CustomerBookState(BookLibraryContext db, BorrowRecord borrowRecord, IEnumerable <SubscribeRecord> subscribeRecords) { int limitDays = 31; string getBorrowDayLimitValue = GlobalConfigReader.ReadFromLibraryServiceConfig("BorrowDayLimit", "days"); if (!string.IsNullOrEmpty(getBorrowDayLimitValue)) { limitDays = Convert.ToInt32(getBorrowDayLimitValue); } if (borrowRecord == null) { throw new ArgumentNullException("borrowRecord"); } var currentUser = Users.Current; if (borrowRecord.UserId == currentUser.UserId) { InitBorrowed(borrowRecord); } else if (subscribeRecords.Any(r => r.UserId == currentUser.UserId)) { InitSubscribed(); } else { InitCanSubscribe(borrowRecord.BookId); } BorrowedBy = GetUserName(db, borrowRecord.UserId); ReturnDate = borrowRecord.BorrowedDate.AddDays(limitDays).ToShortDateString(); SubscribedBy = string.Join(", ", subscribeRecords.Select(s => GetUserName(db, s.UserId))); }
public bool BorrowBook(string bookname, string username) { if (books.Where(book => book.Name == bookname && book.Amount > 0).Count() != 1) { return(false); } foreach (var book in books) { if (book.Name == bookname) { book.Amount -= 1; } } var record = new BorrowRecord() { UserName = username, BookName = bookname, BorrowTime = DateTime.Now.ToString(), }; records.Add(record); return(true); }
public AdminBookState(BorrowRecord borrowRecord) { if (borrowRecord == null) { throw new ArgumentNullException("borrowRecord"); } _borrowRecord = borrowRecord; }
private void AddBorrowRecord(long userId, long bookId) { var borrowRecord = new BorrowRecord(userId, bookId); _db.BorrowRecords.Add(borrowRecord); SubmitChanges(); OnBorrowRecordAdded(borrowRecord); }
private void HandleEvent(UserReturnBookEvent domainEvent) { using (QueryDBEntities _dbContext = new QueryDBEntities()) { BorrowRecord record = _dbContext.BorrowRecord.FirstOrDefault(t => t.UserAggregateRootId == domainEvent.UserAggregateRootId && t.BookAggregateRootId == domainEvent.BookAggregateRootId && !t.Returned); record.Returned = true; record.ReturnedDate = domainEvent.ReturnedDate; _dbContext.Entry(record).State = EntityState.Modified; _dbContext.SaveChanges(); } }
public bool addOne(BorrowRecord one) { string query_string = "INSERT INTO `t_borrow` (`id`, `seriesNum`, `operator`, `status`) VALUES (@id, @seriesNum, @operator, @status)"; return(MysqlTool.addData(query_string, new MySqlParameter[] { new MySqlParameter("@id", one.Id), new MySqlParameter("@seriesNum", one.SeriesNum), new MySqlParameter("@operator", one.Operator), new MySqlParameter("@status", one.Status) })); }
private void HandleEvent(UserBorrowBookEvent domainEvent) { using (QueryDBEntities _dbContext = new QueryDBEntities()) { BorrowRecord record = new BorrowRecord { UserAggregateRootId = domainEvent.UserAggregateRootId, BookAggregateRootId = domainEvent.BookAggregateRootId, BorrowedDate = domainEvent.BorrowedDate }; _dbContext.BorrowRecord.Add(record); _dbContext.SaveChanges(); } }
private void SendUserBorrowAcceptedNotify(BorrowRecord record) { var address = GetUeserEmailAddress(record.UserId); var book = record.BookId.ToString(); if (record.Book != null) { book = record.Book.BookType.Title; } var body = string.Format( "The borrowing of book {0} has been accepted, please get the book from Admin ASAP.", book); var message = Utility.BuildMail(address, "Book Borrow Accepted", body); Infrastructures.Instance.Mail.Send(message); }
private void ApplyFirstSubscriberToBorrow(long bookId) { var firstSubscribe = _subscribeRecordCache.FirstOrDefault(r => r.BookId == bookId); if (firstSubscribe == null) { return; } _db.SubscribeRecords.Remove(firstSubscribe); var borrowRecord = new BorrowRecord(firstSubscribe.UserId, bookId); _db.BorrowRecords.Add(borrowRecord); SubmitChanges(); OnBorrowRecordAdded(borrowRecord); }
public ActionResult Post([FromBody] BorrowRecordDto borrowRecordDto) { if (!ModelState.IsValid) { return(BadRequest()); } if (!_carRepository.CheckCarExists(borrowRecordDto.CarRego) || !_userRepository.CheckUserExists(borrowRecordDto.UserId)) { return(NotFound()); } int borrowExpInHours = Convert.ToInt32(_configuration["Settings:BorrowExpInHours"]); if (!_borrowRecordRepostitory.CheckCarAvailability(borrowRecordDto.CarRego, borrowExpInHours)) { return(BadRequest("The car is not available.")); } var newRecord = new BorrowRecord { CarRego = borrowRecordDto.CarRego, UserId = borrowRecordDto.UserId, CreateDate = DateTime.Now, IsActive = true, }; try { _borrowRecordRepostitory.Add(newRecord); _borrowRecordRepostitory.AppDbContext.SaveChanges(); } catch (Exception ex) { var errorMessage = ex.Message; // TODO: Log Error return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok(newRecord)); }
private void OnBorrowRecordRemoved(BorrowRecord record) { ApplyFirstSubscriberToBorrow(record.BookId); }
private void OnBorrowRecordAdded(BorrowRecord borrowRecord) { SendUserBorrowAcceptedNotify(borrowRecord); }
public bool addOne(BorrowRecord one) { return(borrowRecordDao.addOne(one)); }
private void InitBorrowed(BorrowRecord borrowRecord) { State = StateBorrowed; Operation = borrowRecord.IsCheckedOut ? null : UserOperationFactory.CreateCancelOperation(borrowRecord.BookId); }