예제 #1
0
        public ActionResult Create(string returnUrl)
        {
            IEnumerable <Teacher> teacherList       = _teacherRepository.Select(new Repository.Filter.TeacherFilter {
            });
            List <SelectListItem> teacherSelectList = new List <SelectListItem>();

            foreach (var item in teacherList)
            {
                var selectedElement = new SelectListItem
                {
                    Text  = item.Name,
                    Value = item.Id.ToString()
                };
                teacherSelectList.Add(selectedElement);
            }


            var model = new OrganizationEditModel
            {
                ReturnUrl         = returnUrl,
                TeacherSelectList = teacherSelectList
            };

            return(View(model));
        }
예제 #2
0
        public async Task <IActionResult> Edit(OrganizationEditModel organization)
        {
            if (organization == null)
            {
                return(BadRequest());
            }

            var errors = _organizationValidator.Validate(organization);

            errors.ToList().ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            if (ModelState.IsValid)
            {
                var isNameUnique = await _mediator.SendAsync(new OrganizationNameUniqueQueryAsync { OrganizationName = organization.Name, OrganizationId = organization.Id });

                if (isNameUnique)
                {
                    var id = await _mediator.SendAsync(new EditOrganizationAsync { Organization = organization });

                    return(RedirectToAction(nameof(Details), new { id, area = "Admin" }));
                }

                ModelState.AddModelError(nameof(organization.Name), "Organization with same name already exists. Please use different name.");
            }

            return(View("Edit", organization));
        }
예제 #3
0
        public void Init()
        {
            var autoMapperBootstrapper = new AutoMapperBootstrapper();

            autoMapperBootstrapper.Bootstrap();

            DependencyRegistrar.RegisterDependencies();

            _organizationService        = IoC.Resolve <IOrganizationService>();
            _corporateAccountRepository = IoC.Resolve <ICorporateAccountRepository>();

            var organizationEditModel = new OrganizationEditModel
            {
                Name            = "TestOrg",
                Description     = "TestOrg Description",
                BusinessAddress =
                    new AddressEditModel()
                {
                    StreetAddressLine1 = "StreetAddressLine1",
                    StreetAddressLine2 = "StreetAddressLine1",
                    City      = "Austin",
                    StateId   = 123,
                    CountryId = 1,
                    ZipCode   = "78705"
                },
                BillingAddress =
                    new AddressEditModel()
                {
                    StreetAddressLine1 = "StreetAddressLine11",
                    StreetAddressLine2 = "StreetAddressLine11",
                    City      = "Austin",
                    StateId   = 123,
                    CountryId = 1,
                    ZipCode   = "78701"
                },
                PhoneNumber = new PhoneNumber()
                {
                    AreaCode = "+1", Number = "232131"
                },
                FaxNumber = new PhoneNumber()
                {
                    AreaCode = "+1", Number = "232131"
                },
                Email = "*****@*****.**"
            };

            _corporateAccountEditModel = new CorporateAccountEditModel
            {
                OrganizationEditModel = organizationEditModel,
                ContractNotes         = "Some Contract",
                DefaultPackages       =
                    new List <Package>
                {
                    new Package()
                    {
                        Id = 1, Name = "abc temp"
                    }
                }
            };
        }
예제 #4
0
    private OrganizationEditModel BuildOrganizationCreateModel()
    {
        var organizationCreateModel = new OrganizationEditModel();

        organizationCreateModel.Name             = txtbname.Text;
        organizationCreateModel.OrganizationType = OrganizationType.CallCenter;

        organizationCreateModel.Description = txtabtmself.Text;


        var businessAddress = new AddressEditModel();

        businessAddress.StreetAddressLine1 = txtaddress1.Text;
        businessAddress.StreetAddressLine2 = string.Empty;
        businessAddress.CountryId          = CountryId;//new CountryRepository().GetById(Convert.ToInt32(hfBusinessCountryID.Value)).Name;
        businessAddress.StateId            = Convert.ToInt32(ddlstate1.SelectedItem.Value);
        businessAddress.City    = txtBuCity.Text;
        businessAddress.ZipCode = txtzip1.Text;

        organizationCreateModel.BusinessAddress = businessAddress;

        //Have to remove this
        organizationCreateModel.PhoneNumber = new PhoneNumber()
        {
            Number = txtbphone.Text
        }.ToNumber();
        organizationCreateModel.FaxNumber = new PhoneNumber()
        {
            Number = txtbfax.Text
        }.ToNumber();

        return(organizationCreateModel);
    }
        public void CreatePostShouldInsertOrganization()
        {
            // Arrange
            CreateSut();
            OrganizationEditModel model   = AgincourtAware;
            IRequest <int>        command = new OrganizationEditCommand()
            {
                Organization = model
            };

            _mediator.Setup(y => y.Send(It.IsAny <OrganizationNameUniqueQuery>())).Returns(() =>
            {
                return(true);
            });
            _mediator.Setup(x => x.Send(It.IsAny <OrganizationEditCommand>())).Returns(() => {
                IRequestHandler <OrganizationEditCommand, int> handler = new OrganizationEditCommandHandler(Context);
                return(handler.Handle((OrganizationEditCommand)command));
            });

            // Act
            _sut.Edit(model);

            // Assert
            Assert.Single(Context.Organizations.Where(t => t.Name == model.Name));
        }
