コード例 #1
0
        //[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));
            }
        }
コード例 #2
0
ファイル: OrganisationKey.cs プロジェクト: BenVanZyl/Reliance
        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);
        }
コード例 #3
0
 public CreateOrganisationKeyCommand(OrganisationKeyDto data)
 {
     Data = data;
 }
コード例 #4
0
 public GetOrganisationKeysQuery(OrganisationKeyDto data)
 {
     _data = data;
     long.TryParse(data.OrganisationId, out long orgId);
     _organisationId = orgId;
 }