public async Task <SubRealm> CreateAsync(SubRealmSubmit subRealmSubmit, Guid createdById) { InitSharedTransaction(); try { SubRealmModel existingSubRealm = await subRealmRepository.GetByNameAsync(subRealmSubmit.Name, false); if (existingSubRealm != null) { throw new ItemNotProcessableException($"Sub-Realm with name '{subRealmSubmit.Name}' already exists."); } SubRealmModel newSubRealm = mapper.Map <SubRealmModel>(subRealmSubmit); newSubRealm.ChangedBy = createdById; // Set a new relations list. newSubRealm.SubRealmPermissions = new List <SubRealmPermissionModel>(); newSubRealm.SubRealmApplicationDataPolicies = new List <SubRealmApplicationDataPolicyModel>(); await AssignPermissionsToSubRealmFromPermissionIdListAsync(newSubRealm, subRealmSubmit.PermissionIds, createdById); await AssignApplicationDataPoliciesToSubRealmFromApplicationDataPolicyIdListAsync(newSubRealm, subRealmSubmit.ApplicationDataPolicyIds, createdById); SubRealmModel createdSubRealm = await subRealmRepository.CreateAsync(newSubRealm); CommitTransaction(); return(mapper.Map <SubRealm>(createdSubRealm)); } catch { RollbackTransaction(); throw; } }
public async Task <SubRealm> UpdateAsync(Guid subRealmId, SubRealmSubmit subRealmSubmit, Guid updatedBy) { InitSharedTransaction(); try { SubRealmModel existingSubRealm = await subRealmRepository.GetByIdAsync(subRealmId, true); if (existingSubRealm == null) { throw new ItemNotFoundException($"Sub-Realm with ID '{subRealmId}' does not exist."); } // Sub-Realm names must be unique. If the sub-realm name has changed, then check that another sub-realm does have the same name. if (existingSubRealm.Name != subRealmSubmit.Name) { SubRealmModel existingNamedSubRealm = await subRealmRepository.GetByNameAsync(subRealmSubmit.Name, false); if (existingNamedSubRealm != null) { throw new ItemNotProcessableException($"Cannot update sub-Realm with name '{subRealmSubmit.Name}', as this name is already used by another sub-realm."); } } // Map any potential updates from the submit model onto the existing sub-realms model. if (subRealmSubmit.Name != existingSubRealm.Name) { existingSubRealm.Name = subRealmSubmit.Name; existingSubRealm.ChangedBy = updatedBy; } if (subRealmSubmit.Description != existingSubRealm.Description) { existingSubRealm.Description = subRealmSubmit.Description; existingSubRealm.ChangedBy = updatedBy; } await AssignPermissionsToSubRealmFromPermissionIdListAsync(existingSubRealm, subRealmSubmit.PermissionIds, updatedBy); await AssignApplicationDataPoliciesToSubRealmFromApplicationDataPolicyIdListAsync(existingSubRealm, subRealmSubmit.ApplicationDataPolicyIds, updatedBy); existingSubRealm = await subRealmRepository.UpdateAsync(existingSubRealm); CommitTransaction(); return(mapper.Map <SubRealm>(existingSubRealm)); } catch { RollbackTransaction(); throw; } }
public abstract Task <IActionResult> CreateSubRealmAsync([FromBody] SubRealmSubmit subRealmSubmit);
public abstract Task <IActionResult> UpdateSubRealmAsync([FromRoute][Required] Guid subRealmId, [FromBody] SubRealmSubmit subRealmSubmit);
public async override Task <IActionResult> UpdateSubRealmAsync([FromRoute, Required] Guid subRealmId, [FromBody] SubRealmSubmit subRealmSubmit) { return(Ok(await subRealmService.UpdateAsync(subRealmId, subRealmSubmit, ClaimsHelper.GetUserId(User)))); }
public async override Task <IActionResult> CreateSubRealmAsync([FromBody] SubRealmSubmit subRealmSubmit) { return(Ok(await subRealmService.CreateAsync(subRealmSubmit, ClaimsHelper.GetUserId(User)))); }