예제 #6
0
        public async Task <IActionResult> Edit(OrganizationEditModel request)
        {
            var dto = Mapper.Map <OrganizationEditDto>(request);

            // путь к папке Files
            string path = _appEnvironment.WebRootPath + "/Images/Org/";

            if (request.WorkToFile != null)
            {
                byte[] imageData = null;
                // считываем переданный файл в массив байтов
                using (var binaryReader = new BinaryReader(request.WorkToFile.OpenReadStream()))
                {
                    imageData = binaryReader.ReadBytes((int)request.WorkToFile.Length);
                }

                dto.File        = imageData;
                dto.PictureName = request.WorkToFile.FileName;
            }

            var result = await _service.EditItemAsync(dto, path);

            if (result.IsSuccess)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                foreach (var resultError in result.Errors)
                {
                    ModelState.AddModelError("Error", resultError);
                }
                return(View(request));
            }
        }
예제 #7
0
        private void SaveAssociatesforModel(OrganizationEditModel model)
        {
            Address address = null;

            if (model.BillingAddress != null && !model.BillingAddress.IsEmpty())
            {
                address = Mapper.Map <AddressEditModel, Address>(model.BillingAddress);
                address = _addressService.SaveAfterSanitizing(address);
                model.BillingAddress = Mapper.Map <Address, AddressEditModel>(address);
            }

            if (model.BusinessAddress != null && !model.BusinessAddress.IsEmpty())
            {
                address = Mapper.Map <AddressEditModel, Address>(model.BusinessAddress);
                address = _addressService.SaveAfterSanitizing(address);
                model.BusinessAddress = Mapper.Map <Address, AddressEditModel>(address);
            }

            if (model.LogoImage != null)
            {
                model.LogoImage = _fileRepository.Save(model.LogoImage);
            }
            if (model.TeamImage != null)
            {
                model.TeamImage = _fileRepository.Save(model.TeamImage);
            }
        }
예제 #8
0
        public IActionResult Edit(OrganizationEditModel organization)
        {
            if (organization == null)
            {
                return(HttpBadRequest());
            }

            if (ModelState.IsValid)
            {
                bool isNameUnique = _mediator.Send(new OrganizationNameUniqueQuery()
                {
                    OrganizationName = organization.Name, OrganizationId = organization.Id
                });
                if (isNameUnique)
                {
                    int id = _mediator.Send(new OrganizationEditCommand {
                        Organization = organization
                    });
                    return(RedirectToAction("Details", new { id = id, area = "Admin" }));
                }
                else
                {
                    ModelState.AddModelError(nameof(organization.Name), "Organization with same name already exists. Please use different name.");
                }
            }

            return(View("Edit", organization));
        }
예제 #9
0
        public static OrganizationEditModel GetOrganizationOneOrganizationEditModel()
        {
            var model = new OrganizationEditModel();

            model.OrganizationUid = OrganizationOneUid;
            model.Name            = OrganizationOneName;

            return(model);
        }
예제 #10
0
        public long Create(OrganizationEditModel model)
        {
            SaveAssociatesforModel(model);

            var binder       = new OrganizationCreateModelBinder();
            var organization = binder.ToDomain(model);

            return(_organizationRepository.SaveOrganization(organization));
        }
예제 #11
0
        public void CreateNewOrganizationPostReturnsBadRequestForNullOrganization()
        {
            OrganizationEditModel viewmodel = null;

            CreateSut();

            var result = _sut.Create(viewmodel);

            Assert.IsType <BadRequestResult>(result);
        }
예제 #12
0
        public async Task Edit_POST_InvalidModel()
        {
            // arrange
            var model = new OrganizationEditModel();

            // act
            var result = await SystemUnderTest.Edit(model);

            // assert
            AssertInputErrorMessagesOfView(result, model);
        }
        public void CreateNewOrganizationPostReturnsBadRequestForNullOrganization()
        {
            //arrange
            OrganizationEditModel viewmodel = null;
            var sut = new OrganizationController(MockMediatorCreateOrganization().Object);
            //act
            var result = sut.Create(viewmodel);

            //assert
            Assert.IsType <BadRequestResult>(result);
        }
        public List <KeyValuePair <string, string> > Validate(OrganizationEditModel model)
        {
            var result = new List <KeyValuePair <string, string> >();

            if (string.IsNullOrEmpty(model.PrivacyPolicy) && string.IsNullOrEmpty(model.PrivacyPolicyUrl))
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.PrivacyPolicyUrl), "You must either supply a URL to a privacy policy or supply the privacy policy content."));
            }

            return(result);
        }
        public List<KeyValuePair<string, string>> Validate(OrganizationEditModel model)
        {
            var result = new List<KeyValuePair<string, string>>();

            if (string.IsNullOrEmpty(model.PrivacyPolicy) && string.IsNullOrEmpty(model.PrivacyPolicyUrl))
            {
                result.Add(new KeyValuePair<string, string>(nameof(model.PrivacyPolicyUrl), "You must either supply a URL to a privacy policy or supply the privacy policy content."));
            }

            return result;
        }
