示例#1
0
        public BookTrackPage(Page previousPage, BookTrackList book)
        {
            InitializeComponent();
            _previousPage = previousPage;

            btnBackward.Background          = PagesPropertiesProvider.BackwardImage;
            btnBackward.Click              += btnBackward_Click;
            btnActionBook.Click            += btnActionBook_Click;
            BooksGrid.AutoGeneratingColumn += BooksGrid_AutoGeneratingColumn;

            if ((bool)book.BookAvailability)
            {
                btnActionBook.Content = "Take book";
            }
            else
            {
                if (!book.CanBePuted)
                {
                    btnActionBook.Visibility = Visibility.Hidden;
                }
                btnActionBook.Content = "Put book";
            }

            DataContext = pageViewModel = new BookTrackVM(book);
        }
示例#2
0
 public BookTrackVM(BookTrackList book)
 {
     Book = book;
 }
示例#3
0
        public BookTrackList GetBookTrack(int accountId, int?bookId, string tracksCount)
        {
            var result = new BookTrackList();

            using (var dbContext = new BookLibraryContext())
            {
                var book = dbContext.GetBook.FromSqlRaw("EXECUTE GetBook {0}", bookId).ToList().FirstOrDefault();

                result.BookId           = book?.ID;
                result.BookName         = book?.Name;
                result.BookAvailability = book?.Availability;

                var inAccountId = new SqlParameter
                {
                    ParameterName = "AccountId",
                    Value         = accountId,
                    DbType        = System.Data.DbType.Int32,
                    Direction     = System.Data.ParameterDirection.Input
                };
                var inBookId = new SqlParameter
                {
                    ParameterName = "BookId",
                    Value         = bookId,
                    DbType        = System.Data.DbType.Int32,
                    Direction     = System.Data.ParameterDirection.Input
                };
                var outResult = new SqlParameter
                {
                    ParameterName = "Result",
                    DbType        = System.Data.DbType.Boolean,
                    Direction     = System.Data.ParameterDirection.Output
                };

                var sql = "exec CanPutBook @AccountId, @BookId, @Result OUT";
                _ = dbContext.Database.ExecuteSqlRaw(sql, inAccountId, inBookId, outResult);

                if (!Boolean.TryParse(outResult.Value.ToString(), out bool canBePuted))
                {
                    return(result);
                }
                result.CanBePuted = canBePuted;

                inBookId = new SqlParameter
                {
                    ParameterName = "BookID",
                    Value         = bookId,
                    DbType        = System.Data.DbType.Int32,
                    Direction     = System.Data.ParameterDirection.Input
                };

                var inTracksCount = new SqlParameter
                {
                    ParameterName = "TracksCount",
                    Value         = tracksCount.ToString(),
                    DbType        = System.Data.DbType.String,
                    Direction     = System.Data.ParameterDirection.Input
                };
                result.TracksList = dbContext.GetBookTrack.FromSqlRaw("EXECUTE GetBookTrack @BookID, @TracksCount", inBookId, inTracksCount).AsNoTracking().ToList();
            }
            return(result);
        }