Ejemplo n.º 1
0
        public async Task <int> Rent(Guid id)
        {
            var book = await GetBookById(id);

            var currentUser = await _userManager.GetUserAsync(_httpContextAccessor.HttpContext.User);

            if (book.BookClients.Any(x => x.Client.User.Id == currentUser.Id))
            {
                //TODO: Create custom exceptions and add those types to the action filter to throw other exceptions and not theese
                throw new Exception("Book Id " + id + " is already rented by " + currentUser.UserName + " You must return it before Renting it again");
            }

            //Add Client to Book and ReduceStock
            var bookClient = new BookClient()
            {
                Book = book, Client = new Client()
                {
                    User = currentUser
                }
            };

            book.ReduceStockInOne();
            book.BookClients.Add(bookClient);
            await _bookRepository.Update(book, id);

            //Create log of BookOperation
            await InsertBookOperationLog(currentUser, book, BookOperations.Rent);

            return(book.Stock);
        }
Ejemplo n.º 2
0
        private void AddBookClientBtn_Click(object sender, RoutedEventArgs e)
        {
            InitItems(ref bookClientItems, Mapper.BookClientsToBookClientViewModels, bookClientController.Get);

            AddBookClient addBookClient = new AddBookClient(
                bookItems   = InitItems(ref bookItems, Mapper.BooksToBookViewModels, bookController.Get),
                clientItems = InitItems(ref clientItems, Mapper.ClientsToClientViewModels, clientController.Get)
                );

            if (addBookClient.ShowDialog().Value)
            {
                BookViewModel   bookVM     = addBookClient.SelectedBookItem;
                ClientViewModel clientVM   = addBookClient.SelectedClientItem;
                string          untilToStr = addBookClient.UntilTo.Text;

                if (bookVM != null && clientVM != null)
                {
                    Book     book    = bookController.GetById(bookVM.Id);
                    Client   client  = clientController.GetById(clientVM.Id);
                    DateTime untilTo = DateTime.Parse(untilToStr);

                    BookClient bookClient = new BookClient(book, client, untilTo);
                    bookClientController.Add(bookClient);
                    bookClientItems.Add(Mapper.BookClientToBookClientViewModel(bookClient));
                    return;
                }
            }
        }
Ejemplo n.º 3
0
        protected virtual void InitRestClients()
        {
            RestClient = new RestClient(RootUrl + "api/v1/");
            RestClient.AddDefaultHeader("Authentication", ApiKey);
            RestClient.AddDefaultHeader("X-Api-Key", ApiKey);
            RestClient.UseSystemTextJson();

            Blacklist         = new ClientBase <BlacklistResource>(RestClient, ApiKey);
            Commands          = new CommandClient(RestClient, ApiKey);
            DownloadClients   = new DownloadClientClient(RestClient, ApiKey);
            Books             = new BookClient(RestClient, ApiKey);
            History           = new ClientBase <HistoryResource>(RestClient, ApiKey);
            HostConfig        = new ClientBase <HostConfigResource>(RestClient, ApiKey, "config/host");
            Indexers          = new IndexerClient(RestClient, ApiKey);
            Logs              = new LogsClient(RestClient, ApiKey);
            NamingConfig      = new ClientBase <NamingConfigResource>(RestClient, ApiKey, "config/naming");
            Notifications     = new NotificationClient(RestClient, ApiKey);
            Profiles          = new ClientBase <QualityProfileResource>(RestClient, ApiKey);
            Releases          = new ReleaseClient(RestClient, ApiKey);
            ReleasePush       = new ReleasePushClient(RestClient, ApiKey);
            RootFolders       = new ClientBase <RootFolderResource>(RestClient, ApiKey);
            Author            = new AuthorClient(RestClient, ApiKey);
            Tags              = new ClientBase <TagResource>(RestClient, ApiKey);
            WantedMissing     = new ClientBase <BookResource>(RestClient, ApiKey, "wanted/missing");
            WantedCutoffUnmet = new ClientBase <BookResource>(RestClient, ApiKey, "wanted/cutoff");
        }
Ejemplo n.º 4
0
        private void EditBookClientBtn_Click(object sender, RoutedEventArgs e)
        {
            BookClientViewModel bookClientVM = dataGrid.SelectedItem as BookClientViewModel;

            AddBookClient editBookClient = new AddBookClient(
                bookItems   = InitItems(ref bookItems, Mapper.BooksToBookViewModels, bookController.Get),
                clientItems = InitItems(ref clientItems, Mapper.ClientsToClientViewModels, clientController.Get),
                bookClientVM.UntilTo,
                bookItems.First(i => i.Id == bookClientVM.BookId),
                clientItems.First(i => i.Id == bookClientVM.ClientId)
                );

            if (editBookClient.ShowDialog().Value)
            {
                BookViewModel   bookVM   = editBookClient.SelectedBookItem;
                ClientViewModel clientVM = editBookClient.SelectedClientItem;
                DateTime        untilTo  = DateTime.Parse(editBookClient.UntilTo.Text);

                if (bookVM != null && clientVM != null)
                {
                    BookClient bookClient = bookClientController.GetById(bookClientVM.Id);
                    Book       book       = bookController.GetById(bookVM.Id);
                    Client     client     = clientController.GetById(clientVM.Id);
                    bookClientVM.BookId   = book.Id;
                    bookClientVM.ClientId = client.Id;
                    bookClient.Book       = book;
                    bookClient.Client     = client;
                    bookClient.UntilTo    = bookClientVM.UntilTo = untilTo;
                    bookClientController.Edit(bookClient);
                }
            }
        }
