Exemplo n.º 1
0
        public async Task <IActionResult> Authenticate(long id = 0)
        {
            string           redirectId       = null;
            ProviderInstance providerInstance = null;

            CreateAuthenicatedSession createSession = HttpContext.Session.GetObject <CreateAuthenicatedSession>(AUTHENTICATED_SESSION_KEY);

            if (createSession != null)
            {
                redirectId = Guid.NewGuid().ToString(); // TODO: move to create and store this in db

                Provider provider = await providerRepository.Get(createSession.Base.AuthenticationProvider);

                providerInstance = await providerMappingService.CreateProviderInstance(provider, createSession.ProviderInstance);
            }
            //else if(id > 0)
            //{
            //}

            if (providerInstance == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            IAuthenticationProvider <object> authenticationProvider = await providerMappingService.CreateProvider <IAuthenticationProvider <object> >(providerInstance);

            authenticationProvider.Initialize($"http://localhost:53178/Authentication/CompleteAuthentication?sessionId={redirectId}", data => StoreSession(providerInstance.ID, data));
            string redirectUrl = await authenticationProvider.GetOAuthUrl();

            return(Redirect(redirectUrl));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Configure(ConfigureJobModel model)
        {
            // TODO: find out why ModelState is invalid with unvalidated state (probably because of the IEnumerable/Dictionary Providers property)
            if (ModelState.ErrorCount == 0)
            {
                try
                {
                    int[] providerIDs = model.GetProviderIDs();

                    List <ProviderInstance> providerInstances = new List <ProviderInstance>(providerIDs.Length);
                    for (int i = 0; i < providerIDs.Length; i++)
                    {
                        Provider provider = await providerRepository.Get(providerIDs[i]);

                        ProviderInstance providerInstance = await providerMappingService.CreateProviderInstance(provider, model.Providers.ElementAt(i));

                        providerInstance.Order = i;
                        providerInstances.Add(providerInstance);
                    }

                    int jobId = await backupJobRepository.AddOrUpdate(model.ID, model.Name, providerInstances);

                    await schedulerService.CreateOrUpdate(jobId, model.CronSchedule);
                }
                catch (Exception ex)
                {
                    logger.LogError(ex, $"Failed to save job '{model.Name}' to database");
                }
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Configure(ConfigureAuthenticatedSessionModel model)
        {
            if (ModelState.ErrorCount == 0)
            {
                Provider provider = await providerRepository.Get(model.AuthenticationProvider);

                ProviderInstance providerInstance = await providerMappingService.CreateProviderInstance(provider, model.Providers.FirstOrDefault());

                int authenticatedSessionId = await authenticatedSessionRepository.AddOrUpdate(model.ID, model.Name, providerInstance);

                IAuthenticationProvider <object> authenticationProvider = await providerMappingService.CreateProvider <IAuthenticationProvider <object> >(providerInstance);

                authenticationProvider.Initialize($"http://{Request.Host}/Authentication/CompleteAuthentication?id={authenticatedSessionId}", data => StoreSession(authenticatedSessionId, data));
                string redirectUrl = await authenticationProvider.GetOAuthUrl();

                return(Redirect(redirectUrl));
            }

            return(View(model));
        }
Exemplo n.º 4
0
        private async Task SaveJob(CreateJob createJob)
        {
            try
            {
                List <ProviderInstance> providerInstances = new List <ProviderInstance>(createJob.Providers.Count);
                for (int i = 0; i < createJob.Providers.Count; i++)
                {
                    Provider provider = await providerRepository.Get(createJob.ProviderIDs[i]);

                    ProviderInstance providerInstance = await providerMappingService.CreateProviderInstance(provider, createJob.Providers[i]);

                    providerInstance.Order = i;
                    providerInstances.Add(providerInstance);
                }

                int jobId = await backupJobRepository.AddOrUpdate(createJob.Base.ID, createJob.Base.Name, providerInstances);

                await schedulerService.CreateOrUpdate(jobId, createJob.Base.CronSchedule);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Failed to save job '{createJob.Base.Name}' to database");
            }
        }