public void AddRegionAdministrator_NullOldAdminWithEndDateNull_ReturnsCorrect()
        {
            //Arrange
            RegionAdministration adm = null;

            _adminTypeService
            .Setup(a => a.GetAdminTypeByIdAsync(It.IsAny <int>()))
            .Returns(() => Task <AdminTypeDTO> .Factory.StartNew(() => AdminTypeHead));
            _repoWrapper
            .Setup(r => r.RegionAdministration.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <RegionAdministration, bool> > >(),
                                                                      It.IsAny <Func <IQueryable <RegionAdministration>,
                                                                                      IIncludableQueryable <RegionAdministration, object> > >()))
            .ReturnsAsync(adm);
            _userManager
            .Setup(x => x.FindByIdAsync(It.IsAny <string>())).ReturnsAsync(new User()
            {
                Id = "Some"
            });
            _userManager
            .Setup(x => x.AddToRoleAsync(new User()
            {
                Id = "Some"
            }, Roles.OkrugaHead));
            _repoWrapper
            .Setup(x => x.RegionAdministration.CreateAsync(regionAdmHead));
            //Act
            var result = _servise.AddRegionAdministrator(regionAdmDTOEndDateNull);

            //Assert
            _adminTypeService.Verify();
            _userManager.Verify();
            Assert.NotNull(result);
        }
        public void EditRegionAdministrator_NotNull_ReturnsCorrect()
        {
            //Arrange
            RegionAdministration regionAdmFake = new RegionAdministration
            {
                ID        = 1,
                AdminType = new AdminType()
                {
                    AdminTypeName = Roles.OkrugaHead,
                    ID            = 1
                },
                Status      = true,
                AdminTypeId = AdminTypeHead.ID,
                UserId      = Roles.OkrugaHead
            };

            _repoWrapper
            .Setup(r => r.RegionAdministration.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <RegionAdministration, bool> > >(),
                                                                      It.IsAny <Func <IQueryable <RegionAdministration>,
                                                                                      IIncludableQueryable <RegionAdministration, object> > >()))
            .ReturnsAsync(regionAdmFake);
            _adminTypeService
            .Setup(a => a.GetAdminTypeByIdAsync(It.IsAny <int>()))
            .Returns(() => Task <AdminTypeDTO> .Factory.StartNew(() => AdminTypeHead));
            //Act
            var result = _servise.EditRegionAdministrator(It.IsAny <RegionAdministrationDTO>());

            //Assert
            _repoWrapper.Verify();
            Assert.NotNull(result);
        }
        public async Task GetRegionAsync_ReturnsEmptyIEnumerableRegions()
        {
            // Arrange
            RegionAdministration r = null;

            _repositoryWrapper
            .Setup(x => x.RegionAdministration.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <RegionAdministration, bool> > >(),
                                                                      It.IsAny <Func <IQueryable <RegionAdministration>, IIncludableQueryable <RegionAdministration, object> > >()))
            .ReturnsAsync(r);
            _repositoryWrapper
            .Setup(x => x.Region.GetAllAsync(It.IsAny <Expression <Func <Region, bool> > >(),
                                             It.IsAny <Func <IQueryable <Region>, IIncludableQueryable <Region, object> > >()))
            .ReturnsAsync(new List <Region>()
            {
                new Region()
                {
                    ID = 2
                }, new Region()
                {
                    ID = 3
                }
            });
            //Act
            var result = await _regionAccessGetter.GetRegionAsync(It.IsAny <string>());

            // Assert
            Assert.IsInstanceOf <IEnumerable <Region> >(result);
            Assert.AreEqual(0, result.Count());
        }
Exemple #4
0
        //End

        public Region(string Name, MicroRegion Center, Culture Culture, Economy Economy)
            : base(Culture.CalculateLabor(), Economy)
        {
            _Name           = Name;
            _Center         = Center;
            _Culture        = Culture;
            _Administration = new RegionAdministration(this);
        }
        public async Task AddRegionAdministrator(RegionAdministrationDTO regionAdministrationDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(regionAdministrationDTO.AdminTypeId);

            var newRegionAdmin = new RegionAdministration()
            {
                StartDate   = regionAdministrationDTO.StartDate ?? DateTime.Now,
                EndDate     = regionAdministrationDTO.EndDate,
                AdminTypeId = adminType.ID,
                RegionId    = regionAdministrationDTO.RegionId,
                UserId      = regionAdministrationDTO.UserId
            };

            var oldAdmin = await _repoWrapper.RegionAdministration.
                           GetFirstOrDefaultAsync(d => d.AdminTypeId == newRegionAdmin.AdminTypeId &&
                                                  d.RegionId == newRegionAdmin.RegionId && d.Status);

            var newUser = await _userManager.FindByIdAsync(newRegionAdmin.UserId);

            var role = adminType.AdminTypeName == "Голова Округу" ? "Голова Округу" : "Діловод Округу";
            await _userManager.AddToRoleAsync(newUser, role);

            if (oldAdmin != null)
            {
                if (DateTime.Now < newRegionAdmin.EndDate || newRegionAdmin.EndDate == null)
                {
                    newRegionAdmin.Status = true;
                    oldAdmin.Status       = false;
                    oldAdmin.EndDate      = DateTime.Now;
                }
                else
                {
                    newRegionAdmin.Status = false;
                }
                var oldUser = await _userManager.FindByIdAsync(oldAdmin.UserId);

                await _userManager.RemoveFromRoleAsync(oldUser, role);

                _repoWrapper.RegionAdministration.Update(oldAdmin);
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
            else
            {
                newRegionAdmin.Status = true;
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
        }
Exemple #6
0
        public async Task AddRegionAdministrator(RegionAdministrationDTO regionAdministrationDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(regionAdministrationDTO.AdminTypeId);

            var newRegionAdmin = new RegionAdministration()
            {
                StartDate   = regionAdministrationDTO.StartDate ?? DateTime.Now,
                EndDate     = regionAdministrationDTO.EndDate,
                AdminTypeId = adminType.ID,
                RegionId    = regionAdministrationDTO.RegionId,
                UserId      = regionAdministrationDTO.UserId
            };

            var oldAdmin = await _repoWrapper.RegionAdministration.
                           GetFirstOrDefaultAsync(d => d.AdminTypeId == newRegionAdmin.AdminTypeId &&
                                                  d.RegionId == newRegionAdmin.RegionId && d.Status);

            var newUser = await _userManager.FindByIdAsync(newRegionAdmin.UserId);

            string role;

            switch (adminType.AdminTypeName)
            {
            case Roles.OkrugaHead:
                role = Roles.OkrugaHead;
                break;

            case Roles.OkrugaHeadDeputy:
                role = Roles.OkrugaHeadDeputy;
                break;

            default:
                role = Roles.OkrugaSecretary;
                break;
            }
            await _userManager.AddToRoleAsync(newUser, role);

            if (oldAdmin != null)
            {
                if (DateTime.Now < newRegionAdmin.EndDate || newRegionAdmin.EndDate == null)
                {
                    newRegionAdmin.Status = true;
                    oldAdmin.Status       = false;
                    oldAdmin.EndDate      = DateTime.Now;
                }
                else
                {
                    newRegionAdmin.Status = false;
                }
                var oldUser = await _userManager.FindByIdAsync(oldAdmin.UserId);

                await _userManager.RemoveFromRoleAsync(oldUser, role);

                _repoWrapper.RegionAdministration.Update(oldAdmin);
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
            else
            {
                newRegionAdmin.Status = DateTime.Now < newRegionAdmin.EndDate || newRegionAdmin.EndDate == null;
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
        }