Пример #1
0
        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));
        }