예제 #16
0
        public static OrganizationEditModel MapOrganizationEditModel(OrganizationDto dto)
        {
            var model = new OrganizationEditModel();

            model.OrganizationUid = dto.Uid;
            model.Name            = dto.Name;
            model.Description     = dto.Description;
            model.SetInputModelValues();

            return(model);
        }
예제 #17
0
        public IActionResult Edit(OrganizationEditModel organization)
        {
            if (ModelState.IsValid)
            {
                int id = _bus.Send(new OrganizationEditCommand {
                    Organization = organization
                });
                return(RedirectToAction("Details", new { id = id, area = "Admin" }));
            }

            return(View("Edit", organization));
        }
        public void EditPostShouldReturnTheEditViewWithTheModelPassedInIfTheModelStateIsInvalid()
        {
            CreateSut();
            AddErrorToModelState();

            var model = new OrganizationEditModel();

            var result = (ViewResult)_sut.Edit(model);

            Assert.Equal("Edit", result.ViewName);
            Assert.Same(model, result.ViewData.Model);
        }
        public void CreateNewOrganizationWithExistingOrganizationNameReturnsEditView()
        {
            CreateSut();
            var model = new OrganizationEditModel();

            model.Name = "test";
            model.Id   = 0;
            _mediator.Setup(x => x.Send(It.Is <OrganizationEditCommand>(y => y.Organization == model))).Returns(Id);
            var result = (ViewResult)_sut.Create();

            Assert.Equal("Edit", result.ViewName);
        }
예제 #20
0
        public async Task EditPostReturnsTheCorrectViewAndViewModelWhenModelStateIsInvalid()
        {
            var model = new OrganizationEditModel();

            var controller = new OrganizationController(new Mock <IMediator>().Object, SuccessValidator());

            controller.ModelState.AddModelError("foo", "bar");
            var result = (ViewResult)await controller.Edit(model);

            Assert.Equal("Edit", result.ViewName);
            Assert.Same(model, result.ViewData.Model);
        }
예제 #21
0
        public void EditGetShouldReturnEditViewWhenMediatorReturnsOrganizationEditModel()
        {
            CreateSut();

            var model = new OrganizationEditModel();

            _mediator.Setup(x => x.Send(It.Is <OrganizationEditQuery>(y => y.Id == Id))).Returns(model);

            var result = (ViewResult)_sut.Edit(Id);

            Assert.Equal("Edit", result.ViewName);
            Assert.Same(model, result.ViewData.Model);
        }
예제 #22
0
        public async Task EditGetReturnsCorrectViewAndViewModel_WhenMediatorReturnsOrganizationEditModel()
        {
            CreateSut();

            var model = new OrganizationEditModel();

            _mediator.Setup(x => x.SendAsync(It.Is <OrganizationEditQueryAsync>(y => y.Id == Id))).ReturnsAsync(model);

            var result = (ViewResult)await _sut.Edit(Id);

            Assert.Equal("Edit", result.ViewName);
            Assert.Same(model, result.ViewData.Model);
        }
예제 #23
0
        public async Task EditPostSendsOrganizationNameUniqueQueryWithCorrectParametersWhenModelStateIsValid()
        {
            var mediator = new Mock <IMediator>();
            var organizationEditModel = new OrganizationEditModel {
                Name = "name", Id = 1
            };

            var controller = new OrganizationController(mediator.Object, SuccessValidator());
            await controller.Edit(organizationEditModel);

            mediator.Verify(x => x.SendAsync(It.Is <OrganizationNameUniqueQueryAsync>(y => y.OrganizationName == organizationEditModel.Name && y.OrganizationId == organizationEditModel.Id)),
                            Times.Once());
        }
        public void EditPostShouldRedirectToDetailsWithTheIdFromTheBusIfModelStateIsValid()
        {
            CreateSut();

            var model = new OrganizationEditModel();

            _bus.Setup(x => x.Send(It.Is <OrganizationEditCommand>(y => y.Organization == model))).Returns(Id);

            var result = (RedirectToActionResult)_sut.Edit(model);

            Assert.Equal("Details", result.ActionName);
            Assert.Equal("Admin", result.RouteValues["area"]);
            Assert.Equal(Id, result.RouteValues["id"]);
        }
