コード例 #1
0
        public async Task <Member> Handle(UpdateOrganisationMemberCommand request, CancellationToken cancellationToken)
        {
            //do validation
            if (!long.TryParse(request.Data.OrganisationId, out long orgId))
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Id"));
            }
            if (orgId == 0)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Id"));
            }

            var orgMember = await _executor.Execute(new GetOrganisationMemberQuery(request.Data.Id));

            if (orgMember == null)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Private Key record does not exists."));
            }

            if (orgMember.OrganisationId != orgId)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectId("Organisation Id"));
            }

            orgMember.SetName(request.Data.Name);
            orgMember.SetEmail(request.Data.Email);
            orgMember.SetIsActive(request.Data.IsActive);

            await _executor.Save();

            return(orgMember);
        }
コード例 #2
0
        public async Task <bool> Handle(DeleteOrganisationMemberCommand request, CancellationToken cancellationToken)
        {
            //do validation
            //if (long.TryParse(request.Data.OrganisationId, out long orgId))
            //    throw new ThisAppExecption(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Id"));
            //if (orgId == 0)
            //    throw new ThisAppExecption(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Id"));

            var orgMember = await _executor.Execute(new GetOrganisationMemberQuery(request.Id));

            if (orgMember == null)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Private Key record does not exists."));
            }

            if (orgMember.OrganisationId != request.OrganisationId)
            {
                throw new ThisAppException(StatusCodes.Status401Unauthorized, Messages.Err401Unauhtorised);
            }

            await _executor.Delete(orgMember);

            await _executor.Save();

            return(true);
        }
コード例 #3
0
        public async Task <OrganisationDto> Handle(UpdateOrganisationCommand request, CancellationToken cancellationToken)
        {
            //do validation
            if (request.Id == 0)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectId("Organisation"));
            }
            if (string.IsNullOrWhiteSpace(request.Name))
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Name"));
            }
            if (string.IsNullOrWhiteSpace(request.MasterEmail))
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Master Email Address"));
            }
            //TODO: Validate that email address is valid with RegEx compare

            //get existing and validate master email address to confirm that the change is allowed. create if nothing found.
            var org = await _executor.Execute(new GetOrganisationQuery(request.Id));

            if (org == null)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation"));
            }

            org.SetName(request.Name);
            org.SetMasterEmail(request.MasterEmail);

            await _executor.Save();

            return(_mapper.Map <OrganisationDto>(org));
        }
コード例 #4
0
ファイル: Member.cs プロジェクト: BenVanZyl/Reliance
        public static async Task <Member> Create(IQueryExecutor executor, OrganisationMemberDto data)
        {
            //does data.Email exists?  no duplicates allowed
            var value = await executor.Execute(new GetOrganisationMemberQuery(data.OrgId, data.Email));

            if (value != null)
            {
                throw new ThisAppException(StatusCodes.Status409Conflict, Messages.Err409ObjectExists("Organisation Member"));
            }

            value = new Member(data);
            await executor.Add <Member>(value);

            await executor.Save();

            return(value);
        }
コード例 #5
0
ファイル: Badge.cs プロジェクト: BenVanZyl/Reliance
        internal static async Task <Badge> Create(IQueryExecutor executor, long appId, long stageId, string badgeUrl)
        {
            //validation - confirm app does not already exists
            var existingValue = await executor.Execute(new GetBadgeQuery(appId, stageId));

            if (existingValue != null)
            {
                throw new ThisAppException(StatusCodes.Status409Conflict, Messages.Err409ObjectExists("Badge"));
            }
            //create new record
            var value = new Badge(appId, stageId, badgeUrl);
            await executor.Add <Badge>(value);

            await executor.Save();

            //return record
            return(value);
        }
コード例 #6
0
        internal static async Task <Organisation> Create(IQueryExecutor executor, string name, string masterEmail)
        {
            //validation
            var existingValue = await executor.Execute(new GetOrganisationQuery(name, masterEmail));

            if (existingValue != null)
            {
                throw new ThisAppException(StatusCodes.Status409Conflict, Messages.Err409ObjectExists("Organisation"));
            }

            //create new record
            var value = new Organisation(name, masterEmail);
            await executor.Add <Organisation>(value);

            await executor.Save();

            //return record
            return(value);
        }
コード例 #7
0
        public async Task <OrganisationKey> Handle(UpdateOrganisationKeyCommand request, CancellationToken cancellationToken)
        {
            //do validation
            if (!long.TryParse(request.Data.OrganisationId, out long orgId))
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Id"));
            }
            if (orgId == 0)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Organisation Id"));
            }

            var orgKey = await _executor.Execute(new GetOrganisationKeyQuery(request.Data.Id));

            if (orgKey == null)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Private Key record does not exists."));
            }

            if (orgKey.OrganisationId != orgId)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectId("Organisation Id"));
            }

            if (orgKey.PrivateKey != request.Data.PrivateKey)
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417InvalidObjectId("Private Key"));
            }

            if (!request.Data.ExpiryDate.HasValue)
            {
                request.Data.ExpiryDate = DateTime.Now.AddYears(3);
            }

            orgKey.SetDescription(request.Data.Description);
            orgKey.SetExpiryDate(request.Data.ExpiryDate.Value);

            await _executor.Save();

            return(orgKey);
        }
コード例 #8
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);
        }
コード例 #9
0
        internal static async Task <Stage> Create(IQueryExecutor executor, long organisationId, string name, long orderBy = 0)
        {
            //validation - confirm app does not already exists
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ThisAppException(StatusCodes.Status417ExpectationFailed, Messages.Err417MissingObjectData("Stage"));
            }
            var existingValue = await executor.Execute(new GetStageQuery(organisationId, name));

            if (existingValue != null)
            {
                throw new ThisAppException(StatusCodes.Status409Conflict, Messages.Err409ObjectExists("Stage"));
            }
            //create new record
            var value = new Stage(organisationId, name, orderBy);
            await executor.Add <Stage>(value);

            await executor.Save();

            //return record
            return(value);
        }
コード例 #10
0
        public async Task <BadgeDto> Handle(SaveBadgeCommand request, CancellationToken cancellationToken)
        {
            try
            {
                if (request.Badge.AppId == 0)
                {
                    throw new ThisAppException(StatusCodes.Status400BadRequest, "App info not provided!");
                }

                if (request.Badge.StageId == 0)
                {
                    throw new ThisAppException(StatusCodes.Status400BadRequest, "Stage info not provided!");
                }

                if (string.IsNullOrWhiteSpace(request.Badge.BadgeUrl))
                {
                    throw new ThisAppException(StatusCodes.Status400BadRequest, "Badge Url not provided!");
                }

                // get app
                var app = await _executor.Execute(new GetAppQuery(request.Badge.AppId));

                if (app == null)
                {
                    throw new ThisAppException(StatusCodes.Status404NotFound, "No App found");
                }

                // get stage
                var stages = await _executor.Execute(new GetStageQuery(request.Badge.StageId));

                if (stages == null)
                {
                    throw new ThisAppException(StatusCodes.Status404NotFound, "No Stage found");
                }

                // get badge
                var badge = await _executor.Execute(new GetBadgeQuery(request.Badge.Id));

                if (badge == null)
                {
                    badge = await Domain.DevOps.Badge.Create
                            (
                        _executor,
                        request.Badge.AppId,
                        request.Badge.StageId,
                        request.Badge.BadgeUrl
                            );

                    request.Badge.Id = badge.Id;
                }
                else
                {
                    badge.SetBadgeUrl(request.Badge.BadgeUrl);
                }

                await _executor.Save();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return(request.Badge);
        }