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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }