public async Task <IActionResult> InsertReview(ReviewViewModel view) { var exista_cititor = repository.VerifyReaderByNameAsync(view.CITITOR.Nume.Trim() + " " + view.CITITOR.Prenume.Trim()).Result.ToList(); var queryCititorId = repository.GetReaderAsync(exista_cititor[0].CititorId); var queryCarteImprumut = repository.GetLoanByBookTitleReaderIdAsync(view.CARTE.Titlu.Trim(), queryCititorId.Result.CititorId).Result.ToList(); if (queryCarteImprumut.LongCount() == 0) { return(RedirectToAction("NotPossible", "Home", view)); } var queryCarteId = repository.GetBookAsync(queryCarteImprumut[0].CarteId); if (queryCarteId.Result.CarteId > 0) { int idCarte = queryCarteId.Result.CarteId; var queryDateCarteImprumutata = repository.GetLoanAsync(queryCarteImprumut[0].ImprumutId); IMPRUMUT loan = new IMPRUMUT { DataRestituire = DateTime.Now, ImprumutId = queryDateCarteImprumutata.Result.ImprumutId, DataImprumut = queryDateCarteImprumutata.Result.DataImprumut, DataScadenta = queryDateCarteImprumutata.Result.DataScadenta, CititorId = queryDateCarteImprumutata.Result.CititorId, CarteId = queryDateCarteImprumutata.Result.CarteId, }; view.IMPRUMUT = loan; await repository.UpdateLoanAsync(view.IMPRUMUT); // issues, I think var queryDateImprumut = repository.GetLoanAsync(idCarte).Result; var queryCititorImprumut = repository.GetLoanAsync(idCarte).Result; if (queryDateImprumut.DataRestituire > queryDateImprumut.DataScadenta) { var queryStareCititor = repository.GetReaderAsync(queryCititorImprumut.CititorId); view.CITITOR.CititorId = queryStareCititor.Result.CititorId; view.CITITOR.Nume = queryStareCititor.Result.Nume; view.CITITOR.Prenume = queryStareCititor.Result.Prenume; view.CITITOR.Email = queryStareCititor.Result.Email; view.CITITOR.Adresa = queryStareCititor.Result.Adresa; view.CITITOR.Stare = 1; await repository.UpdateReaderAsync(view.CITITOR); } REVIEW review = new REVIEW { Text = view.REVIEW.Text, ImprumutId = queryDateImprumut.ImprumutId }; view.REVIEW = review; await repository.InsertReviewAsync(view.REVIEW); } return(RedirectToAction("AfisareReview", "Review", view)); }
public async Task <IActionResult> InsertLoan(LoanViewModel view) { int cititorId = 0, carteId = 0; var exista_cititor = repository.VerifyReaderByNameAsync(view.CITITOR.Nume.Trim() + " " + view.CITITOR.Prenume.Trim()).Result.ToList(); if (exista_cititor.LongCount() > 0) { var queryReader = repository.GetReaderAsync(exista_cititor[0].CititorId).Result; cititorId = queryReader.CititorId; int nrCartiDupaTitluCARTE = repository.GetNumberOfExistingBooksByTitleAsync(view.CARTE.Titlu.Trim()).Result; int nrCartiImprumutateDupaTitlu = repository.GetNumberOfBorrowedBooksByTitleAsync(view.CARTE.Titlu.Trim()).Result; if (nrCartiImprumutateDupaTitlu == nrCartiDupaTitluCARTE) { var queryDataToLoan = repository.ShowDateToBorrowBookAsync(view.CARTE.Titlu.Trim()).Result; } } else { return(RedirectToAction("NotPossible", "Home", view)); } var exista_carte = repository.VerifyBookByTitleAsync(view.CARTE.Titlu.Trim()).Result.ToList(); if (exista_carte.LongCount() > 0) { carteId = exista_carte[0].CarteId; } else { return(RedirectToAction("NotPossible", "Home", view)); } DateTime dataImprumut = DateTime.Now; DateTime dataScadenta = dataImprumut.AddDays(15); DateTime restituire = new DateTime(1900, 1, 1); IMPRUMUT loan = new IMPRUMUT { CarteId = carteId, CititorId = cititorId, DataImprumut = dataImprumut, DataScadenta = dataScadenta, DataRestituire = restituire, }; view.IMPRUMUT = loan; await repository.InsertLoanAsync(view.IMPRUMUT); return(RedirectToAction("AfisareImprumuturi", "Loan", view)); }