Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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));
        }