Exemple #1
0
        public IHttpActionResult PutPolica(int id, Polica polica)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != polica.Id)
            {
                return(BadRequest());
            }

            db.Entry(polica).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PolicaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #2
0
        public async Task UpisiPolicu(int idBiblioteke, [FromBody] Polica polica)
        {
            var biblioteka = await Context.Biblioteke.FindAsync(idBiblioteke);

            polica.Biblioteka = biblioteka;
            Context.Police.Add(polica);
            await Context.SaveChangesAsync();
        }
Exemple #3
0
        public async Task <IActionResult> UbaciPolicu([FromBody] Polica p, int id)
        {
            p.Biblioteka = await Context.Biblioteke.FindAsync(id);

            Context.Police.Add(p);
            p.Biblioteka.Police.Add(p);
            await Context.SaveChangesAsync();

            return(Ok());
        }
Exemple #4
0
        public async Task <int> UpisPolice(int idBiblioteke, [FromBody] Polica pol)
        {
            var bibl = await Context.Biblioteke.FindAsync(idBiblioteke);

            pol.Biblioteka = bibl;

            Context.Police.Add(pol);
            await Context.SaveChangesAsync();

            return(pol.ID);
        }
Exemple #5
0
        public bool RemoveKnjiga(int policaid, int knjigaid)
        {
            Polica p = db.Policas.Include("Knjigas").Where(x => x.Id == policaid).FirstOrDefault();
            Knjiga k = db.Knjigas.Find(knjigaid);

            p.Knjigas.Remove(k);

            db.SaveChanges();

            return(true);
        }
Exemple #6
0
        public IHttpActionResult GetPolica(int id)
        {
            Polica polica = db.Policas.Find(id);

            if (polica == null)
            {
                return(NotFound());
            }

            return(Ok(polica));
        }
        public HubPageViewModel.ProfileInfo GetProfileData(int id, int userid)
        {
            HubPageViewModel.ProfileInfo profil = db.Korisnics.Where(x => x.Id == id).Select(z => new HubPageViewModel.ProfileInfo
            {
                KorisnikID  = z.Id,
                username    = z.username,
                Joined      = z.created_at,
                Grad        = z.Grad,
                FriendCount = z.Prijateljstvos.Count(),
                ImePrezime  = z.Ime + " " + z.Prezime,
                Email       = z.Email
            }).FirstOrDefault();

            int br = db.Prijateljstvos.Where(x => x.Korisnik1ID == userid && x.Korisnik2ID == id).Count();

            profil.IsFriend = br > 0;

            List <HubPageViewModel.ShelvesInfo.ShelfInfo> police = db.Policas.Where(x => x.KorisnikID == id).Select(p => new HubPageViewModel.ShelvesInfo.ShelfInfo
            {
                BookCount  = p.Knjigas.Count(),
                KorisnikID = p.KorisnikID,
                Naziv      = p.Naziv,
                ShelfID    = p.Id
            }).ToList();

            HubPageViewModel.ShelvesInfo.ShelfInfo polica = police.Where(x => x.Naziv == "Currently Reading").FirstOrDefault();
            if (polica != null)
            {
                Polica        gk   = db.Policas.Include("Knjigas").Where(c => c.Id == polica.ShelfID).FirstOrDefault();
                List <Knjiga> curb = gk.Knjigas;
                if (curb != null)
                {
                    profil.CurrentlyReadingBooks = new List <HubPageViewModel.ProfileInfo.BookInfo>();
                    profil.CurrentlyReadingBooks = curb.Select(k => new HubPageViewModel.ProfileInfo.BookInfo
                    {
                        Autor    = "Neki Autor",
                        KnjigaID = k.Id,
                        Naslov   = k.Naslov,
                        Slika    = k.Slika
                    }).ToList();
                }
                else
                {
                    profil.CurrentlyReadingBooks = null;
                }
            }
            else
            {
                profil.CurrentlyReadingBooks = null;
            }

            return(profil);
        }
Exemple #8
0
        // POST: api/Policas

        /*[ResponseType(typeof(PolicaWM))]
         * public IHttpActionResult PostPolica(PolicaWM polica)
         * {
         *      if (!ModelState.IsValid)
         *      {
         *              return BadRequest(ModelState);
         *      }
         *
         *      db.Policas.Add(polica);
         *      db.SaveChanges();
         *
         *      return CreatedAtRoute("DefaultApi", new { id = polica.Id }, polica);
         * }
         */
        public PolicaWM PostPolica(PolicaWM polica)
        {
            Polica p = new Polica();

            p.KorisnikID = polica.KorisnikID;
            p.Naziv      = polica.Naziv;

            db.Policas.Add(p);
            db.SaveChanges();

            return(polica);
        }
