Beispiel #1
0
 public static List <CITITOR> ArataCititoriDeLaPanaLa(DateTime deLa, DateTime panaLa)
 {
     try
     {
         using (var context = new BibliotecaModelContainer())
         {
             var imprumuturi = context.IMPRUMUTs.Where(p =>
                                                       p.DataRestituire != null && p.DataImprumut >= deLa && p.DataRestituire <= panaLa).GroupBy(p => p.CititorId).Select(p => p.FirstOrDefault()).ToList();
             List <CITITOR> list = new List <CITITOR>();
             foreach (var imprumut in imprumuturi)
             {
                 var cititor = context.CITITORs.FirstOrDefault(p => p.CititorId == imprumut.CititorId);
                 if (cititor != null)
                 {
                     list.Add(cititor);
                 }
             }
             return(list);
         }
     }
     catch (Exception)
     {
         return(null);
     }
 }
Beispiel #2
0
 public static bool ImprumutaCartea(CITITOR cititor, string titlu, string autorNume, string autorPrenume, int numerZile)
 {
     try
     {
         using (var context = new BibliotecaModelContainer())
         {
             var autor  = context.AUTORs.FirstOrDefault(p => p.Nume == autorNume && p.Prenume == autorPrenume);
             var cartea = context.CARTEs.FirstOrDefault(p => p.AutorId == autor.AutorId && p.Titlu == titlu);
             if (autor == null || cartea == null)
             {
                 return(false);
             }
             var imprumut = new IMPRUMUT
             {
                 CarteId      = cartea.CarteId,
                 CititorId    = cititor.CititorId,
                 DataImprumut = DateTime.Now,
                 DataScadenta = DateTime.Now.AddDays(numerZile)
             };
             context.IMPRUMUTs.Add(imprumut);
             context.SaveChanges();
             return(true);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
Beispiel #3
0
        public static DateTime?EsteCarteaDisponibila(string autorNume, string autorPrenume, string titlu)
        {
            try
            {
                using (var context = new BibliotecaModelContainer())
                {
                    var autor            = context.AUTORs.FirstOrDefault(p => p.Nume == autorNume && p.Prenume == autorPrenume);
                    var cartiDinBlioteca = context.CARTEs.Where(p => p.Titlu == titlu && p.AutorId == autor.AutorId).ToList();

                    foreach (var carte in cartiDinBlioteca)
                    {
                        var carteDisponibila = context.IMPRUMUTs.FirstOrDefault(p => p.CarteId == carte.CarteId && p.DataRestituire == null);
                        if (carteDisponibila == null)
                        {
                            return(null);
                        }
                    }

                    var dataDisponibila = context.IMPRUMUTs.OrderBy(p => p.DataScadenta).FirstOrDefault();

                    return(dataDisponibila.DataScadenta);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #4
0
        public static bool AchizitieCarte(AchizitieCarte carti)
        {
            try
            {
                using (var context = new BibliotecaModelContainer())
                {
                    var autor = context.AUTORs.FirstOrDefault(pred => pred.Nume == carti.NumeAutor &&
                                                              pred.Prenume == carti.PrenumeAutor);

                    var gen = context.GENs.FirstOrDefault(pred => pred.Descriere == carti.Descriere);

                    if (autor == null)
                    {
                        autor = new AUTOR
                        {
                            Nume    = carti.NumeAutor,
                            Prenume = carti.PrenumeAutor
                        };
                        context.AUTORs.Add(autor);
                    }


                    if (gen == null)
                    {
                        gen = new GEN
                        {
                            Descriere = carti.Descriere
                        };
                        context.GENs.Add(gen);
                    }



                    for (var i = 0; i < carti.NumarCarti; i++)
                    {
                        var carte = new CARTE
                        {
                            AutorId = autor.AutorId,
                            GenId   = gen.GenId,
                            Titlu   = carti.Titlu
                        };

                        context.CARTEs.Add(carte);
                    }
                    context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }
        }
Beispiel #5
0
        public static List <REVIEW> GetReviewsForABook(string bookTitle)
        {
            try
            {
                using (var context = new BibliotecaModelContainer())
                {
                    var carte = context.CARTEs.FirstOrDefault(p => p.Titlu == bookTitle);

                    var reviews = context.REVIEWs.Where(p => p.Imprumut.CarteId == carte.CarteId).ToList();

                    return(reviews);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #6
0
 public static bool PotRestituiiCartea(CITITOR cititor, int carteId)
 {
     try
     {
         using (var context = new BibliotecaModelContainer())
         {
             var result = context.IMPRUMUTs.FirstOrDefault(p => p.CarteId == carteId && p.CititorId == cititor.CititorId && p.DataRestituire == null);
             if (result == null)
             {
                 return(false);
             }
             return(true);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
Beispiel #7
0
        public static bool ExistaCartea(string titlu, string autorNume, string autorPrenume)
        {
            try
            {
                using (var context = new BibliotecaModelContainer())
                {
                    var cartiDinBlioteca = context.CARTEs.Where(p => p.Titlu == titlu).ToList();
                    var autor            = context.AUTORs.FirstOrDefault(p => p.Nume == autorNume && p.Prenume == autorPrenume);

                    if (cartiDinBlioteca.Count != 0 && autor != null)
                    {
                        return(true);
                    }
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
Beispiel #8
0
 public static List <CARTE> GetCarti(string descriere)
 {
     try
     {
         using (var context = new BibliotecaModelContainer())
         {
             var gen = context.GENs.FirstOrDefault(p => p.Descriere == descriere);
             if (gen == null)
             {
                 return(null);
             }
             var carti = context.CARTEs.Where(p => p.GenId == gen.GenId).GroupBy(p => p.Titlu).Select(p => p.FirstOrDefault()).ToList();
             return(carti);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(null);
     }
 }
Beispiel #9
0
        public static List <TopAutori> AutoriiCeiMaiCautati()
        {
            try
            {
                using (var context = new BibliotecaModelContainer())
                {
                    var celeMaiCautateCarti = context.IMPRUMUTs.GroupBy(p => p.Carti.Titlu).Select(p => new { Titlu = p.Key, Count = p.Count() }).ToArray();
                    var autori = context.AUTORs.ToList();
                    List <TopAutori> topAutori = new List <TopAutori>();
                    foreach (var autor in autori)
                    {
                        topAutori.Add(new TopAutori
                        {
                            Id      = autor.AutorId,
                            Nume    = autor.Nume,
                            Prenume = autor.Prenume,
                            Scor    = 0
                        });
                    }

                    foreach (var carte in celeMaiCautateCarti)
                    {
                        var _carte = context.CARTEs.FirstOrDefault(p => p.Titlu == carte.Titlu);
                        var index  = topAutori.FindIndex(p => p.Id == _carte.AutorId);
                        if (_carte != null && index > 0)
                        {
                            topAutori[index].Scor = topAutori[index].Scor + carte.Count;
                        }
                    }
                    topAutori = topAutori.OrderByDescending(p => p.Scor).ToList();
                    return(topAutori);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #10
0
        public static bool RestituieCarte(CITITOR cititor, int carteId, string textReview)
        {
            try
            {
                using (var context = new BibliotecaModelContainer())
                {
                    var result = context.IMPRUMUTs.FirstOrDefault(p => p.CarteId == carteId && p.CititorId == cititor.CititorId && p.DataRestituire == null);
                    if (result == null)
                    {
                        return(false);
                    }
                    result.DataRestituire = DateTime.Now;
                    context.IMPRUMUTs.AddOrUpdate(result);

                    var imprumuturiPesteLimita = context.IMPRUMUTs
                                                 .Count(p => p.CititorId == cititor.CititorId && p.DataScadenta < p.DataRestituire);
                    if (imprumuturiPesteLimita > 2)
                    {
                        cititor.Stare = 1;
                        context.CITITORs.AddOrUpdate(cititor);
                    }

                    var review = new REVIEW
                    {
                        ImprumutId = result.ImprumutId,
                        Text       = textReview
                    };
                    context.REVIEWs.Add(review);
                    context.SaveChanges();
                    return(true);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }