# CompanyController

**Kind:** Controller

**Source:** `Pams/API/Pams.API/Controllers/Organization/CompanyController.cs` (line 26)

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

## Where it refuses work

- `CompanyController` stops the work with an early return when `companyId != CompanyID`, in 6 places.
- `CompanyController` stops the work with an early return when `obj != null`, in 5 places.
- `CompanyController` stops the work with an early return when `isSaved`, in 4 places.
- `CompanyController` stops the work with an early return when `!ModelState.IsValid`, in 3 places.
- `CompanyController` stops the work with an early return when `subdomainExists`, in 2 places.
- `CompanyController` stops the work with an early return when `!success`, in 2 places.

## When something fails

- `CompanyController` handles failure in 14 places: it turns it into a return value in 13, and discards it silently in 1. A failure discarded silently leaves no trace for whoever debugs this later.

## Relationships

- MODULE_DECLARES → `CreateCompany`
- MODULE_DECLARES → `Insert`
- MODULE_DECLARES → `Update`
- MODULE_DECLARES → `UpdateLogo`
- MODULE_DECLARES → `ApprovalProssesSetting`
- MODULE_DECLARES → `ApprovalProssesList`
- MODULE_DECLARES → `GetSharedObjects`
- MODULE_DECLARES → `ShareCommons`
- MODULE_DECLARES → `RefreshDemoData`
- MODULE_DECLARES → `DeleteDemoData`
- MODULE_DECLARES → `IsDemoDataUsed`
- MODULE_DECLARES → `GetInvoiceSetting`
- MODULE_DECLARES → `SaveInvoiceSetting`
- MODULE_DECLARES → `GetMrmSetting`
- MODULE_DECLARES → `GetMrmSetting`
- MODULE_DECLARES → `SaveMrmSetting`
- MODULE_DECLARES → `GetIntegrationSetting`
- MODULE_DECLARES → `GetBranchIntegrationConfig`
- MODULE_DECLARES → `SaveIntegrationSetting`
- IMPORTS → `Company`
- IMPORTS → `BaseController`
- IMPORTS → `GetByID`
- IMPORTS → `GetByID`
- IMPORTS → `CompanyBindingModel`
- IMPORTS → `CompanyBranchBindingModel`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `CompanyBranchAccount`
- IMPORTS → `CompanyBranchSetting`
- IMPORTS → `CompanyBranchPerson`
- IMPORTS → `UserBranchsPermissions`
- IMPORTS → `BranchTarget`
- IMPORTS → `Insert`
- IMPORTS → `CompanyBranch`
- IMPORTS → `Update`
- IMPORTS → `Update`
- IMPORTS → `UpdateLogo`
- IMPORTS → `PostedFile`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Address`
- IMPORTS → `Country`
- IMPORTS → `CompanyBranchProfileBindingModel`
- IMPORTS → `City`
- IMPORTS → `Person`
- IMPORTS → `ApplicationUserManager`
- IMPORTS → `File`
- IMPORTS → `PersonDepartment`
- IMPORTS → `CompanyApprovalHeaderBindingModel`
- IMPORTS → `SharedObjectHeader`
- IMPORTS → `CompanyFinanceSettingHeaderBindingModel`
- IMPORTS → `CompanyMrmSettingHeaderBindingModel`
- IMPORTS → `CompanyIntegrationSettingBindingModel`

## Used by

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

### calls by (9)

- `BranchDetailsComponent` — `Frontend/src/app/components/configuration/company/main-branch/branch-details.component.ts`:1
- `NewBranchComponent` — `Frontend/src/app/components/configuration/company/main-branch/new.branch.component.ts`:1
- `WarehouseConfigListComponent` — `Frontend/src/app/components/configuration/company/warehouse/warehouse-config-list/warehouse-config-list.component.ts`:1
- `NewBranchComponent` — `Pams/Web/Pams.Web/Client/app/components/configuration/company/main-branch/new.branch.component.ts`:1
- `BranchDetailsComponent` — `Pams/Web/Pams.Web/Client/app/components/configuration/company/main-branch/branch-details.component.ts`:1
- `WarehouseConfigListComponent` — `Pams/Web/Pams.Web/Client/app/components/configuration/company/warehouse/warehouse-config-list/warehouse-config-list.component.ts`:1
- `AppSettings` — `Frontend/src/app/settings/app/app.settings.ts`:241
- `AppSettings` — `Pams/Web/Pams.Web/Client/app/settings/app/app.settings.ts`:126

…and 1 more.
