コード例 #1
0
        public Task <BookDto> UpdateBook([FromBody] AddOrEditBookRequest request)
        {
            //return _bookService.UpdateBook(request, UserId);
            #region tmp ki lesz veve
            return(_bookService.UpdateBook(request, request.UserIdentifier));

            #endregion
        }
コード例 #2
0
ファイル: BookService.cs プロジェクト: amocsari/HBR
        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));
        }
コード例 #3
0
ファイル: BookService.cs プロジェクト: amocsari/HBR
        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);
        }
コード例 #4
0
ファイル: MainActivity.cs プロジェクト: amocsari/HBR
        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();
            }
        }