public ActionResult Create(UserHostSearchCreate value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            var search = this.UserHostSearchService.Create();
            var privilege = new UserHostSearchPrivilege();

            if (!privilege.CanCreate(search))
            {
                return NotAuthorized();
            }

            value.Validate();

            if (value.IsValid)
            {
                value.ValueToModel(search);

                this.UserHostSearchService.Insert(search);

                return base.RedirectToRoute(UsersAdministrationRoutes.HostSearchIndex, new { id = search.Id });
            }

            value.CopyToModel(ModelState);

            var searches = this.UserHostSearchService.GetAll(new UserHostSearchUserSpecification(base.Identity.Id));

            value.Initialize(searches);

            return base.View(Views.Create, value);
        }
        public void Test_UserHostSearchCreate_Initialize()
        {
            var value = new UserHostSearchCreate();

            value.Initialize(new List<UserHostSearch>());

            Assert.IsNotNull(value.Searches, "Searches");
        }
        public void Test_UserHostSearchCreate_Validate()
        {
            var value = new UserHostSearchCreate
            {
                Save = true
            };

            value.Validate();

            Assert.AreEqual(1, value.Errors.Count, "Errors");
        }
        public ActionResult Create()
        {
            var search = this.UserHostSearchService.Create();
            var privilege = new UserHostSearchPrivilege();

            if (!privilege.CanCreate(search))
            {
                return NotAuthorized();
            }

            var searches = this.UserHostSearchService.GetAll(new UserHostSearchUserSpecification(base.Identity.Id));
            var value = new UserHostSearchCreate();

            value.Initialize(searches);

            return base.View(Views.Create, value);
        }
        public void Test_HostSearchController_Create_Post()
        {
            PrincipalHelper.Create();

            var value = new UserHostSearchCreate();
            var redirectToRouteResult = this.HostSearchController.Create(value) as RedirectToRouteResult;

            Assert.IsNotNull(redirectToRouteResult, "RedirectToRouteResult");
            Assert.AreEqual(UsersAdministrationRoutes.HostSearchIndex, redirectToRouteResult.RouteName);

            value.Save = true;

            var errorResult = this.HostSearchController.Create(value) as ViewResult;

            Assert.IsNotNull(errorResult, "ErrorResult");
            Assert.AreEqual(Views.Create, errorResult.ViewName, "ErrorViewName");
            Assert.AreEqual(1, value.Errors.Count, "Errors");

            PrincipalHelper.Clear();

            var notAuthorizedResult = this.HostSearchController.Create(value) as NotAuthorizedResult;

            Assert.IsNotNull(notAuthorizedResult, "NotAuthorizedResult");
        }