// // GET: /DataSources/ public ActionResult Index() { var model = new DataSourceIndexViewModel(); model.CurrentUser = new AppUser(); model.DataSources = new List <DataSource>(); model.NewDataSource = new _DataSourcesCreateViewModel(); model.UpdateDataSource = new DataSource(); var userEmail = HttpContext.User.Identity.Name; var user = _context.AppUsers.SingleOrDefault(u => u.Email == userEmail); model.CurrentUser = user; model.NewDataSource.CurrentUser = user; model.IsSuperAdmin = (user.Roles.Where(r => r.Name == "SuperAdmin")).Count() == 1; model.IsCompanyAdmin = (user.Roles.Where(r => r.Name == "CompanyAdmin")).Count() == 1; if (!model.IsSuperAdmin && !model.IsCompanyAdmin) { return(View("~/Views/Shared/Errors/Error_403.cshtml")); } var usersList = _context.AppUsers.ToList(); List <AppUser> candidatsCompanyAdminList = new List <AppUser>(); foreach (var item in usersList) { var role = item.Roles.ToList(); if (role[0].Name == "CompanyAdmin") { item.UserProfile = _context.UserProfiles.SingleOrDefault(x => x.Id == item.Id); candidatsCompanyAdminList.Add(item); } } var companyCAList = candidatsCompanyAdminList.Select(r => new ListBoxItems() { Id = r.Id, Name = r.UserProfile.FirstName + " " + r.UserProfile.LastName }).ToList(); ViewBag.CandidatsCompanyAdmin = new SelectList(companyCAList, "Id", "Name", 0); return(View(model)); }
//public ActionResult Save(DataSource dataSource) public ActionResult Save(_DataSourcesCreateViewModel _viewModel) { if (!ModelState.IsValid) { var model = new DataSourceIndexViewModel(); model.CurrentUser = new AppUser(); model.DataSources = new List <DataSource>(); model.NewDataSource = new _DataSourcesCreateViewModel(); model.UpdateDataSource = new DataSource(); var userEmail = HttpContext.User.Identity.Name; var user = _context.AppUsers.SingleOrDefault(u => u.Email == userEmail); model.CurrentUser = user; model.NewDataSource.CurrentUser = user; model.IsSuperAdmin = (user.Roles.Where(r => r.Name == "SuperAdmin")).Count() == 1; model.IsCompanyAdmin = (user.Roles.Where(r => r.Name == "CompanyAdmin")).Count() == 1; if (!model.IsSuperAdmin && !model.IsCompanyAdmin) { return(View("~/Views/Shared/Errors/Error_403.cshtml")); } var usersList = _context.AppUsers.ToList(); List <AppUser> candidatsCompanyAdminList = new List <AppUser>(); foreach (var item in usersList) { var role = item.Roles.ToList(); if (role[0].Name == "CompanyAdmin") { item.UserProfile = _context.UserProfiles.SingleOrDefault(x => x.Id == item.Id); candidatsCompanyAdminList.Add(item); } } var companyCAList = candidatsCompanyAdminList.Select(r => new ListBoxItems() { Id = r.Id, Name = r.UserProfile.FirstName + " " + r.UserProfile.LastName }).ToList(); ViewBag.CandidatsCompanyAdmin = new SelectList(companyCAList, "Id", "Name", 0); return(View("Index", model)); } if (_viewModel.NewDataSource.Id == 0) { _context.DataSources.Add(_viewModel.NewDataSource); } else { var dataSourceInDb = _context.DataSources.Single(c => c.Id == _viewModel.NewDataSource.Id); dataSourceInDb.Type = _viewModel.NewDataSource.Type; dataSourceInDb.UserName = _viewModel.NewDataSource.UserName; dataSourceInDb.ServerName = _viewModel.NewDataSource.ServerName; dataSourceInDb.Password = _viewModel.NewDataSource.Password; dataSourceInDb.DatabaseName = _viewModel.NewDataSource.DatabaseName; dataSourceInDb.ConnectionString = _viewModel.NewDataSource.ConnectionString; } _context.SaveChanges(); return(RedirectToAction("Index", "DataSources")); }