コード例 #1
0
ファイル: Edit.cshtml.cs プロジェクト: sconan32/ImVehicleMIS
        public async Task <IActionResult> OnGetAsync(long?id, string returnUrl)
        {
            ReturnUrl = returnUrl;
            var vehicle = await _context.Vehicles.FirstOrDefaultAsync(t => t.Id == id);

            if (vehicle == null)
            {
                return(NotFound());
            }
            VehicleItem = new VehicleViewModel(vehicle);

            var townlist = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User));

            ViewData["TownList"] = new SelectList(townlist, "Id", "Name");
            if (townlist.Any())
            {
                var groups = (await _groupService.ListGroupsForTownEagerAsync(HttpContext.User, townlist.First().Id));
                ViewData["GroupList"] = new SelectList(groups, "Id", "Name");
            }

            if (VehicleItem.GroupId != null)
            {
                VehicleItem.TownId = townlist.FirstOrDefault(t => t.Groups.Any(u => u.Id == VehicleItem.GroupId))?.Id;
            }
            if (VehicleItem.DriverId != null)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                var drivers = await(_context.Drivers.Where(t => t.TownId == user.TownId)).ToListAsync();
                ViewData["DriverList"] = new SelectList(drivers, "Id", "Name");
            }
            return(Page());
        }
コード例 #2
0
        public async Task <IActionResult> OnGetAsync(long?groupId, string returnUrl)
        {
            ReturnUrl = returnUrl;

            var townlist = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User));

            ViewData["TownList"] = new SelectList(townlist, "Id", "Name");

            VehicleItem         = new VehicleViewModel();
            VehicleItem.GroupId = groupId;
            if (groupId != null)
            {
                VehicleItem.TownId = townlist.FirstOrDefault(t => t.Groups.Any(u => u.Id == groupId))?.Id;
            }
            else
            {
                VehicleItem.TownId = townlist.FirstOrDefault()?.Id;
            }
            if (townlist.Any())
            {
                var groups = (await _groupService.ListGroupsForTownEagerAsync(HttpContext.User, VehicleItem.TownId ?? -1));
                ViewData["GroupList"] = new SelectList(groups, "Id", "Name");
            }
            return(Page());
        }
コード例 #3
0
        public async Task <IActionResult> OnPostAsync(string queryString)
        {
            ViewData["QueryString"] = queryString;

            Towns  = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User));
            Groups = (await _groupService.ListAwailableGroupEagerAsync(HttpContext.User));
            ViewData["TownList"]  = new SelectList(Towns, "Id", "Name");
            ViewData["GroupList"] = new SelectList(Groups, "Id", "Name");

            ISpecification <DriverItem> canFetch = await Driver4UserSpecification.CreateAsync(HttpContext.User, _userManager);

            canFetch = canFetch.And(FilterModel.ToExpression());
            canFetch.Includes.Add(t => t.Vehicles);
            canFetch.Includes.Add(t => t.Town);
            canFetch.Includes.Add(t => t.Group);

            var items = (await _driverRepository.ListAsync(canFetch)).OrderBy(t => t.IsValid());

            if (FilterModel.ExportExcel == true)
            {
                var sigStr = $"::{HttpContext.User.Identity.Name}::socona.imvehicle.driver.export?search::{DateTime.Now.ToString("yyyyMMdd.HHmmss")}";
                var stream = ExcelHelper.ExportDrivers(items.ToList(), sigStr);
                return(File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"exported{DateTime.Now.ToString("yyyyMMdd.HHmmss")}.xlsx"));
            }

            Drivers = items.Select(t => new DriverListViewModel(t)).ToList();

            return(Page());
        }
コード例 #4
0
ファイル: Edit.cshtml.cs プロジェクト: sconan32/ImVehicleMIS
        public async Task <IActionResult> OnGetAsync(long?id, string returnUrl)
        {
            if (id == null)
            {
                return(NotFound());
            }
            ReturnUrl = returnUrl;
            var driver = await _context.Drivers.SingleOrDefaultAsync(m => m.Id == id);

            if (driver == null)
            {
                return(NotFound());
            }
            var townlist = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User));

            ViewData["TownList"] = new SelectList(townlist, "Id", "Name");
            if (townlist.Any())
            {
                var groups = (await _groupService.ListGroupsForTownEagerAsync(HttpContext.User, townlist.First().Id));
                ViewData["GroupList"] = new SelectList(groups, "Id", "Name");
            }

            DriverItem = new DriverViewModel(driver);

            return(Page());
        }
コード例 #5
0
        public async Task <IActionResult> OnGetAsync(long?groupId, string returnUrl)
        {
            ReturnUrl = returnUrl;

            ViewData["TownList"] = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User))
                                   .Select(t => new SelectListItem {
                Value = t.Id.ToString(), Text = t.Name,
            })
                                   .ToList();

            return(Page());
        }
コード例 #6
0
ファイル: Edit.cshtml.cs プロジェクト: sconan32/ImVehicleMIS
        public async Task <IActionResult> OnGetAsync(long?id, string returnUrl)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ReturnUrl = returnUrl;
            var group = await _context.Groups.SingleOrDefaultAsync(m => m.Id == id);

            if (group == null)
            {
                return(NotFound());
            }
            var canEdit = _authorizationService.AuthorizeAsync(HttpContext.User, group, "CanEdit");

            if (!(await canEdit).Succeeded)
            {
                return(Unauthorized());
            }


            TownList = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User))
                       .Select(t => new SelectListItem {
                Value = t.Id.ToString(), Text = t.Name,
            })
                       .ToList();

            GroupItem = new GroupViewModel(group);

            return(Page());
        }
コード例 #7
0
        public async Task <IActionResult> OnGetAsync(int?groupId, string returnUrl)
        {
            ReturnUrl = returnUrl;

            var townlist = (await _townService.GetAvailableTownsEagerAsync(HttpContext.User));

            ViewData["TownList"] = new SelectList(townlist, "Id", "Name");
            if (townlist.Any())
            {
                var groups = (await _groupService.ListGroupsForTownEagerAsync(HttpContext.User, townlist.First().Id));
                ViewData["GroupList"] = new SelectList(groups, "Id", "Name");
            }

            SecurityPerson.GroupId = groupId;
            if (groupId != null)
            {
                SecurityPerson.TownId = townlist.FirstOrDefault(t => t.Groups.Any(u => u.Id == groupId))?.Id;
            }

            return(Page());
        }
コード例 #8
0
ファイル: Query.cshtml.cs プロジェクト: sconan32/ImVehicleMIS
        public async Task OnGetAsync(string queryString)
        {
            ViewData["QueryString"] = queryString;
            var towns = await _townRepository.GetAvailableTownsEagerAsync(HttpContext.User);

            //Expression expression;
            //string url;
            // _searchService.BuildSearchExpression(":镇:"+queryString, out url, out expression);

            TownList = towns.OrderBy(t => t.Code).Select(t =>
                                                         new TownListViewModel()
            {
                Id          = t.Id,
                Code        = t.Code,
                Name        = t.Name,
                GroupCount  = t.Groups.Count,
                DriverCount = t.Drivers.Count,
                StatusText  = t.IsValid() ? "正常" : "预警",
                IsValid     = t.IsValid()
            }).Where(new TownListVmQueryStringSpecification(queryString).Criteria.Compile()).ToList();
        }