예제 #25
0
        public async Task <IActionResult> Edit(Guid id, OrganizationEditModel model)
        {
            var organization = await _organizationRepository.GetByIdAsync(id);

            if (organization == null)
            {
                return(RedirectToAction("Index"));
            }

            model.ToOrganization(organization);
            await _organizationRepository.ReplaceAsync(organization);

            return(RedirectToAction("Edit", new { id }));
        }
예제 #26
0
 public OrganizationControllerTests()
 {
     _organizationEditModel = new OrganizationEditModel
     {
         Id      = 0,
         LogoUrl = "http://www.example.com/image.jpg",
         Name    = "Test",
         PrimaryContactFirstName   = "FirstName",
         PrimaryContactLastName    = "LastName",
         PrimaryContactPhoneNumber = "0123456798",
         PrimaryContactEmail       = "*****@*****.**",
         WebUrl = "http://www.example.com"
     };
 }
 public Organization ToDomain(Organization domain, OrganizationEditModel model)
 {
     domain.Id = model.Id;
     domain.BillingAddressId  = model.BillingAddress != null ? model.BillingAddress.Id : 0;
     domain.BusinessAddressId = model.BusinessAddress != null ? model.BusinessAddress.Id : 0;
     domain.Description       = model.Description;
     domain.Email             = model.Email;
     domain.PhoneNumber       = model.PhoneNumber;
     domain.FaxNumber         = model.FaxNumber;
     domain.LogoImageId       = model.LogoImage != null ? model.LogoImage.Id : 0;
     domain.TeamImageId       = model.TeamImage != null ? model.TeamImage.Id : 0;
     domain.Name             = model.Name;
     domain.OrganizationType = model.OrganizationType;
     return(domain);
 }
 public OrganizationEditModel ToModel(OrganizationEditModel model, Organization organization, AddressEditModel billingAddress, AddressEditModel businessAddress, File logoImage, File teamImage)
 {
     model.BillingAddress  = billingAddress;
     model.BusinessAddress = businessAddress;
     model.Description     = organization.Description;
     model.Email           = organization.Email;
     model.FaxNumber       = organization.FaxNumber;
     model.Id               = organization.Id;
     model.LogoImage        = logoImage;
     model.Name             = organization.Name;
     model.OrganizationType = organization.OrganizationType;
     model.PhoneNumber      = organization.PhoneNumber;
     model.TeamImage        = teamImage;
     return(model);
 }
예제 #29
0
        public async Task EditPostRedirectsToCorrectActionWithCorrectData_WhenModelStateIsValid_AndOrganizationNameIsUnique()
        {
            var model        = new OrganizationEditModel();
            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(y => y.SendAsync(It.IsAny <OrganizationNameUniqueQueryAsync>())).ReturnsAsync(true);
            mockMediator.Setup(x => x.SendAsync(It.Is <EditOrganizationAsync>(y => y.Organization == model))).ReturnsAsync(Id);

            var controller = new OrganizationController(mockMediator.Object, SuccessValidator());
            var result     = (RedirectToActionResult)await controller.Edit(model);

            Assert.Equal("Details", result.ActionName);
            Assert.Equal("Admin", result.RouteValues["area"]);
            Assert.Equal(Id, result.RouteValues["id"]);
        }
예제 #30
0
        public async Task <IActionResult> Edit(Guid id, OrganizationEditModel model)
        {
            var organization = await _organizationRepository.GetByIdAsync(id);

            model.ToOrganization(organization);
            await _organizationRepository.ReplaceAsync(organization);

            await _applicationCacheService.UpsertOrganizationAbilityAsync(organization);

            await _referenceEventService.RaiseEventAsync(new ReferenceEvent(ReferenceEventType.OrganizationEditedByAdmin, organization) {
                EventRaisedByUser         = _userService.GetUserName(User),
                SalesAssistedTrialStarted = model.SalesAssistedTrialStarted,
            });

            return(RedirectToAction("Edit", new { id }));
        }
 public Organization ToDomain(OrganizationEditModel model)
 {
     return(new Organization(model.Id)
     {
         BillingAddressId = model.BillingAddress != null ? model.BillingAddress.Id : 0,
         BusinessAddressId = model.BusinessAddress != null ? model.BusinessAddress.Id : 0,
         Description = model.Description,
         Email = model.Email,
         PhoneNumber = model.PhoneNumber,
         FaxNumber = model.FaxNumber,
         LogoImageId = model.LogoImage != null ? model.LogoImage.Id : 0,
         TeamImageId = model.TeamImage != null ? model.TeamImage.Id : 0,
         Name = model.Name,
         OrganizationType = model.OrganizationType
     });
 }