public ActionResult Edit(int id) { Client client = clientRepository.Where(c => c.Id == id).Single(); var clientViewModel = new ClientViewModel(client); var clientPageViewModel = new ClientPageViewModel(userManager.GetRoles(User.Identity.GetUserId()), clientViewModel); var consultantListToDropDown = _adminRepository.Where(cr => !cr.IsLockedOut && cr.Role.Any(r => r.Name == "consultant")).Select(c => new { Id = c.Id, Name = c.Name }).ToList(); consultantListToDropDown.Insert(0, new { Id = "", Name = "" }); clientPageViewModel.Consultant = new SelectList( consultantListToDropDown, "Id", "Name"); var accountManagerListToDropDown = _adminRepository.Where(cr => !cr.IsLockedOut && cr.Role.Any(r => r.Name == "sales")).Select(c => new { Id = c.Id, Name = c.Name }).ToList(); accountManagerListToDropDown.Insert(0, new { Id = "", Name = "" }); clientPageViewModel.AccountManager = new SelectList( accountManagerListToDropDown, "Id", "Name"); clientPageViewModel.HasAdminMenu = this.User.IsInRole("sales") || this.User.IsInRole("consultant"); clientPageViewModel.ClientId = id; clientPageViewModel.ClientName = client.Name; clientPageViewModel.HasWebTab = client.Labels.Any(l => l.Name == "Webbflik"); return(View(clientPageViewModel)); }
public ClientPage() { InitializeComponent(); viewModel = new ClientPageViewModel(); DataContext = viewModel; clientPage = this; }
public void InvalidModelStateWhenEditingClientDoesntEditClients() { var clientRepositoryMoq = new Mock <IRepository <Client> >(); var consultantRepository = new LocalRepository <InsideUser>(); var userManager = new Mock <IIdentityMembershipProvider>(); var labelRepository = new LocalRepository <Label>(); var consultant = new InsideUser() { Id = "Id1" }; //consultantRepositoryMoq.Setup(m => m.All()).Returns(consultants.AsQueryable); consultantRepository.Add(consultant); var clientController = new ClientController(clientRepositoryMoq.Object, labelRepository, consultantRepository, userManager.Object); var clientToEdit = ModelHelper.TestClient1AllDataNoReferences; clientToEdit.ConsultantId = "Id1"; clientToEdit.Consultant = consultant; clientToEdit.Consultant.Role = new Collection <InsideRole> { ModelHelper.TestConsultantRole }; var clientViewModel = new ClientViewModel(clientToEdit); var clilientPageViewModel = new ClientPageViewModel(new List <string>(), clientViewModel); clientController.ModelState.AddModelError("key", "error message"); var result = clientController.Edit(clilientPageViewModel) as ViewResult; //var consultants = result.ViewBag.Consultant as SelectList; Assert.AreEqual(1 + 1, clilientPageViewModel.Consultant.Count(), "+1 is for not to count Null consultant"); clientRepositoryMoq.Verify(r => r.Attach(It.IsAny <Client>()), Times.Never()); }
public IActionResult GetTableOfClients(int page = 1) { // 0. Фиксируем количество элементов на странице int pageSize = 3; // 1. Получаем данные о всех клиентах (коллекцию клиентов) из базы данных IQueryable <Client> source = db.Clients; // 1.1 Получаем общее количество клиентов int count = source.Count(); // 2. Получаем обрезанную выборку клиентов : // Для этого в оргинальной коллекции пропускаем (функция Skip) Page-1 страниц по PageSize клиентов на каждой // и из оставшихся берем (функция take) pageSize элементов List <Client> items = source.Skip((page - 1) * pageSize).Take(pageSize).ToList(); // 3. Если так получилось что на последней странице 0 элементов и при этом страниц больше одной // такое произойдет, если удалить единственного клиента на последней странице if (page > 1 && items.Count == 0) { // 3.1 Уменьшаем номер страницы на 1 page--; // 3.2 Заново формируем набор клиентов на страницу items = source.Skip((page - 1) * pageSize).Take(pageSize).ToList(); } // После того, как выборка клиентов сформирована // 4. Создаем PageViewModel PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); // 5. Создаем CientPageViewModel используя pageViewModel и список ClientPageViewModel viewModel = new ClientPageViewModel { PageViewModel = pageViewModel, Clients = items }; // 6. Возвращаем частичное представление сформированное из viewModel return(PartialView(viewModel)); }
public ActionResult Edit(ClientPageViewModel clientLoggedInViewModel) { var clientViewModel = clientLoggedInViewModel.ClientViewModel; if (ModelState.IsValid) { var client = new Client() { AccountManagerId = clientViewModel.AccountManagerId, Address = clientViewModel.Address, CallTrackingMetricId = clientViewModel.CallTrackingMetricId, ConsultantId = clientViewModel.ConsultantId, AnalyticsTableId = clientViewModel.AnalyticsTableId, Domain = clientViewModel.Domain, EmailAddress = clientViewModel.EmailAddress, Id = clientViewModel.Id, IsActive = clientViewModel.IsActive, Latitude = clientViewModel.Latitude, Longitude = clientViewModel.Longitude, Name = clientViewModel.Name, FeeFixedMonthly = clientViewModel.FeeFixedMonthly, FeePercent = ((decimal)(clientViewModel.FeePercent)) / 100m }; //client.ConsultantId = 1; clientRepository.Attach(client); clientRepository.SetState(client, EntityState.Modified); clientRepository.SaveChanges(); return(RedirectToAction("Index")); } var consultantListToDropDown = _adminRepository.Where(cr => !cr.IsLockedOut && cr.Role.Any(r => r.Name == "consultant")).Select(c => new { Id = c.Id, Name = c.Name }).ToList(); consultantListToDropDown.Insert(0, new { Id = "", Name = "" }); clientLoggedInViewModel.Consultant = new SelectList( consultantListToDropDown, "Id", "Name"); var accountManagerListToDropDown = _adminRepository.Where(cr => !cr.IsLockedOut && cr.Role.Any(r => r.Name == "sales")).Select(c => new { Id = c.Id, Name = c.Name }).ToList(); accountManagerListToDropDown.Insert(0, new { Id = "", Name = "" }); clientLoggedInViewModel.AccountManager = new SelectList( accountManagerListToDropDown, "Id", "Name"); return(View(clientLoggedInViewModel)); }
public void EditClientSavesForOkData() { var clientRepositoryMoq = new Mock <IRepository <Client> >(); var consultantRepositoryMoq = new Mock <IRepository <InsideUser> >(); var userManager = new Mock <IIdentityMembershipProvider>(); var labelRepository = new LocalRepository <Label>(); var clientController = new ClientController(clientRepositoryMoq.Object, labelRepository, consultantRepositoryMoq.Object, userManager.Object); var clientToSave = ModelHelper.TestClient1AllDataNoReferences; var clientViewModel = new ClientViewModel(clientToSave); var clilientPageViewModel = new ClientPageViewModel(new List <string>(), clientViewModel); var result = clientController.Edit(clilientPageViewModel); Assert.IsTrue(clientController.ViewData.ModelState.Count == 0, "Expected no validation errors."); clientRepositoryMoq.Verify(r => r.Attach(It.Is <Client>(c => c.Id == clientToSave.Id)), "Expected client attach"); clientRepositoryMoq.Verify(r => r.SaveChanges(), "Expected call to save changes"); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult), "Expected redirect after save."); }
public ClientPage(Client Client) { DataContext = new ClientPageViewModel(Client); InitializeComponent(); }