* [PM-19180] Calculate sales tax correctly for sponsored plans
* Cannot divide by zero if total amount excluding tax is zero.
* Unit tests for families & families for enterprise
---------
Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
* WIP changes for Invite User optimization from Scim
* feature flag string
* Added plan validation to PasswordManagerInviteUserValidation. Cleaned up a few things.
* Added Secrets Manager Validations and Tests.
* Added bulk procedure for saving users, collections and groups from inviting. Added test to validate Ef and Sproc
* Created SendOrganizationInvitesCommand and moved some tests from OrgServiceTests. Fixed some tests in org service in relation to moving out SendOrgInviteCommand code.
Added side effects to InviteOrganizationUsersCommand
* First test of new command.
* Added test to verify valid request with a user calls db method and sends the invite
* Added more tests for the updates
* Added integration test around enabling feature and sending invite via scim. Did a bit of refactoring on the SM validation. Fixed couple bugs found.
* Switching over to a local factory.
* created response model and split interface out.
* switched to initialization block
* Moved to private method. Made ScimInvite inherit the single invite base model. Moved create methods to constructors. A few more CR changes included.
* Moved `FromOrganization` mapper method to a constructor
* Updated to use new pricing client. Supressed null dereference errors.
* Fixing bad merge.
* Rename of OrgDto
* undoing this
* Moved into class
* turned into a switch statement
* Separated into separate files.
* Renamed dto and added ctor
* Dto rename. Moved from static methods to ctors
* Removed unused request model
* changes from main
* missed value
* Fixed some compilation errors.
* Fixed some changes.
* Removed comment
* fixed compiler warning.
* Refactored to use new ValidationResult pattern. added mapping method.
* Added throwing of Failure as the previous implementation would have.
* Cleaned up return.
* fixing test.
* Made HasSecretsManagerStandalone return if org doesn't have sm. Added overload for lighter weight model and moved common code to private method.
* Fixed tests.
* Made public method private. added some comments.
* Refactor validation parameter to improve clarity and consistency. Added XML doc
* fixed test
* Removed test only constructor from InviteOrganization
* Separated old and new code explicitly. Moved old code checks down into new code as well. Added error and mapper to Failure<T>
* Variable/Field/Property renames
* Renamed InviteUsersValidation to InviteUsersValidator
* Rename for InvitingUserOrganizationValidation to InvitingUserOrganizationValidator
* PasswordManagerInviteUserValidation to PasswordManagerInviteUserValidator
* Moved XML comment. Added check to see if additional seats are needed.
* Fixing name.
* Updated names.
* Corrected double negation.
* Added groups and collection and users checks.
* Fixed comment. Fixed multiple enumeration. Changed variable name.
* Cleaned up DTO models. Moved some validation steps around. A few quick fixes to address CR concerns. Still need to move a few things yet.
* Fixed naming in subscription update models.
* put back in the request for now.
* Quick rename
* Added provider email addresses as well.
* Removed valid wrapper to pass in to validation methods.
* fix tests
* Code Review changes.
* Removed unused classes
* Using GetPlanOrThrow instead.
* Switches to extension method
* Made Revert and Adjust Sm methods consistent. Corrected string comparer. Added comment for revert sm.
* Fixing compiler complaint.
* Adding XML docs
* Calculated seat addition for SM.
* Fixing compiler complaints.
* Renames for organization.
* Fixing comparison issue.
* Adding error and aligning message.
* fixing name of method.
* Made extension method.
* Rearranged some things. Fixed the tests.
* Added test around validating the revert.
* Added test to validate the provider email is sent if org is managed by a provider.
* Created new errors and removed references in business code to ErrorMessages property. This aligns Invite User code to use Errors instead of ErrorMessages
* Delayed the hasSecretsManagerStandalone call as long as possible.
* Corrected model name. Corrected SM seat calculation. Added test for it.
* Corrected logic and added more tests.
* Add ProviderPriceAdapter
This is a temporary utility that will be used to manage retrieval of provider price IDs until all providers can be migrated to the new price structure.
* Updated ProviderBillingService.ChangePlan
* Update ProviderBillingService.SetupSubscription
* Update ProviderBillingService.UpdateSeatMinimums
* Update ProviderBillingService.CurrySeatScalingUpdate
* Mark StripeProviderPortalSeatPlanId obsolete
* Run dotnet format
* Pm 19147 2 (#5544)
* Pm 19147 2 (#5544)
* Unit tests for tax strategies `GetUpdateOptions`
* Only allow automatic tax flag to be updated for complete subscription updates such as plan changes, not when upgrading additional storage, seats, etc
* unit tests for factory
* Fix build
* Automatic tax for tax estimation
* Fix stub
* Fix stub
* "customer.tax_ids" isn't expanded in some flows.
* Fix SubscriberServiceTests.cs
* BusinessUseAutomaticTaxStrategy > SetUpdateOptions tests
* Fix ProviderBillingServiceTests.cs
* Add PaymentSource to ProviderSubscriptionResponse
* Add UpdatePaymentMethod to ProviderBillingController
* Add GetTaxInformation to ProviderBillingController
* Add VerifyBankAccount to ProviderBillingController
* Add feature flag
* Remove gRPC and convert PricingClient to HttpClient wrapper
* Add PlanType.GetProductTier extension
Many instances of StaticStore use are just to get the ProductTierType of a PlanType, but this can be derived from the PlanType itself without having to fetch the entire plan.
* Remove invocations of the StaticStore in non-Test code
* Deprecate StaticStore entry points
* Run dotnet format
* Matt's feedback
* Run dotnet format
* Rui's feedback
* Run dotnet format
* Replacements since approval
* Run dotnet format
* Implement endpoints to add existing organization to provider
* Run dotnet format
* Support MOE
* Run dotnet format
* Move ProviderClientsController under AC ownership
* Move ProviderClientsControllerTests under AC ownership
* Jared's feedback
* Added additional validation to ensure license claim values aren't null
* Added extra not null validation for any property with a type that can possibly be null
* Add a Pricing Client and mapping layer back to StaticStore.Plan
* Run dotnet format
* Temporarily remove service registration to forego any unforseen side effects
* Run dotnet format
* Add SQL files
* Add SQL Server migration
* Add Core entity
* Add Dapper repository
* Add EF repository
* Add EF migrations
* Save OrganizationInstallation during GetLicense invocation
* Run dotnet format
* Added the ability to create a JWT on an organization license that contains all license properties as claims
* Added the ability to create a JWT on a user license that contains all license properties as claims
* Added ability to consume JWT licenses
* Resolved generic type issues when getting claim value
* Now validating the jwt signature, exp, and iat
* Moved creation of ClaimsPrincipal outside of licenses given dependecy on cert
* Ran dotnet format. Resolved identity error
* Updated claim types to use string constants
* Updated jwt expires to be one year
* Fixed bug requiring email verification to be on the token
* dotnet format
* Patch build process
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* Updated customer metadata to only store one old btCustomerId
* Updated to include case where old key already exists
* Updated SubscriberService to also save btCustomerId_old on the Stripe Customer's metadata
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* Remove flag from CreateProviderCommand
* Remove flag from OrganizationsController
* Consolidate provider extensions
* Remove flag from ProvidersController
* Remove flag from CreateMsp.cshtml
* Remove flag from Provider Edit.cshtml
Also ensured the editable Gateway fields show for Multi-organization enterprises
* Remove flag from OrganizationsController
* Remove flag from billing-owned provider controllers
* Remove flag from OrganizationService
* Remove flag from RemoveOrganizationFromProviderCommand
* Remove flag from ProviderService
* Remove flag
* Run dotnet format
* Fix failing tests