Example #1
0
        // GET: Application/Edit/5
        public ActionResult Edit(string id, string application)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id", "InitiativeId was not provided.");
            }

            var initiative = _initiativeBusiness.GetInitiative(_accountRepository.FindById(User.Identity.GetUserId()).Email, id);

            var app = initiative.ApplicationGroups.SelectMany(x => x.Applications).Single(x => x.Name == application);
            var applicationGroup = initiative.ApplicationGroups.Single(x => x.Applications.Any(y => y.Name == application)).Name;

            //var environments = _sessionBusiness.GetSessionsForApplications(new List<Guid>() { app.Id }).GroupBy(x => x.Environment).Select(x => x.First()).Select(x => x.Environment).ToArray();

            var model = new ApplicationPropetiesModel
            {
                ApplicationGroupName = applicationGroup,
                TicketPrefix         = app.TicketPrefix,
                InitiativeId         = initiative.Id.ToString(),
                ApplicationName      = application,
            };

            if (app.KeepLatestVersions == null)
            {
                model.AutoArchive        = false;
                model.KeepLatestVersions = 5;
            }
            else
            {
                model.AutoArchive        = true;
                model.KeepLatestVersions = app.KeepLatestVersions;
            }

            return(PartialView(model));
        }
Example #2
0
        public ActionResult Edit(ApplicationPropetiesModel model, FormCollection collection)
        {
            var initiative       = _initiativeBusiness.GetInitiative(_accountRepository.FindById(User.Identity.GetUserId()).Email, model.InitiativeId);
            var applicationGroup = initiative.ApplicationGroups.Single(x => x.Applications.Any(y => y.Name == model.ApplicationName));
            var application      = applicationGroup.Applications.Single(x => x.Name == model.ApplicationName);

            application.TicketPrefix = model.TicketPrefix;

            List <IApplicationVersion> versionsToArchive = null;

            //application.KeepLatestVersions = model.AutoArchive ? model.KeepLatestVersions : null;

            if (model.AutoArchive && model.KeepLatestVersions > 0)
            {
                var versions = _applicationVersionBusiness.GetApplicationVersions(application.Id).ToArray();
                versionsToArchive = versions.OrderBy(x => x.Version).Take(versions.Count() - model.KeepLatestVersions.Value).ToList();

                if (versionsToArchive.IsNullOrEmpty()) //No versions to archive, set autoarchive to true
                {
                    application.KeepLatestVersions = model.KeepLatestVersions;
                }
            }
            else
            {
                application.KeepLatestVersions = null;
            }

            if (initiative.ApplicationGroups.Any(x => x.Name == model.ApplicationGroupName))
            {
                if (initiative.ApplicationGroups.Single(x => x.Name == model.ApplicationGroupName).Applications.All(x => x.Name != model.ApplicationName))
                {
                    initiative.ApplicationGroups.Single(x => x.Name == model.ApplicationGroupName).Add(application);
                }
                else
                {
                    _initiativeBusiness.UpdateInitiative(initiative);

                    //Check if versions to archive, if yes inform user
                    if (versionsToArchive.IsNullOrEmpty())
                    {
                        return(RedirectToAction("Details", "Application", new { id = model.InitiativeId, application = model.ApplicationName }));
                    }

                    //return EnableArchive(versionsToArchive);
                    return(RedirectToAction("EnableArchive", "Application", new { applicationId = application.Id, keepLatestVersions = model.KeepLatestVersions }));
                }
            }
            else
            {
                initiative.AddApplicationGroup(new ApplicationGroup(model.ApplicationGroupName, new List <IApplication> {
                    application
                }));
            }

            applicationGroup.Remove(application);
            _initiativeBusiness.UpdateInitiative(initiative);

            //Check if versions to archive, if yes inform user
            if (versionsToArchive.IsNullOrEmpty())
            {
                return(RedirectToAction("Details", "Application", new { id = model.InitiativeId, application = model.ApplicationName }));
            }

            //return EnableArchive(versionsToArchive);
            return(RedirectToAction("EnableArchive", "Application", new { applicationId = application.Id, keepLatestVersions = model.KeepLatestVersions }));
        }