コード例 #1
0
ファイル: UsersController.cs プロジェクト: NikitaKums/TalTech
        // GET: Users/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var user = await _userManager.FindByIdAsync(id.ToString());

            if (user == null)
            {
                return(NotFound());
            }

            var vm = new UserCreateViewModel()
            {
                AppUser         = AppUserMapper.MapFromDAL(DAL.App.EF.Mappers.AppUserMapper.MapFromDomain(user)),
                AppUserRoles    = await _userManager.GetRolesAsync(user),
                ShopsSelectList = new SelectList(await _bll.Shops.AllAsync(), nameof(Shop.Id), nameof(Shop.ShopName), user.ShopId),
                RolesSelectList = new SelectList(await _roleManager.Roles.ToListAsync(), nameof(AppRole.Name), nameof(AppRole.Name))
            };

            PreSelect(vm.AppUserRoles, vm.RolesSelectList);

            return(View(vm));
        }
コード例 #2
0
 public override async Task <List <AppUser> > AllAsync()
 {
     return(await RepositoryDbSet
            .Include(s => s.Shop).ThenInclude(a => a.ShopName).ThenInclude(t => t.Translations)
            .Include(s => s.Shop).ThenInclude(a => a.ShopAddress).ThenInclude(t => t.Translations)
            .Include(s => s.Shop).ThenInclude(a => a.ShopContact).ThenInclude(t => t.Translations)
            .Include(s => s.Shop).ThenInclude(a => a.ShopContact2).ThenInclude(t => t.Translations)
            .Select(e => AppUserMapper.MapFromDomain(e)).ToListAsync());
 }
コード例 #3
0
 public async Task <List <DAL.App.DTO.DomainLikeDTO.Identity.AppUser> > GetUserById(int userId)
 {
     return(await RepositoryDbSet
            .Include(s => s.Shop).ThenInclude(a => a.ShopName).ThenInclude(t => t.Translations)
            .Include(s => s.Shop).ThenInclude(a => a.ShopAddress).ThenInclude(t => t.Translations)
            .Include(s => s.Shop).ThenInclude(a => a.ShopContact).ThenInclude(t => t.Translations)
            .Include(s => s.Shop).ThenInclude(a => a.ShopContact2).ThenInclude(t => t.Translations)
            .Where(a => a.Id == userId)
            .Select(e => AppUserMapper.MapFromDomain(e)).ToListAsync());
 }
コード例 #4
0
        public void Save_AppUser_ValuesIncrement()
        {
            AppUserMapper appuserMapper = new AppUserMapper(this.client, this.database);
            Guid          applicationId = Guid.NewGuid();

            AppUserSummary expected = new AppUserSummary()
            {
                ApplicationId = applicationId,
                Count         = 2,
                Date          = date,
                PlatformId    = platform,
                Version       = version,
                Users         = new List <UserAggregate>()
                {
                    new UserAggregate()
                    {
                        Key      = SexType.Male,
                        AgeGroup = new AgeGroup(null)
                        {
                            _25_35 = 2
                        },
                        Count = 2
                    }
                }
            };

            AppUserSummary summary = new AppUserSummary()
            {
                ApplicationId = applicationId,
                Count         = 1,
                Date          = date,
                PlatformId    = platform,
                Users         = new List <UserAggregate>()
                {
                    new UserAggregate(SexType.Male, 30)
                },
                Version = version
            };

            appuserMapper.Save(summary);
            appuserMapper.Save(summary);

            IMongoQuery query = Query.And
                                (
                Query <AppUserSummary> .EQ <DateTime>(mem => mem.Date, date),
                Query <AppUserSummary> .EQ <Guid>(mem => mem.ApplicationId, applicationId),
                Query <AppUserSummary> .EQ <string>(mem => mem.Version, version),
                Query <AppUserSummary> .EQ <PlatformType>(mem => mem.PlatformId, platform)
                                );

            AppUserSummary actual = this.GetCollection <AppUserSummary>().FindOne(query);

            actual.ShouldHave().AllPropertiesBut(x => x.Id)
            .IncludingNestedObjects().EqualTo(expected);
        }
コード例 #5
0
        public override async Task <AppUser> FindAsync(params object[] id)
        {
            var appUser = await base.FindAsync(id);

            return(AppUserMapper.MapFromDomain(await RepositoryDbSet.Where(a => a.Id == appUser.Id)
                                               .Include(s => s.Shop).ThenInclude(a => a.ShopName).ThenInclude(t => t.Translations)
                                               .Include(s => s.Shop).ThenInclude(a => a.ShopAddress).ThenInclude(t => t.Translations)
                                               .Include(s => s.Shop).ThenInclude(a => a.ShopContact).ThenInclude(t => t.Translations)
                                               .Include(s => s.Shop).ThenInclude(a => a.ShopContact2).ThenInclude(t => t.Translations)
                                               .FirstOrDefaultAsync()));
        }
