public ActionResult Pretraživanje()
        {
            Pretraživanje pretraživanje = new Pretraživanje();
            var           poduzeće      = (from c in db.poduzeće where c.javanPoduzeće == true select c).ToList();

            ViewBag.grad       = new SelectList(db.grad, "idGrad", "imeGrad");
            ViewBag.djelatnost = new SelectList(db.djelatnost, "idDjelatnost", "imeDjelatnost");
            ViewBag.ulica      = new SelectList(db.ulica, "idUlica", "imeUlica");
            ViewBag.županija   = new SelectList(db.županija, "idŽupanija", "imeŽupanija");

            Tuple <List <poduzeće>, Pretraživanje> tuple = Tuple.Create(poduzeće, pretraživanje);

            return(View(tuple));
        }
        public void CreatePDF(Pretraživanje rezultat)
        {
            Random r   = new Random();
            int    i   = r.Next(1, 100000000);
            string rnd = i.ToString();

            var exportFolder = Server.MapPath("~/PDF");
            var exportFile   = Path.Combine(exportFolder, rnd + ".pdf");

            var writer = new PdfWriter(exportFile);
            var pdf    = new PdfDocument(writer);
            var doc    = new Document(pdf);

            Table table = new Table(new float[10]).UseAllAvailableWidth();
            Cell  cell  = new Cell(1, 10).Add(new Paragraph("Kreirano: " + DateTime.Now.ToString()));

            cell.SetTextAlignment(TextAlignment.CENTER);
            cell.SetPadding(5);
            cell.SetBackgroundColor(new DeviceRgb(7, 140, 242));
            table.AddCell(cell);

            Table table3 = new Table(new float[10]).UseAllAvailableWidth();
            Cell  cell4  = new Cell(1, 10).SetBorder(Border.NO_BORDER).Add(new Paragraph(""));

            cell4.SetPadding(5);
            table3.AddCell(cell4);

            Table table2 = new Table(new float[10]).UseAllAvailableWidth();
            Cell  cell3  = new Cell(1, 10).Add(new Paragraph("Popis poduzeca koja odgovaraju vašem pretraživanju"));

            cell3.SetTextAlignment(TextAlignment.CENTER);
            cell3.SetPadding(5);
            cell3.SetBackgroundColor(new DeviceRgb(7, 140, 242));
            table2.AddCell(cell3);

            Table table4 = new Table(new float[10]).UseAllAvailableWidth();

            table4.SetVerticalAlignment(VerticalAlignment.BOTTOM);
            Cell cell5 = new Cell(1, 10).Add(new Paragraph("City info"));

            cell5.SetTextAlignment(TextAlignment.CENTER);
            cell5.SetPadding(5);
            cell5.SetBackgroundColor(new DeviceRgb(64, 180, 222));
            table4.AddCell(cell5);

            doc.Add(table4);
            doc.Add(table);
            doc.Add(table3);
            doc.Add(table2);

            doc.Add(CreateTable(PretragaRasporedaOdvoza(rezultat)));

            doc.Close();

            Response.ContentType = "application/pdf";
            Response.Clear();
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + rnd + ".pdf");
            Response.AppendHeader("Content-Transfer-Encoding", "binary");
            Response.TransmitFile(Server.MapPath("~/PDF/" + rnd + ".pdf"));
            Response.End();

            if (System.IO.File.Exists(Server.MapPath("~/PDF/" + rnd + ".pdf")))
            {
                try
                {
                    System.IO.File.Delete(Server.MapPath("~/PDF/" + rnd + ".pdf"));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
        //metoda za pomoć pri kreiranju pdf-a, služi za detektciju sličnu kao metoda PretraživanjeRezultata
        private List <poduzeće> PretragaRasporedaOdvoza(Pretraživanje rez)
        {
            if (rez.tekst != null)
            {
                List <poduzeće> poduzeće = new List <poduzeće>();

                poduzeće = (from c in db.poduzeće
                            where c.imePoduzeće.Contains(rez.tekst) ||
                            c.tipPoslovnogObjekta.ToString().Contains(rez.tekst) || c.gradPoduzeće.ToString().Contains(rez.tekst) ||
                            c.županijaPoduzeće.ToString().Contains(rez.tekst) || c.ulicaPoduzeće.ToString().Contains(rez.tekst) && c.javanPoduzeće == true
                            select c).ToList();

                return(poduzeće);
            }
            else
            {
                List <poduzeće> poduzeće = new List <poduzeće>();

                if (rez.djelatnost != null && rez.grad != null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće where c.javanPoduzeće == true select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                c.županijaPoduzeće.ToString().Equals(rez.županija) && c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.županijaPoduzeće.ToString().Equals(rez.županija) &&
                                c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad != null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                c.gradPoduzeće.ToString().Equals(rez.grad) && c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad != null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.županijaPoduzeće.ToString().Equals(rez.županija) &&
                                c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.gradPoduzeće.ToString().Equals(rez.grad) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.županijaPoduzeće.ToString().Equals(rez.županija) &&
                                c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad != null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                c.gradPoduzeće.ToString().Equals(rez.grad) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.gradPoduzeće.ToString().Equals(rez.grad) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                select c).ToList();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = (from c in db.poduzeće
                                where c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                select c).ToList();
                }
                return(poduzeće);
            }
        }
        public async Task <ActionResult> PretraživanjeRezultata([Bind(Include = "tekst,djelatnost,grad,ulica,županija")] Pretraživanje rez)
        {
            if (rez.tekst != null)
            {
                List <poduzeće> poduzeće = new List <poduzeće>();

                poduzeće = await(from c in db.poduzeće
                                 where c.imePoduzeće.Contains(rez.tekst) ||
                                 c.tipPoslovnogObjekta.ToString().Contains(rez.tekst) || c.gradPoduzeće.ToString().Contains(rez.tekst) ||
                                 c.županijaPoduzeće.ToString().Contains(rez.tekst) || c.ulicaPoduzeće.ToString().Contains(rez.tekst) && c.javanPoduzeće == true
                                 select c).ToListAsync();

                return(PartialView("~/Views/Home/ListaPoduzeća.cshtml", poduzeće));
            }
            else
            {
                List <poduzeće> poduzeće = new List <poduzeće>();

                if (rez.djelatnost != null && rez.grad != null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                     c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće where c.javanPoduzeće == true select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                     c.županijaPoduzeće.ToString().Equals(rez.županija) && c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.županijaPoduzeće.ToString().Equals(rez.županija) &&
                                     c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad != null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                     c.gradPoduzeće.ToString().Equals(rez.grad) && c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad != null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.županijaPoduzeće.ToString().Equals(rez.županija) &&
                                     c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.gradPoduzeće.ToString().Equals(rez.grad) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija != null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.županijaPoduzeće.ToString().Equals(rez.županija) &&
                                     c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                     c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.gradPoduzeće.ToString().Equals(rez.grad) &&
                                     c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                     c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                     c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad != null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) &&
                                     c.gradPoduzeće.ToString().Equals(rez.grad) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost != null && rez.grad == null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.tipPoslovnogObjekta.ToString().Equals(rez.djelatnost) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad != null && rez.županija == null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.gradPoduzeće.ToString().Equals(rez.grad) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija != null && rez.ulica == null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.županijaPoduzeće.ToString().Equals(rez.županija) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                else if (rez.djelatnost == null && rez.grad == null && rez.županija == null && rez.ulica != null)
                {
                    poduzeće = await(from c in db.poduzeće
                                     where c.ulicaPoduzeće.ToString().Equals(rez.ulica) && c.javanPoduzeće == true
                                     select c).ToListAsync();
                }
                return(PartialView("~/Views/Home/ListaPoduzeća.cshtml", poduzeće));
            }
        }