Ejemplo n.º 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));
        }
Ejemplo n.º 2
0
        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));
        }