private CoreServiceResponse <Organization> AssociateUserToOrganization(User user, string organizationName) { OrganizationFactory orgEnforcer = new OrganizationFactory(ApplicationRegistrationRepository, user, organizationName); CoreServiceResponse <Organization> response = orgEnforcer.Execute(); return(response); }
public virtual CoreServiceResponse RegisterApplicationProcess(ProcessDescriptor descriptor) { try { Args.ThrowIfNull(descriptor?.Application?.Name, "descriptor.Application.Name"); Args.ThrowIfNull(descriptor?.Application?.Organization?.Name, "descriptor.Application.Organization.Name"); if (CurrentUser.Equals(UserAccounts.Data.User.Anonymous)) { return(new CoreServiceResponse <ApplicationRegistrationResult> { Success = false, Message = "You must be logged in to do that", Data = new ApplicationRegistrationResult { Status = ApplicationRegistrationStatus.Unauthorized } }); } User user = GetApplicationRegistrationRepositoryUser(); string organizationName = descriptor.Application.Organization.Name; CoreServiceResponse <Organization> response = AssociateUserToOrganization(user, organizationName); if (!response.Success) { return(response); } ClientApplicationFactory appFactory = new ClientApplicationFactory(this, user, organizationName, descriptor); return(GetApplicationRegistrationResponse(appFactory)); } catch (Exception ex) { Logger.AddEntry("Exception occurred in {0}", ex, nameof(ApplicationRegistrationService.RegisterApplicationProcess)); return(new CoreServiceResponse { Success = false, Message = ex.Message }); } }
public virtual CoreServiceResponse RegisterApplication(ProcessDescriptor descriptor) { try { Args.ThrowIfNull(descriptor?.Application?.Name, "descriptor.Application.Name"); Args.ThrowIfNull(descriptor?.Application?.Organization?.Name, "descriptor.Application.Organization.Name"); string organizationName = descriptor.Application.Organization.Name; if (CurrentUser.Equals(UserAccounts.Data.User.Anonymous)) { return(new CoreServiceResponse <ApplicationRegistrationResult> { Success = false, Message = "You must be logged in to do that", Data = new ApplicationRegistrationResult { Status = ApplicationRegistrationStatus.Unauthorized } }); } User user = CoreRegistryRepository.OneUserWhere(c => c.UserName == CurrentUser.UserName); if (user == null) { user = new User() { UserName = CurrentUser.UserName, Email = CurrentUser.Email }; user = CoreRegistryRepository.Save(user); } OrganizationFactory orgEnforcer = new OrganizationFactory(CoreRegistryRepository, user, organizationName); CoreServiceResponse <Organization> response = orgEnforcer.Execute(); if (!response.Success) { return(response); } Organization org = response.TypedData(); ClientApplicationFactory appEnforcer = new ClientApplicationFactory(this, user, organizationName, descriptor); CoreServiceResponse <ApplicationRegistration.Application> appResponse = appEnforcer.Execute(); if (appResponse.Success) { ApplicationRegistration.Application app = appResponse.TypedData(); return(new CoreServiceResponse <ApplicationRegistrationResult>( new ApplicationRegistrationResult { Status = ApplicationRegistrationStatus.Success, ClientId = app.Cuid, ApiKey = app.ApiKeys.First().SharedSecret }) { Success = true }); } return(appResponse); } catch (Exception ex) { Logger.AddEntry("Exception occurred in {0}", ex, nameof(CoreApplicationRegistrationService.RegisterApplication)); return(new CoreServiceResponse { Success = false, Message = ex.Message }); } }
private static CoreServiceResponse GetApplicationRegistrationResponse(ClientApplicationFactory appFactory) { CoreServiceResponse <ApplicationRegistration.Data.Application> appResponse = appFactory.Execute(); if (appResponse.Success) { return(GetApplicationRegistrationSuccessResult(appResponse)); } return(appResponse); }
private static CoreServiceResponse GetApplicationRegistrationSuccessResult(CoreServiceResponse <CoreServices.ApplicationRegistration.Data.Application> appResponse) { CoreServices.ApplicationRegistration.Data.Application app = appResponse.TypedData(); return(new CoreServiceResponse <ApplicationRegistrationResult>( new ApplicationRegistrationResult { Status = ApplicationRegistrationStatus.Success, ClientId = app.Cuid, ApiKey = app.ApiKeys.First().SharedSecret }) { Success = true }); }
public virtual CoreServiceResponse RegisterApplication(string applicationName) { if (CurrentUser.Equals(UserAccounts.Data.User.Anonymous)) { return(new CoreServiceResponse <ApplicationRegistrationResult> { Success = false, Message = "You must be logged in to do that", Data = new ApplicationRegistrationResult { Status = ApplicationRegistrationStatus.Unauthorized } }); } User user = GetApplicationRegistrationRepositoryUser(); CoreServiceResponse <Organization> response = AssociateUserToOrganization(user, Organization.Public.Name); if (!response.Success) { return(response); } ClientApplicationFactory appFactory = new ClientApplicationFactory(this, user); return(GetApplicationRegistrationResponse(appFactory)); }
/// <summary> /// Establishes the means by which the client will /// communicate securely with the server. Creates /// a machine account for the client; used primarily /// for .Net client assemblies using CoreClient /// </summary> /// <param name="client"></param> /// <returns>A CoreServiceResponse message detailing success or failure.</returns> public virtual CoreServiceResponse RegisterClient(Client client) { try { Args.ThrowIfNullOrEmpty(client?.Secret, nameof(client.Secret)); Args.ThrowIfNullOrEmpty(client?.ServerHost, nameof(client.ServerHost)); Args.ThrowIfNull(client?.Machine, nameof(client.Machine)); Args.ThrowIf(client.Port <= 0, "Server Port not specified"); IUserManager mgr = (IUserManager)UserManager.Clone(); mgr.HttpContext = HttpContext; string clientName = client.ToString(); CoreServiceResponse response = new CoreServiceResponse(); CheckUserNameResponse checkUserName = mgr.IsUserNameAvailable(clientName); if (!(bool)checkUserName.Data) // already exists { response.Success = true; response.Message = "Already registered"; } else { SignUpResponse signupResponse = mgr.SignUp(client.GetPseudoEmail(), clientName, client.Secret.Sha1(), false); if (!signupResponse.Success) { throw new Exception(response.Message); } Machine machine = ApplicationRegistrationRepository.GetOneMachineWhere(m => m.Name == client.MachineName); client = ApplicationRegistrationRepository.GetOneClientWhere(c => c.MachineId == machine.Id && c.MachineName == client.MachineName && c.ApplicationName == client.ApplicationName && c.ServerHost == client.ServerHost && c.Port == client.Port); response = new CoreServiceResponse { Success = true, Data = client.ToDynamicData().ToJson() }; } return(response); } catch (Exception ex) { return(HandleException(ex, nameof(ApplicationRegistrationService.RegisterClient))); } }
public ClientRegistrationFailedException(CoreServiceResponse response) : base(response.Message) { }