/// <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(); }
/// <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}")); } }