# PersonController

**Kind:** Controller

**Source:** `Pams/API/Pams.API/Controllers/Person/PersonController.cs` (line 36)

**Part of:** [Pams](subsystem-pams)

## Where it refuses work

- `PersonController` stops the work with an early return when `!isSaved`, in 3 places.
- `PersonController` stops the work with an early return when `!isFound`, in 3 places.
- `PersonController` stops the work with an early return when `isSaved`, in 3 places.
- `PersonController` stops the work with an early return when `!per.HasObject`, in 2 places.
- `PersonController` stops the work with an early return when `!success`, in 2 places.
- `PersonController` stops the work with an early return when `model.CurrentCredential == null || model.Departments == null || model.Departments.Count =…`, in 2 places.

## When something fails

- `PersonController` handles failure in 12 places: it turns it into a return value in 11, and logs it and continues in 1.

## Relationships

- MODULE_DECLARES → `DeletePerson`
- MODULE_DECLARES → `UpdateUserThatCantResetPassword`
- MODULE_DECLARES → `SaveUser`
- MODULE_DECLARES → `SendNoReplyMail`
- MODULE_DECLARES → `SendCreatePasswordMail`
- MODULE_DECLARES → `NewPassword`
- MODULE_DECLARES → `UpdateProfilePhoto`
- MODULE_DECLARES → `GetPersonRolesByID`
- MODULE_DECLARES → `GetbranchsbyPersonId`
- MODULE_DECLARES → `GetByID`
- MODULE_DECLARES → `GetAllUsers`
- MODULE_DECLARES → `GetForDisplay`
- MODULE_DECLARES → `GetUsersByCompanyID`
- MODULE_DECLARES → `Getbyroleid`
- MODULE_DECLARES → `SendEmail`
- MODULE_DECLARES → `GetResponsiblesLookupByDepartmentId`
- MODULE_DECLARES → `GetResponsiblesLookupByDepartmentId`
- MODULE_DECLARES → `GetLookupSalesResponsiblesByBranchId`
- MODULE_DECLARES → `GetLookupFinanceusers`
- MODULE_DECLARES → `GetLookupTaskUsers`
- MODULE_DECLARES → `UploadBranchImage`
- MODULE_DECLARES → `GetBranchUsersLookup`
- MODULE_DECLARES → `GetStoreUsersLookup`
- MODULE_DECLARES → `GetBranchUsersForVisitLookup`
- MODULE_DECLARES → `GetBranchUsersForTeamLookup`
- MODULE_DECLARES → `GetAccountImageForPrint`
- MODULE_DECLARES → `GetCurrentBranchImageForPrint`
- MODULE_DECLARES → `GetUserDashboard`
- MODULE_DECLARES → `AddAccountManager`
- MODULE_DECLARES → `RemoveAccountManager`
- MODULE_DECLARES → `ChangeAccountOwner`
- MODULE_DECLARES → `GetAccountManagers`
- MODULE_DECLARES → `SaveUserDashboard`
- MODULE_DECLARES → `SaveUserTrustedMachine`
- MODULE_DECLARES → `DeleteUserDashboard`
- IMPORTS → `Person`
- IMPORTS → `BaseController`
- IMPORTS → `Supplier`
- IMPORTS → `PersonBindingModel`
- IMPORTS → `ApplicationUserManager`
- IMPORTS → `Save`
- IMPORTS → `PersonUser`
- IMPORTS → `RoleUser`
- IMPORTS → `UserBranchsPermissions`
- IMPORTS → `Employee`
- IMPORTS → `GetByPersonID`
- IMPORTS → `GetByPersonID`
- IMPORTS → `GetByPersonID`
- IMPORTS → `UpdatePasswordbindingModel`
- IMPORTS → `EmailManager`
- IMPORTS → `MailbindingModel`
- IMPORTS → `NewPasswordbindingModel`
- IMPORTS → `GlobalConfig`
- IMPORTS → `PostedFile`
- IMPORTS → `GetForDisplay`
- IMPORTS → `UsersViewModel`
- IMPORTS → `UsersViewModelPlusCount`
- IMPORTS → `EmployeeProfile`
- IMPORTS → `EmployeeProfileBindingModel`
- IMPORTS → `SendEmail`
- IMPORTS → `UploadBranchImage`
- IMPORTS → `LookUpCommonBindingModel`
- IMPORTS → `SupplierBindingModel`
- IMPORTS → `EmployeeBindingModel`

## Used by

13 references from 13 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### calls by (13)

- `HomeComponent` — `Frontend/src/app/components/home/home.component.ts`:1
- `ReportsComponent` — `Frontend/src/app/components/reports/reports.component.ts`:1
- `UploadFilePopup` — `Frontend/src/app/services/common/files.service.ts`:1
- `SupplierService` — `Frontend/src/app/services/person/supplier.service.ts`:1
- `Attachement` — `Outlook_plugin/src/attachement/attachement.service.ts`:1
- `HomeComponent` — `Pams/Web/Pams.Web/Client/app/components/home/home.component.ts`:1
- `ReportsComponent` — `Pams/Web/Pams.Web/Client/app/components/reports/reports.component.ts`:1
- `UploadFilePopup` — `Pams/Web/Pams.Web/Client/app/services/common/files.service.ts`:1

…and 5 more.
