예제 #1
0
        internal int countCititorBehavior(CITITOR cititor)
        {
            int nr_abateri = 0;

            using (var context = new ModelGeneral())
            {
                foreach (var imp in context.IMPRUMUTs)
                {
                    if (imp.CITITOR != null && comparCititori(imp.CITITOR, cititor))
                    {//afisez starea cititorului
                        if (!imp.DataRestituire.HasValue && imp.DataScadenta < DateTime.Now)
                        {
                            nr_abateri++;
                        }
                        else
                        {
                            if (imp.DataScadenta < imp.DataRestituire)
                            {
                                nr_abateri++;
                            }
                        }
                    }
                }
            }
            return(nr_abateri);
        }
예제 #2
0
        //aceasta metoda se asigura ca cititorul exista in baza de date
        public bool adaugaCititor(CITITOR cit)
        {
            bool ret = a.existCititor(cit);

            a.adaugaCititor(cit);
            return(true);
        }
예제 #3
0
        //aceasta metoda verifica starea cititorului primit ca argument
        internal bool verfStare(CITITOR cititor)
        {
            int nr_abateri = 0;

            using (var context = new ModelGeneral())
            {
                foreach (var imp in context.IMPRUMUTs)
                {
                    if (imp.CITITOR != null && comparCititori(imp.CITITOR, cititor))
                    {//afisez starea cititorului
                        if (!imp.DataRestituire.HasValue && imp.DataScadenta < DateTime.Now)
                        {
                            nr_abateri++;
                        }
                        else
                        {
                            if (imp.DataScadenta < imp.DataRestituire)
                            {
                                nr_abateri++;
                            }
                        }
                    }
                }
            }
            if (nr_abateri > 1)
            {
                return(false);
            }
            return(true);
        }
예제 #4
0
 internal void changeStateCititor(CITITOR cititor)
 {
     using (var context = new ModelGeneral())
     {
         context.CITITORs.Add(cititor);
         context.Entry(cititor).State = System.Data.Entity.EntityState.Modified;
         context.SaveChanges();
     }
 }
예제 #5
0
 //aceasta metoda verifica daca 2 cititori sunt identici
 internal bool comparCititori(CITITOR c1, CITITOR c2)
 {
     if (c1 is null || c2 is null)
     {
         return(false);
     }
     if (c1.Email.Trim().Equals(c2.Email.Trim()))
     {
         return(true);
     }
     return(false);
 }
예제 #6
0
        public CITITOR findCititor(string nume, string prenume)
        {
            CITITOR c = new CITITOR();

            using (var context = new ModelGeneral())
            {
                foreach (var cititor in context.CITITORs)
                {
                    if (cititor.Nume.Trim().Equals(nume.Trim()) && cititor.Prenume.Trim().Equals(prenume.Trim()))
                    {
                        return(cititor);
                    }
                }
            }
            return(c);
        }
예제 #7
0
        //aceasta metoda verifica daca un cititor exista in bd
        internal bool existCititor(CITITOR cititor)
        {
            bool foud = false;

            using (var context = new ModelGeneral())
            {
                var cititori = context.CITITORs;
                foreach (var reader in cititori)
                {
                    if (reader.Email.Trim().Equals(cititor.Email.Trim()))
                    {//afisez starea cititorului
                        foud = true;
                    }
                }
            }
            return(foud);
        }
예제 #8
0
        public static void restituie()
        {
            menager m  = new menager();
            GEN     g1 = m.getGEN("SF");

            AUTOR a1 = m.getAutor(nume: "Aston", prenume: "Martin");

            CARTE c1 = m.getCarte(titlu: "Intredeschise ganduri.", autor: a1, gen: g1);

            Restituire r = new Restituire();

            CITITOR cititor1 = m.getCititor(nume: "Manolache123", prenume: "Irinel", adresa: "Iasi,Iasi,Str. Codrescu nr.13,cammin C12", email: "*****@*****.**");

            IMPRUMUT imp = new IMPRUMUT()
            {
                CARTE   = c1,
                CITITOR = cititor1
            };

            if (r.existaCarte(c1))
            {
                Console.WriteLine("Cartea exista in biblioteca");
                if (r.existaCititor(cititor1))
                {
                    Console.WriteLine("Cititorul este in baza noastra de date");
                    if (r.existaImprumut(imp))
                    {
                        Console.WriteLine("Imprumutul este in baza de date");
                        r.restituieCartea(1, "O carte foarte buna");
                    }
                    else
                    {
                        Console.WriteLine("Imprumutul nu este in baza de date");
                    }
                }
                else
                {
                    Console.WriteLine("Cititorul nu este in baza noastra de date");
                }
            }
            else
            {
                Console.WriteLine("Cartea nu exista in biblioteca");
            }
        }
