//[ValidateAntiForgeryToken()] //[RequiresPermission(ApplicationType., PermissionType.Admin)] public async Task <IActionResult> PutOrgKey(long organisationId, [FromBody] OrganisationKeyDto data) { try { // TODO: Validate user // await MemberIsValid(memberId); //await MemberIsValidSubscriber(memberId); //TODO: Secure api for valid subscription if (organisationId.ToString() != data.OrganisationId) { throw new ThisAppException(StatusCodes.Status401Unauthorized, Messages.Err401Unauhtorised); } var results = await Mediator.Send(new UpdateOrganisationKeyCommand(data)); return(Ok(results)); } catch (ThisAppException ex) { Logger.LogError($"PutOrgKey, {ex.StatusCode}, {ex.Message}", ex); return(StatusCode(ex.StatusCode, ex.Message)); } catch (System.Exception ex) { Logger.LogError($"PutOrgKey, {StatusCodes.Status500InternalServerError}", ex); return(StatusCode(StatusCodes.Status500InternalServerError, Messages.Err500)); } }
internal static async Task <OrganisationKey> Create(IQueryExecutor executor, OrganisationKeyDto data) { //validate inputs if (!long.TryParse(data.OrganisationId, out long orgId)) { throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectId("Organisation Id")); } if (orgId == 0) { throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectId("Organisation Id")); } if (!string.IsNullOrWhiteSpace(data.PrivateKey)) { throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectData("Private Key can only be created by the system.")); } if (!data.ExpiryDate.HasValue) { data.ExpiryDate = DateTime.Now.AddYears(3); } //check for duplicates var duplicates = await executor.Execute(new GetOrganisationKeysQuery(data)); if (duplicates != null && duplicates.Count > 0) { throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectData("Duplicate Private Key records not allowed.")); } //create the record var value = new OrganisationKey(orgId); value.SetDescription(data.Description); value.SetExpiryDate(data.ExpiryDate.Value); await executor.Add <OrganisationKey>(value); await executor.Save(); return(value); }
public CreateOrganisationKeyCommand(OrganisationKeyDto data) { Data = data; }
public GetOrganisationKeysQuery(OrganisationKeyDto data) { _data = data; long.TryParse(data.OrganisationId, out long orgId); _organisationId = orgId; }