Beispiel #1
0
        public async Task <ActionResult <BookInfoViewModel> > PostBook([FromForm] CreateNewBookDTO bookDTO)
        {
            Book addNewBook = _mapper.Map <Book>(bookDTO);

            addNewBook.MainImage = DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + '_' + bookDTO.MainImage.FileName;
            _context.Book.Add(addNewBook);
            bool isSave = await _bookServices.AddNewBookAsync(addNewBook);

            if (isSave)
            {
                //Save main image
                _imageServices.UploadImage(bookDTO.MainImage, addNewBook.MainImage);
                //Save many image
                BookImage bookImage = new BookImage();
                bookImage.BookId = addNewBook.Id;
                if (bookDTO.Image1 is not null)
                {
                    bookImage.Image1 = DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + '_' + bookDTO.Image1.FileName;
                    _imageServices.UploadImage(bookDTO.Image1, bookImage.Image1);
                }
                if (bookDTO.Image2 is not null)
                {
                    bookImage.Image2 = DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + '_' + bookDTO.Image2.FileName;
                    _imageServices.UploadImage(bookDTO.Image2, bookImage.Image2);
                }
                if (bookDTO.Image3 is not null)
                {
                    bookImage.Image3 = DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + '_' + bookDTO.Image3.FileName;
                    _imageServices.UploadImage(bookDTO.Image3, bookImage.Image3);
                }
                if (bookDTO.Image4 is not null)
                {
                    bookImage.Image4 = DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + '_' + bookDTO.Image4.FileName;
                    _imageServices.UploadImage(bookDTO.Image4, bookImage.Image4);
                }
                _context.BookImage.Add(bookImage);
                await _context.SaveChangesAsync();

                return(Ok(new { data = addNewBook, success = true }));
            }
            else
            {
                return(Ok(new { error_message = "Thêm sách thất bại, có lỗi xảy ra" }));
            }
        }
        public async Task <IActionResult> Save(LangFirstQuestionDetailVm viewModel, IFormFile picture)
        {
            if (viewModel.Id != 0)
            {
                var categoryLink = $"{baseUri}/QuestionCategory/{2}";
                var category     = WebApiService.GetApiResult <QuestionCategory>(categoryLink);

                var answerLink = $"{baseUri}/Answer/{viewModel.AnswerId}";
                var answer     = new Answer()
                {
                    Id         = viewModel.AnswerId,
                    LangAnswer = viewModel.Answer
                };
                answer = await WebApiService.PutCallApi <Answer, Answer>(answerLink, answer);

                List <Feedback> feedbackList = new List <Feedback>();
                feedbackList.Add(new Feedback()
                {
                    Id = viewModel.FirstFeedbackId, Description = viewModel.FirstFeedback, QuestionId = viewModel.Id
                });
                feedbackList.Add(new Feedback()
                {
                    Id = viewModel.SecondFeedbackId, Description = viewModel.SecondFeedback, QuestionId = viewModel.Id
                });
                var questionLink = $"{baseUri}/Question/{viewModel.Id}";
                var question     = new Question()
                {
                    Id                 = viewModel.Id,
                    QuestionTitle      = viewModel.QuestionTitle,
                    FileName           = _imageServices.UploadImage(picture, "images/LangFirstQuestions"),
                    AnswerId           = answer.Id,
                    Answer             = answer,
                    QuestionCategory   = category,
                    QuestionCategoryId = category.Id,
                    Feedback           = feedbackList
                };
                question = await WebApiService.PutCallApi <Question, Question>(questionLink, question);

                var feedbackLink = $"{baseUri}/Feedback";
                await WebApiService.PutCallApi <Feedback, Feedback>($"{feedbackLink}/{viewModel.FirstFeedbackId}", feedbackList.ElementAt(0));

                await WebApiService.PutCallApi <Feedback, Feedback>($"{feedbackLink}/{viewModel.SecondFeedbackId}", feedbackList.ElementAt(1));

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                var categoryLink = $"{baseUri}/QuestionCategory/{2}";
                var category     = WebApiService.GetApiResult <QuestionCategory>(categoryLink);

                var answerLink = $"{baseUri}/Answer";
                var answer     = new Answer()
                {
                    LangAnswer = viewModel.Answer
                };
                //var seededAnswer = await WebApiService.PostCallApi<Answer, Answer>(answerLink, answer);
                answer.Id = 0;

                List <Feedback> feedbackList = new List <Feedback>();
                feedbackList.Add(new Feedback()
                {
                    Description = viewModel.FirstFeedback
                });
                feedbackList.Add(new Feedback()
                {
                    Description = viewModel.SecondFeedback
                });
                var questionLink = $"{baseUri}/Question";
                var question     = new Question()
                {
                    QuestionTitle    = viewModel.QuestionTitle,
                    FileName         = _imageServices.UploadImage(picture, "images/LangFirstQuestions"),
                    Answer           = answer,
                    QuestionCategory = category,
                    Feedback         = feedbackList
                };
                await WebApiService.PostCallApi <Question, Question>(questionLink, question);


                return(RedirectToAction(nameof(Index)));
            }
        }