コード例 #1
0
        /// <summary>
        /// Export master detail tablice u excel datotetku (xls)
        /// </summary>
        /// <param name="id"></param>
        public void ExportMDToExcel(int id)
        {
            var query = ctx.Oprema.AsNoTracking();

            var institucija = ctx.Institucija
                              .AsNoTracking()
                              .Where(m => m.SifraInstitucije == id)
                              .Select(o => new InstitucijaViewModel
            {
                SifraInstitucije  = o.SifraInstitucije,
                NazivInstitucije  = o.NazivInstitucije,
                RadnoVrijeme      = o.RadnoVrijeme,
                Kontakt           = o.Kontakt,
                NazivOrganizacije = o.SifraOrganizacijeNavigation.Naziv
            })
                              .SingleOrDefault(o => o.SifraInstitucije == id);



            var opreme = query
                         .Select(p => new OpremaViewModel
            {
                SifraOpreme      = p.SifraOpreme,
                NazivInstitucije = p.SifraInstitucijeNavigation.NazivInstitucije,
                NazivOpreme      = p.NazivOpreme,
                KolicinaOpreme   = p.KolicinaOpreme,
            })
                         .Where(m => m.NazivInstitucije == institucija.NazivInstitucije);


            var model = new OpremeViewModel
            {
                Opremas = opreme,
            };

            InstitucijaOpremaViewModel osobaPregledi = new InstitucijaOpremaViewModel
            {
                Institucija = institucija,
                Oprema      = model
            };

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

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

            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 = "Institucija";

            ws.Cells["A7"].Value = "Sifra Institucije";
            ws.Cells["B7"].Value = "Naziv Institucije";
            ws.Cells["C7"].Value = "Radno vrijeme";
            ws.Cells["D7"].Value = "Kontakt";

            int rowStart = 8;

            ws.Cells[string.Format("A{0}", rowStart)].Value = osobaPregledi.Institucija.SifraInstitucije;
            ws.Cells[string.Format("B{0}", rowStart)].Value = osobaPregledi.Institucija.NazivInstitucije;
            ws.Cells[string.Format("C{0}", rowStart)].Value = osobaPregledi.Institucija.RadnoVrijeme;
            ws.Cells[string.Format("D{0}", rowStart)].Value = osobaPregledi.Institucija.Kontakt;

            ws.Cells["A10"].Value = "Oprema u instituciji";

            ws.Cells["A12"].Value = "Sifra Opreme";
            ws.Cells["B12"].Value = "Naziv institucije";
            ws.Cells["C12"].Value = "Naziv opreme";
            ws.Cells["D12"].Value = "Kolicina opreme";

            int rowStart2 = 13;

            foreach (var item in osobaPregledi.Oprema.Opremas)
            {
                ws.Cells[string.Format("A{0}", rowStart2)].Value = item.SifraOpreme;
                ws.Cells[string.Format("B{0}", rowStart2)].Value = item.NazivInstitucije;
                ws.Cells[string.Format("C{0}", rowStart2)].Value = item.NazivOpreme;
                ws.Cells[string.Format("D{0}", rowStart2)].Value = item.KolicinaOpreme;
                rowStart2++;
            }


            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();
        }
コード例 #2
0
        /// <summary>
        /// Pregled detaila (opreme) neke institucije, te više informacija o samoj instituciji
        /// </summary>
        /// <param name="id">Sifra institucije</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.Oprema.AsNoTracking();
            int count    = 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 <Oprema, object> > orderSelector = null;
            switch (sort)
            {
            case 1:
                orderSelector = p => p.SifraOpreme;
                break;

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

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

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

            var institucija = ctx.Institucija
                              .AsNoTracking()
                              .Where(m => m.SifraInstitucije == id)
                              .Select(o => new InstitucijaViewModel
            {
                SifraInstitucije  = o.SifraInstitucije,
                NazivInstitucije  = o.NazivInstitucije,
                RadnoVrijeme      = o.RadnoVrijeme,
                Kontakt           = o.Kontakt,
                NazivOrganizacije = o.SifraOrganizacijeNavigation.Naziv
            })
                              .SingleOrDefault(o => o.SifraInstitucije == id);



            var opreme = query
                         .Select(p => new OpremaViewModel
            {
                SifraOpreme      = p.SifraOpreme,
                NazivInstitucije = p.SifraInstitucijeNavigation.NazivInstitucije,
                NazivOpreme      = p.NazivOpreme,
                KolicinaOpreme   = p.KolicinaOpreme,
            })
                         .Where(m => m.NazivInstitucije == institucija.NazivInstitucije)
                         .Skip((page - 1) * pagesize)
                         .Take(pagesize)
                         .ToList();


            var model = new OpremeViewModel
            {
                Opremas    = opreme,
                PagingInfo = pagingInfo
            };



            if (institucija != null)
            {
                InstitucijaOpremaViewModel osobaPregledi = new InstitucijaOpremaViewModel
                {
                    Institucija = institucija,
                    Oprema      = model
                };
                await PrepareDropDownLists();

                return(View(osobaPregledi));
            }
            else
            {
                return(NotFound($"Neispravan id institucije {id}"));
            }
        }