Пример #1
0
        private CoreServiceResponse <Organization> AssociateUserToOrganization(User user, string organizationName)
        {
            OrganizationFactory orgEnforcer             = new OrganizationFactory(ApplicationRegistrationRepository, user, organizationName);
            CoreServiceResponse <Organization> response = orgEnforcer.Execute();

            return(response);
        }
Пример #2
0
        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
                });
            }
        }
Пример #3
0
        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
                });
            }
        }
Пример #4
0
        private static CoreServiceResponse GetApplicationRegistrationResponse(ClientApplicationFactory appFactory)
        {
            CoreServiceResponse <ApplicationRegistration.Data.Application> appResponse = appFactory.Execute();

            if (appResponse.Success)
            {
                return(GetApplicationRegistrationSuccessResult(appResponse));
            }
            return(appResponse);
        }
Пример #5
0
 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
     });
 }
Пример #6
0
        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));
        }
Пример #7
0
 /// <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)));
     }
 }
Пример #8
0
 public ClientRegistrationFailedException(CoreServiceResponse response) : base(response.Message)
 {
 }