コード例 #6
0
        public override async Task <List <DAL.App.DTO.Identity.AppUser> > AllAsync()
        {
            return(await RepositoryDbSet
//                .Include(c =>c.AppUserOnObjects)
                   .Include(d => d.AppUserInPositions)
                   .ThenInclude(d => d.AppUserPosition)
                   .ThenInclude(d => d.AppUserPositionValue)
                   .ThenInclude(d => d.Translations)
                   .Select(e => AppUserMapper.MapFromDomain(e))
                   .ToListAsync());
        }
コード例 #7
0
 public async Task <List <AppUser> > AllForUserAsync(int userId)
 {
     return(await RepositoryDbSet
            .Include(c => c.AppUserOnObjects)
            .Include(d => d.AppUserInPositions)
            .ThenInclude(f => f.AppUserPosition)
            .ThenInclude(d => d.AppUserPositionValue)
            .ThenInclude(d => d.Translations)
            .Where(c => c.Id == userId)
            .Select(e => AppUserMapper.MapFromDomain(e))
            .ToListAsync());
 }
コード例 #8
0
        public async Task <List <AppUser> > AllAsync(string order, string searchFor)
        {
            var query = RepositoryDbSet
                        .Include(s => s.Shop).ThenInclude(a => a.ShopName).ThenInclude(t => t.Translations)
                        .Include(s => s.Shop).ThenInclude(a => a.ShopAddress).ThenInclude(t => t.Translations)
                        .Include(s => s.Shop).ThenInclude(a => a.ShopContact).ThenInclude(t => t.Translations)
                        .Include(s => s.Shop).ThenInclude(a => a.ShopContact2).ThenInclude(t => t.Translations)
                        .AsQueryable();

            query = Search(query, searchFor);

            var res = await query.Select(e => AppUserMapper.MapFromDomain(e)).ToListAsync();

            return(Order(res, order));
        }
コード例 #9
0
        public async Task <List <DAL.App.DTO.DomainLikeDTO.Identity.AppUser> > AllAsyncByShop(int?shopId, string order, string searchFor)
        {
            var query = RepositoryDbSet
                        .Include(s => s.Shop).ThenInclude(a => a.ShopName).ThenInclude(t => t.Translations)
                        .Include(s => s.Shop).ThenInclude(a => a.ShopAddress).ThenInclude(t => t.Translations)
                        .Include(s => s.Shop).ThenInclude(a => a.ShopContact).ThenInclude(t => t.Translations)
                        .Include(s => s.Shop).ThenInclude(a => a.ShopContact2).ThenInclude(t => t.Translations)
                        .Where(a => a.ShopId == shopId || a.ShopId == null)
                        .AsQueryable();

            query = Search(query, searchFor);

            var res = await query.Select(e => AppUserMapper.MapFromDomain(e)).ToListAsync();

            return(Order(res, order));
        }
コード例 #10
0
        public override async Task <DAL.App.DTO.Identity.AppUser> FindAsync(params object[] id)
        {
//            return await RepositoryDbSet
//                    .Include(d => d.AppUserInPositions)
//                    .ThenInclude(d => d.AppUserPosition)
//                    .ThenInclude(d => d.AppUserPositionValue)
//                    .ThenInclude(d => d.Translations)
//                    .Select(p => AppUserMapper.MapFromDomain(p))
//                    .FirstOrDefaultAsync(p => p.Id == (int) id[0]);

            var culture = Thread.CurrentThread.CurrentUICulture.Name.Substring(0, 2).ToLower();

            var appUser = await RepositoryDbSet.FindAsync(id);

            if (appUser != null)
            {
                await RepositoryDbContext.Entry(appUser)
                .Collection(c => c.AppUserInPositions)
                .LoadAsync();

                foreach (var appUserInPosition in appUser.AppUserInPositions)
                {
                    await RepositoryDbContext.Entry(appUserInPosition)
                    .Reference(c => c.AppUserPosition)
                    .LoadAsync();

                    await RepositoryDbContext.Entry(appUserInPosition.AppUserPosition)
                    .Reference(c => c.AppUserPositionValue)
                    .LoadAsync();

                    await RepositoryDbContext.Entry(appUserInPosition.AppUserPosition.AppUserPositionValue)
                    .Collection(c => c.Translations)
                    .Query()
                    .Where(t => t.Culture == culture)
                    .LoadAsync();
                }
            }

            return(AppUserMapper.MapFromDomain(appUser));
        }
コード例 #11
0
ファイル: UsersController.cs プロジェクト: NikitaKums/TalTech
        // GET: Users
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]       = sortOrder;
            ViewData["NameSortParam"]     = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["LastNameSortParam"] = sortOrder == "lastname" ? "lastname_desc" : "lastname";
            ViewData["EmailSortParam"]    = sortOrder == "email" ? "email_desc" : "email";
            ViewData["AddressSortParam"]  = sortOrder == "address" ? "address_desc" : "address";
            ViewData["ShopSortParam"]     = sortOrder == "shop" ? "shop_desc" : "shop";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var users = await _bll.AppUsers.AllAsync(sortOrder, searchString);

            var allUsersAndRoles = new List <UserCreateViewModel>();

            foreach (var user in users)
            {
                var tempUser = DAL.App.EF.Mappers.AppUserMapper.MapFromDAL(AppUserMapper.MapFromBLL(user));

                allUsersAndRoles.Add(new UserCreateViewModel()
                {
                    AppUser      = user,
                    AppUserRoles = await _userManager.GetRolesAsync(tempUser)
                });
            }

            return(View(PaginatedList <UserCreateViewModel> .Create(allUsersAndRoles, pageNumber ?? 1, 10, null)));
        }