Exemple #9
0
        public IHttpActionResult DeletePolica(int id)
        {
            Polica polica = db.Policas.Find(id);

            if (polica == null)
            {
                return(NotFound());
            }

            db.Policas.Remove(polica);
            db.SaveChanges();

            return(Ok(polica));
        }
Exemple #10
0
        public async Task <IActionResult> IzbrisiPolicu(int id)
        {
            Polica p = await Context.Police.FindAsync(id);

            if (p == null)
            {
                return(BadRequest(404));
            }

            Context.Police.Remove(p);

            await Context.SaveChangesAsync();

            return(Ok());
        }
        public async Task <IActionResult> UpisiPolicu(int idBiblioteke, [FromBody] Polica pol)
        {
            var bibl = await Context.Biblioteke.FindAsync(idBiblioteke);

            pol.Biblioteka = bibl;
            //uslov
            if (pol.ImePolice == "")
            {
                return(StatusCode(406));
            }
            else
            {
                Context.Police.Add(pol);
                await Context.SaveChangesAsync();

                return(Ok());
            }
        }
        public KnjigaPolicaVM PostKnjiga(KnjigaPolicaVM kp)
        {
            Knjiga k = db.Knjigas.Find(kp.knjigaId);
            Polica p = db.Policas.Find(kp.policaId);

            p.Knjigas.Add(k);
            db.Policas.Add(p);

            TimelineItem ti = new TimelineItem();

            ti.EventDate        = DateTime.Now;
            ti.EventDescription = "je dodao u policu";
            ti.IsOcjena         = false;
            ti.KnjigaID         = kp.knjigaId;
            ti.KorisnikID       = kp.korisnikId;
            db.TimelineItems.Add(ti);

            db.SaveChanges();

            return(kp);
        }
