public async Task <ActionResult> AddUser([Bind()] CompanyUserViewModel company) { _userId = User.Identity.GetUserId(); company.UserId = Guid.NewGuid().ToString(); company.CompanyId = await _companyService.GetCompanyByUserId(_userId); if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser(); newUser.Id = company.UserId; newUser.Password = company.Password; newUser.UserName = company.UserName; newUser.Email = company.Email; // Add the user to users await _companyService.CreateUser(newUser); // Add the User to UsersRoles table await _companyService.AddUserToRole(company.UserId, company.UserRole); // Add the user to the companyuser table await _companyService.CreateCompanyUserRel(company.UserId, company.CompanyId); // await _companyService.RegisterNewCompany(company); } return(RedirectToAction("Index", "Login")); }
public IActionResult UserDetail(CompanyUserViewModel model) { // Check company contact if (model.IsCompanyContact == true && model.CompanyDetails.UserId != model.UserDetails.UserId) { CompanyDetail companyDetail = _context.CompanyDetails.SingleOrDefault(c => c.Id == model.CompanyDetails.Id); model = SetCompanyContact(model); companyDetail.UserId = model.CompanyDetails.UserId; _context.SaveChanges(); StatusMessage = "Company contact has been updated"; } else if (model.IsCompanyContact == false && model.CompanyDetails.UserId == model.UserDetails.UserId) { StatusMessage = "There must be a user set as company contact.\nSet a different user as company contact to remove this user."; } // update role details UserDetail userDetail = _context.UserDetails.SingleOrDefault(c => c.UserId == model.UserDetails.UserId); if (userDetail.ProfileId != model.UserDetails.Profile.Id) { userDetail.ProfileId = model.UserDetails.Profile.Id; _context.SaveChanges(); StatusMessage = "User role has been updated"; } return(RedirectToAction(nameof(UserDetail))); }
public CompanyUserResponse Create(CompanyUserViewModel companyUser) { CompanyUserResponse response = new CompanyUserResponse(); using (SqliteConnection db = new SqliteConnection(SQLiteHelper.SqLiteTableName)) { db.Open(); SqliteCommand insertCommand = db.CreateCommand(); insertCommand.CommandText = SqlCommandInsertPart; try { insertCommand = AddCreateParameters(insertCommand, companyUser); insertCommand.ExecuteNonQuery(); } catch (SqliteException error) { //MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; return(response); } db.Close(); response.Success = true; return(response); } }
public async Task <IActionResult> Edit([FromBody] CompanyUserViewModel companyUserViewModel) { try { var account = userManager.FindByIdAsync(companyUserViewModel.IdentityUserId).Result; var roles = userManager.GetRolesAsync(account).Result; account.FirstName = companyUserViewModel.UserDto.FirstName; account.LastName = companyUserViewModel.UserDto.LastName; account.Email = companyUserViewModel.UserDto.Email; account.PhoneNumber = companyUserViewModel.UserDto.MobileNumber; account.Id = companyUserViewModel.IdentityUserId; await userManager.UpdateAsync(account); // var v = CompanyUserViewModel.UserRoles.Where(p => !p.Selected && roles.Contains(p.RoleName)).Select(p => p.RoleName).ToList(); var deleteRoles = userManager.RemoveFromRolesAsync(account, roles).Result; await userManager.AddToRolesAsync(account, companyUserViewModel.UserRoles.Where(p => p.Selected).Select(p => p.RoleName).ToList()); companyUserViewModel.UserDto.ModifiedUser = User.FindFirst("FullName").Value; var companyUser = companyUserService.GetCompanyUserbyUserAccountId(account.AccountId); companyUserViewModel.UserDto.Id = companyUser.Id; companyUserViewModel.UserDto.AccountId = companyUser.AccountId; companyUserService.Update(companyUserViewModel.UserDto); return(Ok()); } catch (Exception ex) { return(BadRequest()); } }
public IActionResult Edit(int id) { var users = userManager.Users.Where(user => user.IsEnabled).ToList(); var companyUser = companyUserService.GetAll().Where(user => user.Id == id && user.RecordStatus == Helpdesk.Model.Enums.RecordStatus.A); var joinedData = users.Join(companyUser, p => p.AccountId, q => q.AccountId, (p, q) => p.Id).FirstOrDefault(); var account = userManager.FindByIdAsync(joinedData).Result; var roles = userManager.GetRolesAsync(account).Result; var User = companyUserService.GetCompanyUserbyUserAccountId(account.AccountId); var CompanyUserViewModel = new CompanyUserViewModel(); CompanyUserViewModel.UserDto.AccountId = User.AccountId; CompanyUserViewModel.UserDto.CompanyId = User.CompanyId; CompanyUserViewModel.UserDto.Email = User.Email; CompanyUserViewModel.UserDto.FirstName = User.FirstName; CompanyUserViewModel.UserDto.LastName = User.LastName; CompanyUserViewModel.UserDto.TrIdentityNumber = User.TrIdentityNumber; CompanyUserViewModel.IdentityUserId = account.Id; CompanyUserViewModel.UserDto.MobileNumber = User.MobileNumber; CompanyUserViewModel.CompanyId = User.CompanyId; foreach (var role in roles) { var userRole = CompanyUserViewModel.UserRoles.FirstOrDefault(p => p.RoleName == role); if (userRole != null) { userRole.Selected = true; } } ViewBag.CompanyUserViewModel = JsonConvert.SerializeObject(CompanyUserViewModel); return(View()); }
public UserAddEdit(UserViewModel userViewModel, bool isCreateProcess, bool isPopup = false) { // Initialize service this.userService = DependencyResolver.Kernel.Get <IUserService>(); this.companyService = DependencyResolver.Kernel.Get <ICompanyService>(); InitializeComponent(); this.DataContext = this; CurrentUser = userViewModel; IsCreateProcess = isCreateProcess; IsPopup = isPopup; RolesFromDB = new ObservableCollection <UserRoleViewModel>(UserRolesHelper.GetAvailableRoles()); UserRolesItemForm = new CompanyUserViewModel(); Thread td = new Thread(() => DisplayItems()); td.IsBackground = true; td.Start(); Thread displayThread = new Thread(() => PopulateCompanyData()); displayThread.IsBackground = true; displayThread.Start(); }
public CompanyUserViewModel SetCompanyContact(CompanyUserViewModel model) { model.IsCompanyContact = true; model.CompanyDetails.UserId = model.UserDetails.UserId; return(model); }
private void btnCancelCompanyUser_Click(object sender, RoutedEventArgs e) { UserRolesItemForm = new CompanyUserViewModel(); foreach (var item in RolesFromDB) { item.IsChecked = false; } }
public static CompanyUser ConvertToCompanyUser(this CompanyUserViewModel companyUser) { CompanyUser viewModel = new CompanyUser() { Id = companyUser?.Id ?? 0, Identifier = companyUser?.Identifier ?? Guid.Empty, Active = companyUser?.IsActive ?? false, CompanyId = companyUser?.Company?.Id ?? null, UserId = companyUser?.User?.Id ?? null, UpdatedAt = companyUser?.UpdatedAt ?? DateTime.MinValue, RolesCSV = companyUser?.UserRoles?.RolesToCSV() ?? "" }; return(viewModel); }
public CustomIdentity(int id, string firstName, string lastName, Guid userIdentifier, string email, int companyId, Guid companyIdentifier, string companyName, UserViewModel user, CompanyUserViewModel compUser) { Id = id; Name = firstName; LastName = lastName; UserIdentifier = userIdentifier; Email = email; CompanyId = companyId; CompanyIdentifier = companyIdentifier; CompanyName = companyName; CompanyUser = user; CompanyUserData = compUser; Roles = compUser?.UserRoles?.Select(x => x.Name)?.ToList() ?? new List <string>(); }
public static CompanyUserViewModel ConvertToCompanyUserViewModel(this CompanyUser companyUser) { CompanyUserViewModel viewModel = new CompanyUserViewModel() { Id = companyUser?.Id ?? 0, Identifier = companyUser?.Identifier ?? Guid.Empty, IsActive = companyUser?.Active ?? false, Company = companyUser?.Company?.ConvertToCompanyViewModelLite(), User = companyUser?.User?.ConvertToUserViewModelLite(), UpdatedAt = companyUser?.UpdatedAt ?? DateTime.MinValue, IsSynced = true, UserRoles = companyUser?.RolesCSV?.RolesFromCSV() ?? new List <UserRoleViewModel>() }; return(viewModel); }
public CompanyUserResponse Create(CompanyUserViewModel companyUser) { CompanyUserResponse response = new CompanyUserResponse(); try { response = WpfApiHandler.SendToApi <CompanyUserViewModel, CompanyUserResponse>(companyUser, "Create"); } catch (Exception ex) { response.CompanyUser = new CompanyUserViewModel(); response.Success = false; response.Message = ex.Message; } return(response); }
public IActionResult Create() { var companies = companyService.GetAllCompanyJson(); ViewBag.Companies = companies; var companyUserViewModel = new CompanyUserViewModel(); ViewBag.Model = JsonConvert.SerializeObject(companyUserViewModel); var user = httpContextAccessor.HttpContext.User; IEnumerable <Claim> claims = user.Claims; var accId = claims.Where(x => x.Type == "AccountId").Select(c => c.Value).SingleOrDefault(); var currentRoles = claims.Where(x => x.Type == ClaimTypes.Role).Select(c => c.Value).ToList(); ViewBag.CurrentRoles = JsonConvert.SerializeObject(currentRoles); return(View()); }
private SqliteCommand AddCreateParameters(SqliteCommand insertCommand, CompanyUserViewModel companyUser) { var userRoleStr = companyUser?.UserRoles?.RolesToCSV(); insertCommand.Parameters.AddWithValue("@ServerId", companyUser.Id); insertCommand.Parameters.AddWithValue("@Identifier", companyUser.Identifier); insertCommand.Parameters.AddWithValue("@UserId", ((object)companyUser.User?.Id) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@UserIdentifier", ((object)companyUser.User?.Identifier) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@UserName", ((object)(companyUser.User?.FirstName + " " + companyUser.User?.LastName)) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@UserRoles", ((object)userRoleStr) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@IsSynced", companyUser.IsSynced); insertCommand.Parameters.AddWithValue("@UpdatedAt", ((object)companyUser.UpdatedAt) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@CompanyId", ((object)companyUser.Company?.Id) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@CompanyName", ((object)companyUser.Company?.CompanyName) ?? DBNull.Value); return(insertCommand); }
private void btnSaveCompanyUser_Click(object sender, RoutedEventArgs e) { // Save header for any new change btnSaveHeader_Click(sender, e); #region Validation #endregion if (!IsHeaderCreated) { MainWindow.WarningMessage = ((string)Application.Current.FindResource("Zaglavlje_nije_sačuvano")); return; } var rolesList = RolesFromDB.Where(x => x.IsChecked) .ToList(); UserRolesItemForm.UserRoles = rolesList; UserRolesItemForm.User = CurrentUser; if (UserRolesItemForm.Identifier == Guid.Empty) { UserRolesItemForm.Identifier = Guid.NewGuid(); } var sqLite = new CompanyUserSQLiteRepository(); sqLite.Delete(UserRolesItemForm.Identifier); var response = sqLite.Create(UserRolesItemForm); if (!response.Success) { MainWindow.ErrorMessage = response.Message; } else { Thread td = new Thread(() => DisplayItems()); td.IsBackground = true; td.Start(); UserRolesItemForm = new CompanyUserViewModel(); UserRolesItemForm.Company = CompaniesFromDB.FirstOrDefault(); } }
public CompanyUserResponse GetCompanyUser(int companyId, int userId) { CompanyUserResponse response = new CompanyUserResponse(); CompanyUserViewModel user = null; try { using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "from CompanyUsers " + "WHERE @CompanyId = CompanyId AND @UserId = UserId ", db); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); selectCommand.Parameters.AddWithValue("@UserId", userId); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { user = Read(query); } db.Close(); } } catch (SqliteException error) { response.Success = false; response.Message = error.Message; response.CompanyUser = new CompanyUserViewModel(); //MainWindow.ErrorMessage = error.Message; return(response); } response.Success = true; response.CompanyUser = user; return(response); }
// GET: AddCompanyUser public ActionResult Index() { List <SelectListItem> roles = new List <SelectListItem>(); roles.Add(new SelectListItem { Text = "Administrator", Value = "Administrator" }); roles.Add(new SelectListItem { Text = "JobViewer", Value = "JobViewer" }); roles.Add(new SelectListItem { Text = "JobPoster", Value = "JobPoster" }); CompanyUserViewModel Model = new CompanyUserViewModel(); Model.Roles = roles; return(View(Model)); }
private CompanyUserViewModel Read(SqliteDataReader query) { int counter = 0; CompanyUserViewModel dbEntry = new CompanyUserViewModel(); dbEntry.Id = SQLiteHelper.GetInt(query, ref counter); dbEntry.Identifier = SQLiteHelper.GetGuid(query, ref counter); dbEntry.User = SQLiteHelper.GetCompanyUser(query, ref counter); var userRoles = SQLiteHelper.GetString(query, ref counter)?.RolesFromCSV() ?? new List <UserRoleViewModel>(); dbEntry.UserRoles = userRoles; dbEntry.IsSynced = SQLiteHelper.GetBoolean(query, ref counter); dbEntry.UpdatedAt = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.Company = SQLiteHelper.GetCompany(query, ref counter); return(dbEntry); }
public CompanyUserResponse Create(CompanyUserViewModel companyUser) { CompanyUserResponse response = new CompanyUserResponse(); try { var savedItem = unitOfWork.GetCompanyUserRepository().Create(companyUser?.ConvertToCompanyUser()); unitOfWork.Save(); response.Success = true; response.CompanyUser = savedItem?.ConvertToCompanyUserViewModel(); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; response.CompanyUser = new CompanyUserViewModel(); } return(response); }
public JsonResult Create([FromBody] CompanyUserViewModel c) { CompanyUserResponse response = new CompanyUserResponse(); try { response = this.userService.Create(c); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; Console.WriteLine(ex.Message); } return(Json(response, new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.Indented })); }
public CompanyUserViewModel LoadCompanyViewModel(long id) { var model = new CompanyUserViewModel { StatusMessage = StatusMessage }; List <SelectListItem> userRoles = new List <SelectListItem>(); var resultList = _context.Profiles.ToList(); foreach (var item in resultList) { userRoles.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Role }); } model.UserRoles = userRoles; model.UserDetails = _context.UserDetails.Include(c => c.UserContact).SingleOrDefault(c => c.Id == id); model.CompanyDetails = _context.CompanyDetails.SingleOrDefault(c => c.Id == model.UserDetails.CompanyId); return(model); }
private void btnLogIn_Click(object sender, RoutedEventArgs e) { if (InputIsValid()) { string username = txtUsername.Text; string password = txtPasswordBox.Password; try { //Validate credentials through the authentication service UserSQLiteRepository userSQLiteRepository = new UserSQLiteRepository(); UserViewModel userViewModel = new UserViewModel(); CompanyViewModel company = CompaniesFromDB.Where(x => x.Identifier != Guid.Empty).FirstOrDefault(); CompanyUserViewModel compUser = null; userSQLiteRepository.GetUsers(); UserResponse userResponse = userSQLiteRepository.Authenticate(username, CalculateHash(password, username), company.Id); if (userResponse.Success && userResponse.User != null) { userViewModel = userResponse.User; var companyUser = new CompanyUserSQLiteRepository().GetCompanyUser(company.Id, userViewModel.Identifier); if (companyUser.Success) { compUser = companyUser.CompanyUser; } } else { userResponse = authenticationService.Authenticate(username, CalculateHash(password, username)); if (!userResponse.Success || userResponse.User == null) { throw new UnauthorizedAccessException(); } userViewModel = userResponse.User; var companyUser = new CompanyUserSQLiteRepository().GetCompanyUser(company.Id, userViewModel.Identifier); if (companyUser.Success) { compUser = companyUser.CompanyUser; } } if (compUser == null) { throw new UnauthorizedAccessException(); } //Get the current principal object CustomPrincipal customPrincipal = Thread.CurrentPrincipal as CustomPrincipal; if (customPrincipal == null) { throw new ArgumentException("The application's default thread principal must be set to a CustomPrincipal object on startup."); } //Authenticate the user customPrincipal.Identity = new CustomIdentity( userViewModel.Id, userViewModel.FirstName, userViewModel.LastName, userViewModel.Identifier, userViewModel.Email, company.Id, company.Identifier, company.CompanyName, userViewModel, compUser); if (cbxLanguages.SelectedValue.ToString() == "Serbia") { ResourceDictionary dict = new ResourceDictionary(); dict.Source = new Uri("..\\..\\Resources\\Languages\\StringResources-SRB.xaml", UriKind.Relative); App.Current.Resources.MergedDictionaries.Add(dict); } else if (cbxLanguages.SelectedValue.ToString() == "Germany") { ResourceDictionary dict = new ResourceDictionary(); dict.Source = new Uri("..\\..\\Resources\\Languages\\StringResources-GER.xaml", UriKind.Relative); App.Current.Resources.MergedDictionaries.Add(dict); } else { ResourceDictionary dict = new ResourceDictionary(); dict.Source = new Uri("..\\..\\Resources\\Languages\\StringResources-ENG.xaml", UriKind.Relative); App.Current.Resources.MergedDictionaries.Add(dict); } //Thread td = new Thread(() => { // try // { // AzureNetworkDriveMapper azureNetworkDriveMapper = new AzureNetworkDriveMapper( // DriveLetter: AppConfigurationHelper.Configuration?.AzureNetworkDrive?.DriveLetter, // DriveNetworkPath: AppConfigurationHelper.Configuration?.AzureNetworkDrive?.DriveNetworkPath, // SubDir: AppConfigurationHelper.Configuration?.AzureNetworkDrive?.SubDir, // Username: AppConfigurationHelper.Configuration?.AzureNetworkDrive?.Username, // Password: AppConfigurationHelper.Configuration?.AzureNetworkDrive?.Password, // IsPersistent: AppConfigurationHelper.Configuration?.AzureNetworkDrive?.Persistent ?? true); // if (!String.IsNullOrEmpty(AppConfigurationHelper.Configuration?.AzureNetworkDrive?.DriveNetworkPath)) // { // if (!azureNetworkDriveMapper.IsDriveAndExists()) // azureNetworkDriveMapper.MapDrive(); // } // } catch(Exception ex) // { // MessageBox.Show(ex.Message); // } //}); //td.IsBackground = true; //td.Start(); MainWindow mainWindow = new MainWindow(); mainWindow.Show(); this.Close(); } catch (UnauthorizedAccessException) { notifier.ShowError("Korisničko ime, lozinka ili firma nisu korektni!"); } catch (Exception ex) { notifier?.ShowError("Greška: " + ex?.Message); } } }
public async Task <IActionResult> CreateAsync([FromBody] CompanyUserViewModel companyUserViewModel) { if (ModelState.IsValid) { try { var companyUserModel = new CompanyUserDto(); var companyObje = new Company(); var currentUser = await userManager.GetUserAsync(HttpContext.User); if (companyUserViewModel.CompanyId > 0) // Yönetici olarak giriş yapıldıysa CompanyId bulunmaz { companyObje = companyService.Find(companyUserViewModel.CompanyId); // limit bulunacak } else //firma Admini giriş yaptıysa { companyUserModel = companyUserService.GetCompanyUserbyUserAccountId(currentUser.AccountId);// limit bulunacak companyObje = companyService.Find(companyUserModel.CompanyId); } int userAddedCount = companyUserService.GetOfCountCompanyUser(companyObje.Id); if (companyObje.UserLimit > userAddedCount) { var companyUser = new CustomIdentityUser { FirstName = companyUserViewModel.UserDto.FirstName, LastName = companyUserViewModel.UserDto.LastName, UserName = companyUserViewModel.UserDto.Email, Email = companyUserViewModel.UserDto.Email, AccountId = Guid.NewGuid(), IsEnabled = true }; var result = await userManager.CreateAsync(companyUser, companyUserViewModel.Password).ConfigureAwait(false); if (result.Succeeded) { var selectedRoles = companyUserViewModel.UserRoles.Where(p => p.Selected).Select(p => p.RoleName).ToList(); await userManager.AddToRolesAsync(companyUser, selectedRoles); await userManager.AddClaimAsync(companyUser, new System.Security.Claims.Claim("FullName", string.Format("{0} {1}", companyUserViewModel.UserDto.FirstName, companyUserViewModel.UserDto.LastName))); await userManager.AddClaimAsync(companyUser, new System.Security.Claims.Claim("AccountId", companyUser.AccountId.ToString())); // var currentUser = await userManager.GetUserAsync(HttpContext.User); var companyuserDto = new Helpdesk.Service.Dto.CompanyUserDto() { CreatedUser = currentUser.FirstName + " " + currentUser.LastName, ModifiedUser = currentUser.FirstName + " " + currentUser.LastName, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, FirstName = companyUserViewModel.UserDto.FirstName, LastName = companyUserViewModel.UserDto.LastName, TrIdentityNumber = companyUserViewModel.UserDto.TrIdentityNumber, Title = companyUserViewModel.UserDto.Title, Email = companyUserViewModel.UserDto.Email, MobileNumber = companyUserViewModel.UserDto.MobileNumber, AccountId = companyUser.AccountId, Address = new Helpdesk.Model.Entities.Address(), RecordStatus = Helpdesk.Model.Enums.RecordStatus.A, }; if (companyUserViewModel.CompanyId > 0) { companyuserDto.CompanyId = companyUserViewModel.CompanyId; } else {// Yönetici Admini ise var companyuser = companyUserService.GetCompanyUserbyUserAccountId(currentUser.AccountId); companyuserDto.CompanyId = companyuser.CompanyId; } //var currentRoles = userManager.GetRolesAsync(currentUser); var CUserId = companyUserService.Create(companyuserDto); return(Ok()); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(BadRequest(ModelState)); } else {// limit bilgileri dolu ise return(UnprocessableEntity()); } } catch (Exception ex) { throw; } } else { return(BadRequest()); } }