public Task <BookDto> UpdateBook([FromBody] AddOrEditBookRequest request) { //return _bookService.UpdateBook(request, UserId); #region tmp ki lesz veve return(_bookService.UpdateBook(request, request.UserIdentifier)); #endregion }
public async Task <BookDto> AddNewBook(AddOrEditBookRequest request, string userIdentifier) { var entity = _mapper.Map <Book>(request); if (request.AutoCompleteData && !string.IsNullOrEmpty(request.Isbn)) { try { await _goodReadsService.TryGetGoodReadsData(request.Isbn, entity); } catch (Exception e) { entity.Title = request.Title; entity.Author = request.Author; } } else { entity.Title = request.Title; entity.Author = request.Author; } entity.PageNumber = request.PageNumber; entity.Isbn = request.Isbn; entity.GenreId = request.GenreId; entity.LastUpdated = _timeService.UtcNow; entity.Extension = "pdf"; entity.UploaderIdentifier = userIdentifier; var newUserBook = new UserBook { BookId = entity.BookId, Progress = 0, UserIdentifier = userIdentifier }; await _context.Book.AddAsync(entity); await _context.UserBooks.AddAsync(newUserBook); await _context.SaveChangesAsync(); var newEntity = await _context.Book .Include(b => b.Genre) .Include(b => b.Bookmarks) .AsNoTracking() .FirstOrDefaultAsync(b => b.BookId == entity.BookId); return(_mapper.Map <BookDto>(newEntity)); }
public async Task <BookDto> UpdateBook(AddOrEditBookRequest request, string userIdentifier) { var entity = await _context.Book .Include(b => b.Genre) .Include(b => b.Bookmarks) .FirstOrDefaultAsync(b => b.BookId == request.BookId) ?? throw new HbrException("Ismeretlen könyvazonosító!"); if (entity.UploaderIdentifier != userIdentifier) { throw new HbrException("Nem saját feltöltött könyvek nem szerkesztetőek!"); } if (request.AutoCompleteData && !string.IsNullOrEmpty(request.Isbn)) { try { await _goodReadsService.TryGetGoodReadsData(request.Isbn, entity); } catch (Exception e) { entity.Title = request.Title; entity.Author = request.Author; } } else { entity.Title = request.Title; entity.Author = request.Author; } entity.PageNumber = request.PageNumber; entity.Isbn = request.Isbn; entity.GenreId = request.GenreId; entity.LastUpdated = _timeService.UtcNow; await _context.SaveChangesAsync(); var newDto = _mapper.Map <BookDto>(entity); return(newDto); }
protected override async void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { switch (requestCode) { case BookDetailActivity.RequestCode: var dialog = UserDialogs.Instance.Loading("Loading"); if (resultCode == Result.Ok) { var bookXml = data.GetStringExtra("book"); var autoComplete = data.GetBooleanExtra("autoComplete", false); if (!string.IsNullOrEmpty(bookXml)) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(ClientBookDto)); StringReader sr = new StringReader(bookXml); try { var book = (ClientBookDto)xmlSerializer.Deserialize(sr); if (string.IsNullOrEmpty(book.BookId)) { book.BookId = Guid.NewGuid().ToString(); if (CheckInternetConnection()) { using (var client = new HttpClient()) { try { var request = new AddOrEditBookRequest { BookId = Guid.NewGuid().ToString(), Author = book.Author, GenreId = book.GenreId, Isbn = book.Isbn, PageNumber = book.PageNumber, Title = book.Title, AutoCompleteData = autoComplete, #region tmp ki lesz veve UserIdentifier = HbrApplication.UserIdentifier #endregion }; var result = await client.PostAsJsonAsync("https://hbr.azurewebsites.net/api/book/addnewbook", request); if (result.IsSuccessStatusCode) { book = await result.Content.ReadAsAsync <ClientBookDto>(); } } catch (Exception e) { } } } mAdapter.AddBooks(new List <ClientBookDto> { book }); _database.AddElement(book); } else { if (CheckInternetConnection()) { using (var client = new HttpClient()) { try { var request = new AddOrEditBookRequest { Author = book.Author, BookId = book.BookId, GenreId = book.GenreId, Isbn = book.Isbn, PageNumber = book.PageNumber, Title = book.Title, AutoCompleteData = autoComplete, #region tmp ki lesz veve UserIdentifier = HbrApplication.UserIdentifier #endregion }; var response = await client.PostAsJsonAsync("https://hbr.azurewebsites.net/api/book/updatebook", request); } catch (Exception e) { } } } mAdapter.UpdateBook(book); _database.AddElement(book); } } catch (Exception e) { } } } dialog.Dispose(); break; case get_file_request_code: var uri = data.Data; var stream = ContentResolver.OpenInputStream(uri); byte[] byteArray; using (var memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream); byteArray = memoryStream.ToArray(); } using (var client = new HttpClient()) using (var formData = new MultipartFormDataContent()) { var request = new AddOrEditBookRequest { Isbn = "9780316272247", #region tmp ki lesz veve UserIdentifier = HbrApplication.UserIdentifier #endregion }; var a = Encoding.ASCII.GetString(byteArray); var result = await client.PostAsJsonAsync("https://hbr.azurewebsites.net/api/Book/UploadBook", request); var resultData = await result.Content.ReadAsByteArrayAsync(); OpenPfd(resultData); //HttpContent content = new StreamContent(stream); //content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") { Name = "formFile", FileName = "UploadedFile" }; //content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); //formData.Add(content); //var response = await client.PostAsync("https://hbr.azurewebsites.net/api/book/uploadbook", formData); //var str = await response.Content.ReadAsStringAsync(); } break; } if ((int)resultCode == sign_in_response_code) { AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(requestCode, resultCode, data); } if (CheckInternetConnection()) { await Refresh(); } }