コード例 #1
0
 private void InitialiseAllViewModels()
 {
     _SplashScreenViewModel   = new SplashScreenViewModel();
     _RegistrationViewModel   = new RegistrationViewModel();
     _ModifyViewModel         = new ModifyViewModel();
     _AuthenticationViewModel = new AuthenticationViewModel();
 }
コード例 #2
0
        public async Task <IActionResult> Modify(ModifyViewModel model, string returnUrl = null)
        {
            try
            {
                CheckRights(model.Name, UserActions.Modify);
            }
            catch (ArgumentException ex)
            {
                ViewData["Message"] = ex.Message;
                return(View(ERROR_OCCURED));
            }

            if (ModelState.IsValid)
            {
                ApplicationUser user = await _userManager.FindByEmailAsync(model.Email);

                user.IsAdmin = model.MakeAdmin;
                IdentityResult result = await _userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    if (returnUrl == null)
                    {
                        returnUrl = USERS_VIEW;
                    }
                    ViewData["ReturnUrl"] = returnUrl;

                    _logger.LogInformation(7, "User account was modified.");
                    return(RedirectToLocal(returnUrl));
                }
            }

            return(View(model));
        }
コード例 #3
0
        public void ReturnRedirectResult_WhenModelStateIsValid()
        {
            // Arrange
            Mock <IUserSensorService> userSensorServiceMock = new Mock <IUserSensorService>();
            Mock <ISensorService>     sensorServiceMock     = new Mock <ISensorService>();
            Mock <IMemoryCache>       memoryCacheMock       = new Mock <IMemoryCache>();
            Mock <ISensorDataService> sensorDataServiceMock = new Mock <ISensorDataService>();

            var controller = new SensorController(userSensorServiceMock.Object,
                                                  sensorServiceMock.Object, memoryCacheMock.Object, sensorDataServiceMock.Object)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = new ClaimsPrincipal()
                    }
                },
                TempData = new Mock <ITempDataDictionary>().Object
            };
            var viewModel = new ModifyViewModel()
            {
                Name            = "Name",
                Description     = "Description",
                PollingInterval = 10,
                Latitude        = 0,
                Longitude       = 0,
                IsPublic        = true,
                AlarmTriggered  = true,
                AlarmMin        = 0,
                AlarmMax        = 0,
                Id      = "Description",
                IsState = true,
            };

            string validId = viewModel.Id;

            UserSensor validUserSensorResult = new UserSensor();
            Sensor     validSensor           = new Sensor
            {
                IsState = false
            };

            validUserSensorResult.Sensor    = validSensor;
            validUserSensorResult.Latitude  = "0";
            validUserSensorResult.Longitude = "0";

            userSensorServiceMock.Setup(mock => mock.GetSensorByIdAsync(validId))
            .Returns(Task.FromResult(validUserSensorResult));

            // Act
            var result = controller.Modify(viewModel);

            //Assert
            Assert.IsInstanceOfType(result.Result, typeof(RedirectToActionResult));
            var redirectResult = (RedirectToActionResult)result.Result;

            Assert.AreEqual("Modify", redirectResult.ActionName);
            Assert.IsNull(redirectResult.RouteValues);
        }
コード例 #4
0
        public void RedisplayView_WhenPassedInvalidModelState()
        {
            Mock <IUserSensorService> userSensorServiceMock = new Mock <IUserSensorService>();
            Mock <ISensorService>     sensorServiceMock     = new Mock <ISensorService>();
            Mock <IMemoryCache>       memoryCacheMock       = new Mock <IMemoryCache>();
            Mock <ISensorDataService> sensorDataServiceMock = new Mock <ISensorDataService>();

            var controller = new SensorController(userSensorServiceMock.Object,
                                                  sensorServiceMock.Object, memoryCacheMock.Object, sensorDataServiceMock.Object)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = new ClaimsPrincipal()
                    }
                },
                TempData = new Mock <ITempDataDictionary>().Object
            };

            controller.ModelState.AddModelError("error", "error");
            var viewModel = new ModifyViewModel();

            var result = controller.Modify(viewModel);

            Assert.IsInstanceOfType(result.Result, typeof(ViewResult));
            var viewResult = (ViewResult)result.Result;

            Assert.IsInstanceOfType(viewResult.Model, typeof(ModifyViewModel));
            Assert.IsNull(viewResult.ViewName);             // should not return any other view
        }
