public async Task DeleteInvitation(Guid invitationId, Guid applicationId) { var userId = authService.CurrentUserId(); Guard.IsTrue(await hasApplicationPermission.ToWrite(userId, applicationId), new UnauthorizedException()); var invitations = unitOfWork.Repository <Domain.Invitation, Guid>(); var invitation = await invitations.FirstOrDefaultAsync(Domain.Invitation.WithId(invitationId).And(Domain.Invitation.WithApplication(applicationId))); Guard.IsNotNull(invitation, "Invalid invitation"); invitations.Delete(invitation); await unitOfWork.SaveAsync(); }
public async Task NewToggle(Guid applicationId, string key, string description, bool enable) { var userId = authService.CurrentUserId(); Guard.IsTrue(await hasApplicationPermission.ToWrite(userId, applicationId), "You don't have permissions to create feature toggle"); var applications = unitOfWork.Repository <Domain.Application, Guid>(); var application = await applications.FirstOrDefaultAsync(new DirectSpecification <Domain.Application>(x => x.Id == applicationId), "FeatureToggles,Environments.FeatureToggleValues"); application.AddNewFeatureToggleForDefaultEnv(key, description, enable); activityService.Log( LogString.WithName("Feature toggle", "created"), LogString.WithDescription(new Dictionary <string, string> { { "Name", key }, { "Value", enable.ToString() } }), applicationId, userId); await unitOfWork.SaveAsync(); }
public async Task <Guid> CreateEnvironment(string name, Guid applicationId) { var userId = authService.CurrentUserId(); Guard.IsTrue(await hasApplicationPermission.ToWrite(userId, applicationId), "Invalid permissions for create environments"); var applications = unitOfWork.Repository <Application, Guid>(); var application = await applications.FirstOrDefaultAsync(new DirectSpecification <Domain.Application>(x => x.Id == applicationId), "Environments"); var env = application.AddEnvironment(name); activityService.Log( LogString.WithName("Environment", "created"), LogString.WithDescription(new Dictionary <string, string> { { "Name", name } }), applicationId, userId); await unitOfWork.SaveAsync(); return(env.Id); }