Example #1
0
        public async Task <IActionResult> ConfigureJobProvider(CreateJobProviderModel model)
        {
            CreateJob createJob = HttpContext.Session.GetObject <CreateJob>(JOB_STORAGE_KEY);

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

            if (ModelState.IsValid)
            {
                createJob.Providers.Add(model);
                HttpContext.Session.SetObject(JOB_STORAGE_KEY, createJob);

                int nextIndex = model.CurrentIndex + 1;
                if (nextIndex >= createJob.ProviderIDs.Length)
                {
                    await SaveJob(createJob);

                    HttpContext.Session.Clear();

                    return(RedirectToAction("Index"));
                }
                else
                {
                    int?nextId = await providerRepository.GetInstanceID(createJob.Base.ID, nextIndex);

                    return(RedirectToAction("ConfigureJobProvider", new { index = nextIndex, id = nextId }));
                }
            }

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> ConfigureJobProvider(int index = 0, int id = 0)
        {
            CreateJob createJob = HttpContext.Session.GetObject <CreateJob>(JOB_STORAGE_KEY);

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

            CreateJobProviderModel model = null;

            Provider provider = await providerRepository.Get(createJob.ProviderIDs[index]);

            Dictionary <int, object> values = new Dictionary <int, object>();

            if (id > 0)
            {
                model    = CreateModel <ModifyJobProviderModel>("Modify Schedule");
                model.ID = id;

                IEnumerable <ProviderInstanceProperty> propertyValues = await providerRepository.GetProviderValues(id);

                foreach (ProviderInstanceProperty propertyValue in propertyValues)
                {
                    object parsedValue = await providerMappingService.GetPresentationValue(propertyValue);

                    values.Add(propertyValue.Property.ID, parsedValue);
                }
            }
            else
            {
                model = CreateModel <CreateJobProviderModel>("Create Schedule");
            }

            model.CurrentIndex = index;
            model.ProviderName = provider.Name;
            model.Properties   = provider.Properties.Select(x => new ProviderPropertyModel(x.Name, x.Description, providerMappingService.GetTemplateFromType(x.Type), values.ContainsKey(x.ID) ? values[x.ID] : null, x.Attributes?.ToDictionary(k => k.Name.ToString(), v => v.Value))).ToList();

            return(View(model));
        }