コード例 #5
0
        public async Task <ActionResult> UpdateProfile(ModifyViewModel model, HttpPostedFileBase Event_Image)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = UserManager.FindById(User.Identity.GetUserId());

            if (user != null)
            {
                if (Event_Image != null)
                {
                    var file = Event_Image;

                    if (file != null && file.ContentLength > 0)
                    {
                        var fileName = Path.GetFileName(file.FileName);
                        var path     = Path.Combine(Server.MapPath("~/ProfileImage/"), fileName);
                        file.SaveAs(path);
                        user.Profile = file.FileName;
                    }
                }
                else
                {
                    user.Profile = "person.png";
                }
                user.Fullname = model.Fullname;



                await UserManager.UpdateAsync(user);
            }
            return(RedirectToAction("Index", new { Message = ManageMessageId.UpdateProfileSuccess }));
        }
コード例 #6
0
        public AttendedViewModel(IInstallationService installationService, InstallViewModel installViewModel, ModifyViewModel modifyViewModel, UninstallViewModel uninstallViewModel)
        {
            _installationService = installationService;
            _installViewModel    = installViewModel;
            _modifyViewModel     = modifyViewModel;
            _uninstallViewModel  = uninstallViewModel;

            _installViewModel.Closed   += ChildOnClosed;
            _uninstallViewModel.Closed += ChildOnClosed;
        }
コード例 #7
0
        public IActionResult ModifyUser()
        {
            string email = HttpContext.User.Claims.First(c => c.Type == ClaimTypes.Email).Value;

            User            user        = _userService.GetOne(email);
            ModifyViewModel modifyModel = new ModifyViewModel()
            {
                User         = user,
                Modification = null
            };

            return(View(modifyModel));
        }
コード例 #8
0
        public async Task <ActionResult> ModifyPassword(ModifyViewModel model)
        {
            if (ModelState.IsValid)
            {
                string userName = HttpContext.User.Identity.Name;
                var    student  = this.UserManager.Users.FirstOrDefault(s => s.UserName == userName);
                var    result   = await this.UserManager.ChangePasswordAsync(student, model.OriginalPassword, model.ModifiedPassword);

                if (result.Succeeded) //修改密码成功则登出,显示再次登录界面
                {
                    await this.SignInManager.SignOutAsync();

                    return(this.View("ModifySuccess"));
                }
                ModelState.AddModelError("", "原密码输入错误");
            }
            return(this.View(model));
        }
コード例 #9
0
        public async Task <IActionResult> Modify(string id)
        {
            if (id == null)
            {
                throw new ApplicationException($"Passed ID parameter is absent.");
            }

            var userSensor = await this.userSensorService.GetSensorByIdAsync(id);

            if (userSensor == null)
            {
                throw new ApplicationException($"Unable to find user sensor with ID '{id}'.");
            }

            var model = new ModifyViewModel(userSensor);

            return(View(model));
        }
コード例 #10
0
        public async Task <IActionResult> Modify(ModifyViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var userSensor = await this.userSensorService.GetSensorByIdAsync(model.Id.ToString());

            userSensor.Name            = model.Name;
            userSensor.Description     = model.Description;
            userSensor.AlarmTriggered  = model.AlarmTriggered;
            userSensor.AlarmMin        = model.AlarmMin;
            userSensor.AlarmMax        = model.AlarmMax;
            userSensor.IsPublic        = model.IsPublic;
            userSensor.PollingInterval = model.PollingInterval;
            userSensor.Latitude        = model.Latitude.ToString();
            userSensor.Longitude       = model.Longitude.ToString();
            userSensor.Coordinates     = model.Latitude + "," + model.Longitude;

            await this.userSensorService.UpdateUserSensorAsync(userSensor);

            return(RedirectToAction(nameof(Modify)));
        }
コード例 #11
0
        //修改密码视图
        public IActionResult ModifyPassword()
        {
            ModifyViewModel model = new ModifyViewModel();

            return(this.View(model));
        }