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

            var rule = this.AttachmentRuleService.Create();
            var privilege = new AttachmentRulePrivilege();

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

            value.Validate();

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

                this.AttachmentRuleService.InsertOrUpdate(rule);

                value = new AttachmentRuleCreateOrUpdate(rule);
                value.SuccessMessage(Messages.AttachmentRuleCreated.FormatInvariant(rule.FileType, rule.Group));
            }
            else
            {
                value.CopyToModel(ModelState);
            }

            return base.View(Views.Update, value);
        }
        public void Test_AttachmentRuleCreateOrUpdate_Validate()
        {
            var value = new AttachmentRuleCreateOrUpdate();

            value.Validate();

            Assert.AreEqual(3, value.Errors.Count, "Errors");
        }
        public void Test_AttachmentRuleCreateOrUpdate_ValueToModel()
        {
            var value = new AttachmentRuleCreateOrUpdate
            {
                Group = "test",
                FileType = "test2",
                FileExtension = "test3",
                FileSize = 2,
                FileWidth = 3,
                FileHeight = 4
            };

            var rule = new AttachmentRule();

            value.ValueToModel(rule);

            Assert.AreEqual("test", rule.Group, "Group");
            Assert.AreEqual("test2", rule.FileType, "FileType");
            Assert.AreEqual("test3", rule.FileExtension, "FileExtension");
            Assert.AreEqual(2, rule.FileSize, "FileSize");
            Assert.AreEqual(3, rule.FileWidth, "FileWidth");
            Assert.AreEqual(4, rule.FileHeight, "FileHeight");
        }
        public void Test_AttachmentRuleCreateOrUpdate()
        {
            var value = new AttachmentRuleCreateOrUpdate(
                new AttachmentRule
                {
                    Id = 1,
                    Group = "test",
                    FileType = "test2",
                    FileExtension = "test3",
                    FileSize = 2,
                    FileWidth = 3,
                    FileHeight = 4
                }
            );

            Assert.AreEqual(1, value.Id, "Id");
            Assert.AreEqual("test", value.Group, "Group");
            Assert.AreEqual("test2", value.FileType, "FileType");
            Assert.AreEqual("test3", value.FileExtension, "FileExtension");
            Assert.AreEqual(2, value.FileSize, "FileSize");
            Assert.AreEqual(3, value.FileWidth, "FileWidth");
            Assert.AreEqual(4, value.FileHeight, "FileHeight");
        }
        public void Test_AttachmentRuleController_Create_Post()
        {
            PrincipalHelper.Create();

            var value = new AttachmentRuleCreateOrUpdate
            {
                Group = "test",
                FileType = "test",
                FileExtension = "test"
            };

            var viewResult = this.AttachmentRuleController.Create(value) as ViewResult;

            Assert.IsNotNull(viewResult, "ViewResult");
            Assert.AreEqual(Views.Update, viewResult.ViewName, "ViewName");

            var model = viewResult.Model as AttachmentRuleCreateOrUpdate;

            Assert.IsNotNull(model, "Model");
            Assert.AreEqual(Messages.AttachmentRuleCreated.FormatInvariant(model.FileType, model.Group), model.Message.Message);

            value = new AttachmentRuleCreateOrUpdate();

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

            Assert.IsNotNull(errorResult, "ErrorResult");
            Assert.AreEqual(Views.Update, viewResult.ViewName, "ErrorViewName");
            Assert.AreEqual(3, value.Errors.Count, "Errors");

            PrincipalHelper.Clear();

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

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