コード例 #1
0
        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"));
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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());
            }
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        public CompanyUserViewModel SetCompanyContact(CompanyUserViewModel model)
        {
            model.IsCompanyContact = true;

            model.CompanyDetails.UserId = model.UserDetails.UserId;

            return(model);
        }
コード例 #8
0
        private void btnCancelCompanyUser_Click(object sender, RoutedEventArgs e)
        {
            UserRolesItemForm = new CompanyUserViewModel();


            foreach (var item in RolesFromDB)
            {
                item.IsChecked = false;
            }
        }
コード例 #9
0
        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);
        }
コード例 #10
0
 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>();
 }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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());
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        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();
            }
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        // 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));
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        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);
        }
コード例 #20
0
        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
            }));
        }
コード例 #21
0
        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);
        }
コード例 #22
0
        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);
                }
            }
        }
コード例 #23
0
        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());
            }
        }