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); }
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; } } }
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"); }
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); } } }
public static void BeforeTestRun() { httpRequestHandler = new HttpRequestHandler(); libraryManagerSettings = new LibraryManagerSettings(); bookClient = new BookClient(); process = Process.Start(".\\exe\\LibraryManager.exe"); }
public BookClientViewModel(BookClient bookClient) { Id = bookClient.Id; BookId = bookClient.Book.Id; ClientId = bookClient.Client.Id; CreatedOn = bookClient.CreatedOn; UntilTo = bookClient.UntilTo; }
public static BookClient BookClientViewModelToBookClient(BookClientViewModel bookClientVM) { BookClient bookClient = new BookClient(); bookClient.UntilTo = bookClient.UntilTo; return(bookClient); }
public BookRepository() { GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions { HttpHandler = httpHandler }); bookClient = new BookClient(channel); httpHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; }
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(); }
public UpdateBookCommand(BookClient _bookClient) { bookClient = _bookClient; }
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 }
public InsertBookCommand(BookClient _bookClient) { bookClient = _bookClient; }
public static BookClientViewModel BookClientToBookClientViewModel(BookClient bookClient) { return(new BookClientViewModel(bookClient)); }
public GetBooksCommand(BookClient _bookClient) { bookClient = _bookClient; }