Ejemplo n.º 5
0
        public static void BeforeTestRun()
        {
            httpRequestHandler     = new HttpRequestHandler();
            libraryManagerSettings = new LibraryManagerSettings();
            bookClient             = new BookClient();

            process = Process.Start(".\\exe\\LibraryManager.exe");
        }
Ejemplo n.º 6
0
 public BookClientViewModel(BookClient bookClient)
 {
     Id        = bookClient.Id;
     BookId    = bookClient.Book.Id;
     ClientId  = bookClient.Client.Id;
     CreatedOn = bookClient.CreatedOn;
     UntilTo   = bookClient.UntilTo;
 }
Ejemplo n.º 7
0
        public static BookClient BookClientViewModelToBookClient(BookClientViewModel bookClientVM)
        {
            BookClient bookClient = new BookClient();

            bookClient.UntilTo = bookClient.UntilTo;

            return(bookClient);
        }
Ejemplo n.º 8
0
        public BookRepository()
        {
            GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001",
                                                         new GrpcChannelOptions {
                HttpHandler = httpHandler
            });

            bookClient = new BookClient(channel);
            httpHandler.ServerCertificateCustomValidationCallback =
                HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
        }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            BookClient BC = new BookClient();

            Book[] b = BC.GetBookDetails();
            foreach (Book BObj in b)
            {
                Console.WriteLine("Book Id: " + BObj.BookId.ToString());
                Console.WriteLine("BookName: " + BObj.BookName.ToString());
                Console.WriteLine("BookPrice: " + BObj.BookPrice.ToString());
            }
            Console.ReadLine();
        }
Ejemplo n.º 10
0
 public UpdateBookCommand(BookClient _bookClient)
 {
     bookClient = _bookClient;
 }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            //Güvenilir olmayan/geçersiz sertifikayla gRPC hizmetini çağırma
            HttpClientHandler httpHandler = new HttpClientHandler();

            httpHandler.ServerCertificateCustomValidationCallback =
                HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
            //Güvenilir olmayan/geçersiz sertifikayla gRPC hizmetini çağırma

            GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001",
                                                         new GrpcChannelOptions {
                HttpHandler = httpHandler
            });

            //BookClient = Proto name + Client
            var client = new BookClient(channel);

            #region Unary
            //SelectAllIDGRPC
            var selectAll = client.SelectAll(new Empty());

            foreach (var item in selectAll.Items)
            {
                Console.WriteLine($"{item.BookID} ,{item.Title},{item.Price},{item.AuthorName}");
            }

            //SelectByIDGRPC
            //BookFilter request = new BookFilter { BookID = 21 };
            //var selectByID =  client.SelectByID(request);

            //InsertGRPC
            //var createdBook = client.Insert(new BookVM()
            //{
            //    BookID = 21,
            //    Title = "",
            //    Price = 65,
            //    AuthorName = "",
            //    AuthorAddress = "",
            //    AuthorBiografi = "",
            //    AuthorBirthDate = "2021-05-30",
            //    PublisherName = "",
            //    PublisherAddress = "",
            //    PublishDate = "2021-05-30"
            //});

            //UpdateGRPC
            //var updatedBook = client.Update(new BookVM()
            //{
            //    BookID = 21,
            //    Title = "test",
            //    Price = 65,
            //    AuthorName = "test",
            //    AuthorAddress = "test",
            //    AuthorBiografi = "test",
            //    AuthorBirthDate = "2021-05-30",
            //    PublisherName = "test",
            //    PublisherAddress = "test",
            //    PublishDate = "2021-05-30"
            //});

            //DeleteGRPC
            //BookFilter request = new BookFilter { BookID = 1 };
            //var deletedBook = client.Delete(request);
            #endregion
        }
Ejemplo n.º 12
0
 public InsertBookCommand(BookClient _bookClient)
 {
     bookClient = _bookClient;
 }
Ejemplo n.º 13
0
 public static BookClientViewModel BookClientToBookClientViewModel(BookClient bookClient)
 {
     return(new BookClientViewModel(bookClient));
 }
Ejemplo n.º 14
0
 public GetBooksCommand(BookClient _bookClient)
 {
     bookClient = _bookClient;
 }