/// <summary>
        /// Export MD forme u datoteku
        /// </summary>
        /// <param name="id">Sifra organizacije</param>
        public void ExportMDToExcel(int id)
        {
            var query   = ctx.Institucija.AsNoTracking();
            int count   = query.Count();
            var query_2 = ctx.Preporuka.AsNoTracking();
            int count2  = query.Count();



            var organizacija = ctx.Organizacija
                               .AsNoTracking()
                               .Where(m => m.SifraOrganizacije == id)
                               .Select(o => new Organizacija
            {
                SifraOrganizacije = o.SifraOrganizacije,
                Naziv             = o.Naziv,
                Url = o.Url,
            })
                               .SingleOrDefault(o => o.SifraOrganizacije == id);

            var preporuke = query_2
                            .Select(p => new PreporukaViewModel
            {
                SifraPreporuke         = p.SifraPreporuke,
                Opis                   = p.Opis,
                NazivOrganizacije      = p.SifraOrganizacijeNavigation.Naziv,
                NazivStozera           = p.SifraStozeraNavigation.Naziv,
                OpisPrethodnePreporuke = p.SifraPrethodnePreporukeNavigation.Opis,
                VrijemeObjave          = p.VrijemeObjave
            })
                            .Where(m => m.NazivOrganizacije == organizacija.Naziv);

            var model_2 = new PreporukeViewModel
            {
                Preporuke = preporuke,
            };



            var institucije = query
                              .Select(p => new InstitucijaViewModel
            {
                SifraInstitucije  = p.SifraInstitucije,
                NazivInstitucije  = p.NazivInstitucije,
                Kontakt           = p.Kontakt,
                RadnoVrijeme      = p.RadnoVrijeme,
                NazivOrganizacije = p.SifraOrganizacijeNavigation.Naziv
            })
                              .Where(m => m.NazivOrganizacije == organizacija.Naziv);


            var model = new InstitucijeViewModel
            {
                Institucije = institucije,
            };

            OrganizacijaInstitucijaPreporukaViewModel organizacijaInstitucija = new OrganizacijaInstitucijaPreporukaViewModel
            {
                Organizacija = organizacija,
                Institucije  = model,
                Preporuke    = model_2
            };


            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            ExcelPackage   pck = new ExcelPackage();
            ExcelWorksheet ws  = pck.Workbook.Worksheets.Add("Institucija oprema");

            ws.Cells["A1"].Value = "OrganizacijaInstitucijaPreporukaMD";

            ws.Cells["A3"].Value = "Date";
            ws.Cells["B3"].Value = string.Format("{0:dd MMMM yyyy} at {0:H: mm tt}", DateTimeOffset.Now);

            ws.Cells["A5"].Value = "Organizacija";

            ws.Cells["A7"].Value = "Sifra Organizacije";
            ws.Cells["B7"].Value = "Naziv Organizacije";
            ws.Cells["C7"].Value = "URL";

            int rowStart = 8;

            ws.Cells[string.Format("A{0}", rowStart)].Value = organizacijaInstitucija.Organizacija.SifraOrganizacije;
            ws.Cells[string.Format("B{0}", rowStart)].Value = organizacijaInstitucija.Organizacija.Naziv;
            ws.Cells[string.Format("C{0}", rowStart)].Value = organizacijaInstitucija.Organizacija.Url;

            ws.Cells["A10"].Value = "Institucije ove organizacije";

            ws.Cells["A12"].Value = "Sifra Institucije";
            ws.Cells["B12"].Value = "Naziv institucije";
            ws.Cells["C12"].Value = "Radno vrijeme";
            ws.Cells["D12"].Value = "Kontakt";

            int rowStart2 = 13;

            foreach (var item in organizacijaInstitucija.Institucije.Institucije)
            {
                ws.Cells[string.Format("A{0}", rowStart2)].Value = item.SifraInstitucije;
                ws.Cells[string.Format("B{0}", rowStart2)].Value = item.NazivInstitucije;
                ws.Cells[string.Format("C{0}", rowStart2)].Value = item.RadnoVrijeme;
                ws.Cells[string.Format("D{0}", rowStart2)].Value = item.Kontakt;
                rowStart2++;
            }

            ws.Cells["A19"].Value = "Sifra Preporuke";
            ws.Cells["B19"].Value = "Opis Preporuke";
            ws.Cells["C19"].Value = "Organizacija";
            ws.Cells["D19"].Value = "Vrijeme objave";

            int rowStart3 = 20;

            foreach (var item in organizacijaInstitucija.Preporuke.Preporuke)
            {
                ws.Cells[string.Format("A{0}", rowStart3)].Value = item.SifraPreporuke;
                ws.Cells[string.Format("B{0}", rowStart3)].Value = item.Opis;
                ws.Cells[string.Format("C{0}", rowStart3)].Value = item.NazivOrganizacije;
                ws.Cells[string.Format("D{0}", rowStart3)].Value = item.VrijemeObjave.ToString();
                rowStart3++;
            }


            ws.Cells["A:AZ"].AutoFitColumns();
            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.Headers.Add("content-disposition", "attachment; filename=InstitucijaMD.xlsx");
            Response.Body.WriteAsync(pck.GetAsByteArray());
            Response.CompleteAsync();
        }
        /// <summary>
        /// Prikaz MD forme za organizaciju s nekim id-om
        /// </summary>
        /// <param name="id">Sifra organizacije</param>
        /// <param name="page">Page</param>
        /// <param name="sort">Sort</param>
        /// <param name="ascending">Ascending (true ili false)</param>
        /// <returns></returns>
        public async Task <IActionResult> Detail(int id, int page = 1, int sort = 1, bool ascending = true)
        {
            int pagesize = appSettings.PageSize;
            var query    = ctx.Institucija.AsNoTracking();
            int count    = query.Count();
            var query_2  = ctx.Preporuka.AsNoTracking();
            int count2   = query.Count();

            var pagingInfo = new PagingInfo
            {
                CurrentPage  = page,
                Sort         = sort,
                Ascending    = ascending,
                ItemsPerPage = pagesize,
                TotalItems   = count
            };


            if (page > pagingInfo.TotalPages)
            {
                return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages, sort = sort, ascending = ascending }));
            }
            System.Linq.Expressions.Expression <Func <Institucija, object> > orderSelector = null;
            switch (sort)
            {
            case 1:
                orderSelector = p => p.SifraInstitucije;
                break;

            case 2:
                orderSelector = p => p.NazivInstitucije;
                break;

            case 3:
                orderSelector = p => p.Kontakt;
                break;

            case 4:
                orderSelector = p => p.RadnoVrijeme;
                break;
            }
            if (orderSelector != null)
            {
                query = ascending ?
                        query.OrderBy(orderSelector) :
                        query.OrderByDescending(orderSelector);
            }

            var organizacija = ctx.Organizacija
                               .AsNoTracking()
                               .Where(m => m.SifraOrganizacije == id)
                               .Select(o => new Organizacija
            {
                SifraOrganizacije = o.SifraOrganizacije,
                Naziv             = o.Naziv,
                Url = o.Url,
            })
                               .SingleOrDefault(o => o.SifraOrganizacije == id);

            var preporuke = query_2
                            .Select(p => new PreporukaViewModel
            {
                SifraPreporuke         = p.SifraPreporuke,
                Opis                   = p.Opis,
                NazivOrganizacije      = p.SifraOrganizacijeNavigation.Naziv,
                NazivStozera           = p.SifraStozeraNavigation.Naziv,
                OpisPrethodnePreporuke = p.SifraPrethodnePreporukeNavigation.Opis,
                VrijemeObjave          = p.VrijemeObjave
            })
                            .Where(m => m.NazivOrganizacije == organizacija.Naziv)
                            .Skip((page - 1) * pagesize)
                            .Take(pagesize)
                            .ToList();

            var model_2 = new PreporukeViewModel
            {
                Preporuke  = preporuke,
                PagingInfo = pagingInfo
            };



            var institucije = query
                              .Select(p => new InstitucijaViewModel
            {
                SifraInstitucije  = p.SifraInstitucije,
                NazivInstitucije  = p.NazivInstitucije,
                Kontakt           = p.Kontakt,
                RadnoVrijeme      = p.RadnoVrijeme,
                NazivOrganizacije = p.SifraOrganizacijeNavigation.Naziv
            })
                              .Where(m => m.NazivOrganizacije == organizacija.Naziv)
                              .Skip((page - 1) * pagesize)
                              .Take(pagesize)
                              .ToList();


            var model = new InstitucijeViewModel
            {
                Institucije = institucije,
                PagingInfo  = pagingInfo
            };



            if (organizacija != null)
            {
                OrganizacijaInstitucijaPreporukaViewModel organizacijaInstitucija = new  OrganizacijaInstitucijaPreporukaViewModel
                {
                    Organizacija = organizacija,
                    Institucije  = model,
                    Preporuke    = model_2
                };
                return(View(organizacijaInstitucija));
            }
            else
            {
                return(NotFound($"Neispravan id institucije {id}"));
            }
        }