コード例 #12
0
        public async Task <ActionResult <PublicApi.v1.DTO.AppUser> > GetSingleUser()
        {
            var user = await _bll.AppUsers.GetUserInfo(User.GetUserId());

            return(AppUserMapper.MapFromBLL(user));
        }
コード例 #13
0
ファイル: UsersController.cs プロジェクト: NikitaKums/TalTech
        public async Task <IActionResult> Edit(int id, UserCreateViewModel vm)
        {
            if (id != vm.AppUser.Id)
            {
                return(NotFound());
            }
            var roles = await _userManager.GetRolesAsync(DAL.App.EF.Mappers.AppUserMapper.MapFromDAL(AppUserMapper.MapFromBLL(vm.AppUser)));

            var user = await _userManager.FindByIdAsync(id.ToString());

            if (id != User.GetUserId())
            {
                await _userManager.RemoveFromRolesAsync(user, roles.ToArray());

                if (vm.SelectedRoles != null && id != User.GetUserId())
                {
                    foreach (var role in vm.SelectedRoles)
                    {
                        await _userManager.AddToRoleAsync(user, role);
                    }
                }
            }

            user.FirstName = vm.AppUser.FirstName;
            user.LastName  = vm.AppUser.LastName;
            user.ShopId    = vm.AppUser.ShopId;
            user.Aadress   = vm.AppUser.Aadress;

            if (ModelState.IsValid)
            {
                await _userManager.UpdateAsync(user);

                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.ShopsSelectList = new SelectList(await _bll.Shops.AllAsync(), nameof(Shop.Id), nameof(Shop.ShopName),
                                                vm.AppUser.ShopId);
            vm.RolesSelectList = new SelectList(await _roleManager.Roles.ToListAsync(), nameof(AppRole.Name), nameof(AppRole.Name));

            PreSelect(vm.AppUserRoles, vm.RolesSelectList);

            return(View());
        }
コード例 #14
0
ファイル: AppUserService.cs プロジェクト: NikitaKums/TalTech
        public async Task <List <AppUser> > AllAsync(string order, string searchFor)
        {
            var res = (await Uow.AppUsers.AllAsync(order, searchFor)).Select(e => AppUserMapper.MapFromDAL(e)).ToList();

            return(res);
        }
コード例 #15
0
ファイル: AppUserService.cs プロジェクト: NikitaKums/TalTech
 public async Task <DTO.Identity.AppUser> GetUserInfo(int userId)
 {
     return(AppUserMapper.MapFromDAL(await Uow.AppUsers.GetUserInfo(userId)));
 }
コード例 #16
0
ファイル: AppUserService.cs プロジェクト: NikitaKums/TalTech
 public async Task <List <AppUser> > GetUserById(int userId)
 {
     return((await Uow.AppUsers.GetUserById(userId)).Select(e => AppUserMapper.MapFromDAL(e)).ToList());
 }
コード例 #17
0
ファイル: AppUserService.cs プロジェクト: NikitaKums/TalTech
 public override async Task <AppUser> FindAsync(params object[] id)
 {
     return(AppUserMapper.MapFromDAL(await Uow.AppUsers.FindAsync(id)));
 }
コード例 #18
0
ファイル: AppUserService.cs プロジェクト: NikitaKums/TalTech
        /*public override async Task<IEnumerable<AppUser>> AllAsync()
         * {
         *  return await UOW.AppUsers.AllAsync();
         * }
         *
         * public override async Task<AppUser> FindAsync(params object[] id)
         * {
         *  return await UOW.AppUsers.FindAsync(id);
         * }
         *
         * public async Task<AppUserDTO> GetUserInfo(int userId)
         * {
         *  return await UOW.AppUsers.GetUserInfo(userId);
         * }
         *
         * public async Task<IEnumerable<AppUser>> GetUserById(int userId)
         * {
         *  return await UOW.AppUsers.GetUserById(userId);
         * }
         *
         * public async Task<IEnumerable<AppUser>> AllAsyncByShop(int? shopId)
         * {
         *  return await UOW.AppUsers.AllAsyncByShop(shopId);
         *
         * }
         *
         * public async Task<int> CountUsersInShop(int? shopId)
         * {
         *  return await UOW.AppUsers.CountUsersInShop(shopId);
         * }
         *
         * public async Task<int> CountAllUsers()
         * {
         *  return await UOW.AppUsers.CountAllUsers();
         * }*/

        public override async Task <List <AppUser> > AllAsync()
        {
            return((await Uow.AppUsers.AllAsync()).Select(e => AppUserMapper.MapFromDAL(e)).ToList());
        }