public async Task <IActionResult> OnPostAsync(string queryString) { ViewData["QueryString"] = queryString; Towns = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User)); ViewData["TownList"] = new SelectList(Towns, "Id", "Name"); ISpecification <GroupItem> canFetch = await Group4UserSpecification.CreateAsync(HttpContext.User, _userManager); canFetch = canFetch.And(FilterModel.ToExpression()); canFetch.Includes.Add(t => t.Drivers); canFetch.Includes.Add(t => t.Town); canFetch.Includes.Add(t => t.Vehicles); var items = (await _groupRepository.ListAsync(canFetch)).OrderBy(t => t.IsValid()); if (FilterModel.ExportExcel == true) { var sigStr = $"::{HttpContext.User.Identity.Name}::socona.imvehicle.group.export?search::{DateTime.Now.ToString("yyyyMMdd.HHmmss")}"; var stream = ExcelHelper.ExportGroups(items.ToList(), sigStr); return(File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"exported{DateTime.Now.ToString("yyyyMMdd.HHmmss")}.xlsx")); } Groups = items.Select(t => new GroupListViewModel(t)).ToList(); return(Page()); }
public async Task <IActionResult> ExportExcel(long?townId, long?groupId) { ISpecification <GroupItem> canFetch = await Group4UserSpecification.CreateAsync(HttpContext.User, _userManager); if (townId != null) { var inTown = new Specification <GroupItem>(t => t.TownId == townId); canFetch = canFetch.And(inTown); } if (groupId != null) { var inGroup = new Specification <GroupItem>(t => t.Id == groupId); canFetch = canFetch.And(inGroup); } canFetch.Includes.Add(t => t.Vehicles); canFetch.Includes.Add(t => t.Town); canFetch.Includes.Add(t => t.Drivers); var items = await _groupService.ListAsync(canFetch); if (!items.Any()) { return(NoContent()); } var sigStr = $"::{HttpContext.User.Identity.Name}::socona.imvehicle.vehicle.export?town={townId}&group={groupId}::{DateTime.Now.ToString("yyyyMMdd.HHmmss")}"; var stream = ExcelHelper.ExportGroups(items, sigStr); return(File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"exported{DateTime.Now.ToString("yyyyMMdd.HHmmss")}.xlsx")); }
public async Task OnGetAsync(string returnUrl = null) { ReturnUrl = returnUrl; var availableTowns = await Town4UserSpecification.CreateAsync(HttpContext.User, _userManager); var townlist = await _townService.ListAsync(availableTowns); ViewData["TownList"] = new SelectList(townlist, "Id", "Name"); var availableGroups = await Group4UserSpecification.CreateAsync(HttpContext.User, _userManager); var groups = await _groupService.ListAsync(availableGroups); ViewData["GroupList"] = new SelectList(groups, "Id", "Name"); var user = await _userManager.GetUserAsync(HttpContext.User); var roleList = new List <VehicleRole>(); if (await _userManager.IsInRoleAsync(user, "GlobalVisitor") || await _userManager.IsInRoleAsync(user, "Admins")) { roleList.Add(new VehicleRole() { Name = "TownManager", LocalName = "街道管理员" }); } roleList.Add(new VehicleRole() { Name = "GroupManager", LocalName = "安全组管理员" }); ViewData["RoleList"] = new SelectList(roleList, "Name", "LocalName"); }
public async Task OnGetAsync() { var page = 0; // var pageSize = 20; var specification = await Group4UserSpecification.CreateAsync(HttpContext.User, _userManager); specification.Includes.Add(t => t.Drivers); specification.Includes.Add(t => t.SecurityPersons); specification.Includes.Add(t => t.Vehicles); specification.Includes.Add(t => t.UserFiles); specification.Includes.Add(t => t.Town); var startIdx = (page); startIdx = Math.Max(0, startIdx); var groups = new List <GroupItem>(); //await _groupService.ListRangeAsync(specification, startIdx, pageSize ); Groups = groups.Select(t => new GroupListViewModel(t)).ToList(); }
public async Task <IActionResult> LoadData(int?townId, int?page = 0, int?pageSize = 20) { ISpecification <GroupItem> canFetch = await Group4UserSpecification.CreateAsync(HttpContext.User, _userManager); if (townId != null) { var inGroup = new GroupsInTownSpecification(townId.Value); canFetch = canFetch.And(inGroup); } canFetch.Includes.Add(t => t.Drivers); canFetch.Includes.Add(t => t.SecurityPersons); canFetch.Includes.Add(t => t.Vehicles); canFetch.Includes.Add(t => t.UserFiles); canFetch.Includes.Add(t => t.Town); var startIdx = (page) * pageSize ?? 0; startIdx = Math.Max(0, startIdx); var groups = await _groupService.ListRangeAsync(canFetch, startIdx, pageSize ?? 0); var list = groups.Select(t => new GroupListViewModel(t)); return(new JsonResult(list)); }