예제 #9
0
 //acesta metoda adauga un cititor in baza de date
 internal void adaugaCititor(CITITOR cit)
 {
     if (!existCititor(cit))
     {
         using (var context = new ModelGeneral())
         {
             CITITOR c = new CITITOR()
             {
                 Adresa  = cit.Adresa.Trim(),
                 Email   = cit.Email.Trim(),
                 Nume    = cit.Nume.Trim(),
                 Prenume = cit.Prenume.Trim()
             };
             context.CITITORs.Add(c);
             context.SaveChanges();
         }
     }
 }
예제 #10
0
 internal int getCitirorId(CITITOR cit)
 {
     if (existCititor(cit))
     {
         int citID = -1;
         using (var context = new ModelGeneral())
         {
             foreach (var cititor in context.CITITORs)
             {
                 if (comparCititori(cit, cititor))
                 {
                     citID = cititor.CititorId;
                     break;
                 }
             }
         }
         return(citID);
     }
     return(-1);
 }
예제 #11
0
        //aceasta metoda returneaza tru daca s-a putut face imprumutul si il realizeaza , false c.c.
        internal bool imprumutaCarte(int carteID, CITITOR cit)
        {
            if (verfDisponibilitateCarte(carteID))
            {
                CARTE c = new CARTE();
                using (var context = new ModelGeneral())
                {
                    foreach (var carte in context.CARTEs)
                    {
                        if (carte.CarteId == carteID)
                        {
                            c = carte;
                            break;
                        }
                    }

                    cit.CititorId = getCitirorId(cit);

                    IMPRUMUT imp = new IMPRUMUT()
                    {
                        CARTE          = c,
                        DataImprumut   = DateTime.Now,
                        DataRestituire = DateTime.Now.AddDays(14),
                        CITITOR        = cit
                    };
                    Console.WriteLine(cit.Email);
                    context.IMPRUMUTs.Add(imp);
                    context.SaveChanges();
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #12
0
 public bool imprumutaCarte(int c1, CITITOR cit)
 {
     return(a.imprumutaCarte(c1, cit)); //sigur va gasi o carte
 }
예제 #13
0
 //aceasta metoda returneaza starea cititorului
 public bool verfStare(CITITOR cit)
 {
     return(a.verfStare(cit));
 }
예제 #14
0
        internal List <IMPRUMUT> getAllImprumutsAlive()
        {
            List <IMPRUMUT> list = new List <IMPRUMUT>();

            using (var context = new ModelGeneral())
            {
                foreach (IMPRUMUT impt in context.IMPRUMUTs)
                {
                    if (impt.DataScadenta.HasValue == false)
                    {
                        GEN g = new GEN()
                        {
                            Descriere = impt.CARTE.GEN.Descriere,
                            GenId     = impt.CARTE.GEN.GenId
                        };

                        AUTOR a = new AUTOR()
                        {
                            AutorId = impt.CARTE.AutorId.Value,
                            Nume    = impt.CARTE.AUTOR.Nume,
                            Prenume = impt.CARTE.AUTOR.Prenume
                        };

                        foreach (var carte in impt.CARTE.AUTOR.CARTE)
                        {
                            CARTE crt = new CARTE()
                            {
                                Titlu   = impt.CARTE.Titlu,
                                GenId   = impt.CARTE.GenId,
                                AutorId = a.AutorId,
                                AUTOR   = a
                            };
                            a.CARTE.Add(carte);
                        }

                        CARTE c = new CARTE()
                        {
                            Titlu   = impt.CARTE.Titlu,
                            GenId   = impt.CARTE.GenId,
                            AutorId = a.AutorId,
                            GEN     = g,
                            AUTOR   = a,
                            CarteId = impt.CARTE.CarteId
                        };
                        c.CarteId = c.CarteId;

                        CITITOR cit = new CITITOR()
                        {
                            Nume      = impt.CITITOR.Nume,
                            Prenume   = impt.CITITOR.Prenume,
                            Adresa    = impt.CITITOR.Adresa,
                            CititorId = impt.CITITOR.CititorId,
                            Email     = impt.CITITOR.Email,
                            Stare     = impt.CITITOR.Stare
                        };

                        ICollection <REVIEW> reviews = new List <REVIEW>();
                        foreach (var r in impt.REVIEW)
                        {
                            REVIEW rev = new REVIEW()
                            {
                                Text       = r.Text,
                                ImprumutId = r.ImprumutId,
                                ReviewId   = r.ReviewId
                            };
                            reviews.Add(r);
                        }


                        IMPRUMUT i = new IMPRUMUT()
                        {
                            CARTE          = c,
                            CarteId        = impt.CarteId,
                            CITITOR        = cit,
                            CititorId      = impt.CititorId,
                            DataImprumut   = impt.DataImprumut,
                            DataRestituire = impt.DataRestituire,
                            DataScadenta   = impt.DataScadenta,
                            ImprumutId     = impt.ImprumutId,
                            REVIEW         = reviews
                        };

                        list.Add(i);
                    }
                }
            }
            return(list);
        }
예제 #15
0
        public static void  imprumuta()
        {
            menager m = new menager();

            GEN g1 = m.getGEN("SF");

            AUTOR a1 = m.getAutor(nume: "Aston", prenume: "Martin");

            CARTE c1 = m.getCarte(titlu: "Intredeschise ganduri.", autor: a1, gen: g1);

            //metoda 2 expemul de folosire
            ImprumutaCarte ic       = new ImprumutaCarte();
            CITITOR        cititor1 = m.getCititor(nume: "Manolache123", prenume: "Irinel", adresa: "Iasi,Iasi,Str. Codrescu nr.13,cammin C12", email: "*****@*****.**");

            //ic.imprumutaCarte(cititor1, gen: "SF", carte_titlu:c1.Titlu, nume_a:a1.Nume,prenume_a:a1.Prenume);
            if (ic.adaugaCititor(cititor1))
            {
                Console.WriteLine("Cititor existent!");
            }
            else
            {
                Console.WriteLine("Cititor inexistent!");
            }
            Console.WriteLine(ic.verfStare(cititor1));
            if (ic.verfStare(cititor1))
            {
                Console.WriteLine("Cititorul este de buna credinta");
            }
            else
            {
                Console.WriteLine("Cititorul nu este de buna credinta");
            }
            Console.WriteLine(ic.existaCarte(c1));
            if (ic.existaCarte(c1))
            {
                Console.WriteLine("O lista cu cartile care au acelasi gen cu cartea cautata este:");
                ICollection <CARTE> list = ic.getAcelasiGen(c1.GEN);
                foreach (var carte in list)
                {
                    Console.WriteLine("Titlu:{0}", carte.Titlu.Trim());
                }

                String titlu = c1.Titlu;
                if (ic.searchBook(g1, titlu))
                {
                    int carteID = ic.getBookId(g1, titlu);
                    Console.WriteLine("Cartea a fost gasita dupa titlu");
                    if (ic.imprumutaCarte(c1.CarteId, cititor1))
                    {
                        Console.WriteLine("Cartea a fost imprumutata cu succes");
                    }
                    else
                    {
                        Console.WriteLine("Cartea va fi disponibila la data: {0}", ic.searchDataScadenta(c1));
                    }
                }
                else if (ic.searchBook(g1, a1))
                {
                    int carteID = ic.getBookId(g1, a1);
                    Console.WriteLine("Cartea a fost gasita dupa autor");
                }
                else if (ic.searchBook(g1, a1, titlu))
                {
                    int carteID = ic.getBookId(g1, a1, titlu);
                    Console.WriteLine("Cartea a fost gasita dupa titlu si autor");
                }
            }
            else
            {
                Console.WriteLine("Cartea nu exista in bilioteca.");
            }
        }
예제 #16
0
 public bool existaCititor(CITITOR cit) => a.existCititor(cit);