Exemple #13
0
        public bool AddKnjigaToPolica(int policaid, int knjigaid)
        {
            Polica p = db.Policas.Include("Knjigas").Where(x => x.Id == policaid).FirstOrDefault();
            Knjiga k = db.Knjigas.Find(knjigaid);

            p.Knjigas.Add(k);

            db.SaveChanges();

            TimelineItem t = new TimelineItem();

            t.EventDate        = DateTime.Now;
            t.EventDescription = " je dodao u policu";
            t.IsOcjena         = false;
            t.KnjigaID         = k.Id;
            t.KorisnikID       = p.KorisnikID;

            db.TimelineItems.Add(t);
            db.SaveChanges();

            return(true);
        }
        public HubPageViewModel GetHubData(int userid)
        {
            HubPageViewModel defaultViewModel = new HubPageViewModel();

            defaultViewModel.BookShelves         = new HubPageViewModel.ShelvesInfo();
            defaultViewModel.BookShelves.Shelves = db.Policas.Where(x => x.KorisnikID == userid).Select(y => new HubPageViewModel.ShelvesInfo.ShelfInfo
            {
                KorisnikID = y.KorisnikID,
                Naziv      = y.Naziv,
                ShelfID    = y.Id,
                BookCount  = y.Knjigas.Count()
            }).ToList();

            defaultViewModel.Profile = new HubPageViewModel.ProfileInfo();
            defaultViewModel.Profile = db.Korisnics.Include("Prijateljstvos").Where(x => x.Id == userid).Select(z => new HubPageViewModel.ProfileInfo
            {
                KorisnikID  = z.Id,
                username    = z.username,
                Joined      = z.created_at,
                Grad        = z.Grad,
                FriendCount = db.Prijateljstvos.Where(p => p.Korisnik1ID == userid).Count(),
                Email       = z.Email,
                ImePrezime  = z.Ime + " " + z.Prezime
            }).FirstOrDefault();

            HubPageViewModel.ShelvesInfo.ShelfInfo polica = defaultViewModel.BookShelves.Shelves.Where(x => x.Naziv == "Currently Reading").FirstOrDefault();
            if (polica != null)
            {
                Polica        p    = db.Policas.Include("Knjigas").Where(c => c.Id == polica.ShelfID).FirstOrDefault();
                List <Knjiga> curb = p.Knjigas;
                if (curb != null)
                {
                    defaultViewModel.Profile.CurrentlyReadingBooks = new List <HubPageViewModel.ProfileInfo.BookInfo>();
                    defaultViewModel.Profile.CurrentlyReadingBooks = curb.Select(k => new HubPageViewModel.ProfileInfo.BookInfo
                    {
                        Autor    = db.Autors.Find(k.AutorId).Ime + " " + db.Autors.Find(k.AutorId).Prezime,
                        KnjigaID = k.Id,
                        Naslov   = k.Naslov,
                        Slika    = k.Slika
                    }).ToList();
                }
                else
                {
                    defaultViewModel.Profile.CurrentlyReadingBooks = null;
                }
            }

            Helpers.Preporuka preporuka         = new Helpers.Preporuka();
            List <KnjigaVM>   preporuceneKnjige = preporuka.GetPreporuceneKnjige(userid);

            defaultViewModel.Recommendations = new HubPageViewModel.RecommendationsInfo();
            defaultViewModel.Recommendations.RecommendedBooks = preporuceneKnjige.Select(k => new HubPageViewModel.RecommendationsInfo.BookInfo
            {
                Autor    = k.NazivAutora,
                KnjigaID = k.Id,
                Naslov   = k.Naslov,
                Slika    = k.Slika
            }).ToList();

            foreach (var k in defaultViewModel.Recommendations.RecommendedBooks)
            {
                Knjiga kk = db.Knjigas.Include("Ocjenas").Where(x => x.Id == k.KnjigaID).FirstOrDefault();
                k.ProsjecnaOcjena = (float)kk.Ocjenas.Average(a => a.OcjenaIznos);
            }

            List <int> ListaPrijatelja = db.Prijateljstvos.Where(x => x.Korisnik1ID == userid).Select(s => s.Korisnik2ID).ToList();

            defaultViewModel.Feed           = new HubPageViewModel.FeedInfo();
            defaultViewModel.Feed.FeedItems = db.TimelineItems.OrderByDescending(r => r.EventDate).Where(g => ListaPrijatelja.Contains(g.KorisnikID)).Select(t => new HubPageViewModel.FeedInfo.FeedItemInfo
            {
                EventDescription = t.Korisnik.username + t.EventDescription + " " + t.Knjiga.Ocjenas.Where(o => o.KnjigaID == t.KnjigaID && o.KorisnikID == t.KorisnikID).FirstOrDefault().OcjenaIznos,
                FeedItemID       = t.Id,
                Slika            = t.Knjiga.Slika,
                EventInformation = t.Knjiga.Naslov,
                IsOcjena         = t.IsOcjena,
                Autor            = t.EventDate.ToString(),
                KnjigaID         = t.KnjigaID,
                OcjenaID         = t.Knjiga.Ocjenas.Where(o => o.KnjigaID == t.KnjigaID && o.KorisnikID == t.KorisnikID).FirstOrDefault().Id
            }).ToList();

            return(defaultViewModel);
        }
Exemple #15
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, BibliotekaDbContext context)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });


            var b = new Biblioteka()
            {
                Ime    = "Pajina Biblioteka",
                Police = new List <Polica>()
            };

            context.Bibliotekas.Add(b);

            var p = new Polica()
            {
                MaxKnjiga      = 10,
                Name           = "Pajine prve knjige",
                TrenutnoKnjiga = 7
            };

            b.Police.Add(p);

            p = new Polica()
            {
                MaxKnjiga      = 7,
                Name           = "Pajine druge knjige",
                TrenutnoKnjiga = 4
            };
            b.Police.Add(p);

            p = new Polica()
            {
                MaxKnjiga      = 5,
                Name           = "Pajine trece knjige",
                TrenutnoKnjiga = 2,
                BibliotekaId   = b.Id
            };

            b.Police.Add(p);

            b = new Biblioteka()
            {
                Ime    = "Perina Biblioteka",
                Police = new List <Polica>()
            };
            context.Bibliotekas.Add(b);


            p = new Polica()
            {
                MaxKnjiga      = 3,
                Name           = "Perine prve knjige",
                TrenutnoKnjiga = 1
            };
            b.Police.Add(p);

            p = new Polica()
            {
                MaxKnjiga      = 4,
                Name           = "Perine druge knjige",
                TrenutnoKnjiga = 3
            };
            b.Police.Add(p);

            p = new Polica()
            {
                MaxKnjiga      = 10,
                Name           = "Perine trece knjige",
                TrenutnoKnjiga = 6
            };
            b.Police.Add(p);

            context.SaveChanges();
        }