Exemplo n.º 1
0
        public ActionResult Member(string initiativeId)
        {
            var initiative = _initiativeBusiness.GetInitiative(Guid.Parse(initiativeId));

            var model = new InviteModel()
            {
                Initiative   = initiative,
                InitiativeId = initiativeId,
            };

            ViewBag.AddDeveloperError = TempData["AddDeveloperError"];

            return(View(model));
        }
Exemplo n.º 2
0
        public ActionResult Thread(string id, string issueThread)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id", "InitiativeId was not provided.");
            }

            var i            = _initiativeBusiness.GetInitiatives().Where(x => x.Name == id).ToArray();
            var initiativeId = Guid.Empty;

            if (i.Count() == 1)//Name is unique
            {
                initiativeId = _initiativeBusiness.GetInitiatives().Single(x => x.Name == id).Id;
            }
            else//go with id
            {
                initiativeId = _initiativeBusiness.GetInitiatives().Single(x => x.Id == Guid.Parse(id)).Id;
            }

            if (initiativeId == Guid.Empty)
            {
                throw new NullReferenceException("No initiative found for the specified uid.");
            }

            var initiative     = _initiativeBusiness.GetInitiative(initiativeId);
            var applicationIds = initiative.ApplicationGroups.SelectMany(x => x.Applications).Select(x => x.Id).ToArray();

            var versions = new List <IApplicationVersion>();

            foreach (var applicationId in applicationIds)
            {
                versions.AddRange(_applicationVersionBusiness.GetApplicationVersions(applicationId));
            }

            var issues   = versions.SelectMany(x => x.IssueTypes).SelectMany(x => x.Issues).Where(x => x.IssueThreadGuid == Guid.Parse(issueThread)).ToArray();
            var sessions = _sessionBusiness.GetSessionsForApplications(applicationIds).ToArray();
            var users    = sessions.Select(x => _userBusiness.GetUser(x.UserFingerprint));

            var model = new IssueThreadModel()
            {
                InitiativeUniqueIdentifier = id,
                InitiativeName             = initiative.Name,
                Issues   = issues,
                Sessions = sessions,
                Users    = users,
            };

            return(View(model));
        }
Exemplo n.º 3
0
        private InitiativeViewModel GetInitiativeViewModel(string id)
        {
            var developerName = _accountRepository.FindById(User.Identity.GetUserId()).Email;
            var initiatives   = _initiativeBusiness.GetInitiativesByDeveloper(developerName).ToArray();
            var initiative    = _initiativeBusiness.GetInitiative(developerName, id).ToModel(initiatives.Select(x => x.Name));

            return(initiative);
        }
Exemplo n.º 4
0
        public ActionResult Delete(string id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
                var user            = _accountRepository.GetUsers().Single(x => x.UserId == id);
                var initiativeHeads = _initiativeBusiness.GetInitiativesByDeveloperOwner(user.UserName);
                var initiatives     = initiativeHeads.Select(initiativeHead => _initiativeBusiness.GetInitiative(initiativeHead.Id)).ToList();

                foreach (var initiative in initiatives)
                {
                    if (initiative.DeveloperRoles.Any(x => (x.DeveloperName == user.UserName) && x.RoleName.Equals(RoleNameConstants.Administrator)))
                    {
                        initiative.DeveloperRoles.Single(x => (x.DeveloperName == user.UserName) && x.RoleName.Equals(RoleNameConstants.Administrator)).RoleName = RoleNameConstants.Deleted;
                        _initiativeBusiness.UpdateInitiative(initiative);
                    }
                }

                _accountRepository.DeleteUser(id);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Exemplo n.º 5
0
        public ActionResult Details(string initiativeId, string machineId)
        {
            var initiative = _initiativeBusiness.GetInitiative(Guid.Parse(initiativeId));

            var sessions = _sessionBusiness.GetSessionsForMachine(machineId).ToArray();

            var applicationIds = sessions.GroupBy(x => x.ApplicationId).Select(x => x.First()).Select(x => x.ApplicationId).ToArray();
            var userIds        = sessions.GroupBy(x => x.UserFingerprint).Select(x => x.First()).Select(x => x.UserFingerprint).ToArray();

            var applications = new List <IApplication>();

            foreach (var applicationId in applicationIds)
            {
                applications.Add(initiative.ApplicationGroups.SelectMany(x => x.Applications).SingleOrDefault(x => x.Id == applicationId));
            }

            var users = new List <IUser>();

            foreach (var userId in userIds)
            {
                users.Add(_userBusiness.GetUser(userId));
            }

            var machines = new List <IMachine>();

            foreach (var session in sessions)
            {
                machines.Add(_machineBusiness.GetMachine(session.MachineFingerprint));
            }

            var model = new MachineDetailsModel()
            {
                Sessions     = sessions,
                Applications = applications,
                Users        = users,
                Machines     = machines,
                MachineName  = _machineBusiness.GetMachine(machineId).Name
            };


            //var applications = _initiativeBusiness
            //var sessions = _sessionBusiness.
            return(View(model));
        }
Exemplo n.º 6
0
        // GET: Application/Details/5
        public ActionResult Details(string id, string application)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id", "No initiative id 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 versions   = _applicationVersionBusiness.GetApplicationVersions(app.Id).ToArray();
            var model      = GetApplicationModel(initiative, application, versions);

            @ViewBag.IsArchive = false;
            @ViewBag.Title     = "Application Details";
            @ViewBag.SiteRoot  = GetSiteRoot();
            return(View(model));
        }
Exemplo n.º 7
0
        // GET: Version/Details/5
        public ActionResult Details(string id, string application, string version)
        {
            var initiative    = _initiativeBusiness.GetInitiative(_accountRepository.FindById(User.Identity.GetUserId()).Email, id);
            var applicationId = initiative.ApplicationGroups.SelectMany(x => x.Applications).Single(x => x.Name == application).Id;
            var versions      = _applicationVersionBusiness.GetApplicationVersions(applicationId).ToArray();
            var versionName   = _applicationVersionBusiness.GetApplicationVersion(initiative.Id.ToString(), applicationId.ToString(), version).Version;

            //var versionIds = versions.Select(v => v.Id).ToArray();

            //change to EnvironmentViewModel when fixed
            //var environments = new List<string>();
            //foreach (var versionId in versionIds)
            //{
            //    environments.Add(_sessionBusiness.GetSessionsForApplicationVersion(versionId).Select(x => x.Environment));
            //}

            var ver = versions.Single(x => x.Id.Replace(":", "") == version || x.Version == version);

            //var sessions = _sessionBusiness.GetSessionsForApplicationVersion();

            var issue = new IssueViewModel
            {
                InitiativeId               = initiative.Id.ToString(),
                InitiativeName             = initiative.Name,
                ApplicationName            = application,
                Version                    = version,
                VersionName                = versionName,
                IssueTypes                 = ver.IssueTypes,
                Sessions                   = _sessionBusiness.GetSessionsForApplicationVersion(ver.Id),
                ApplicationVersionId       = applicationId.ToString(),
                InitiativeUniqueIdentifier = id,
            };
            var allEnvironments = _initiativeBusiness.GetEnvironmentColors(User.Identity.GetUserId(), _accountRepository.FindById(User.Identity.GetUserId()).UserName);
            var envs            = issue.Sessions.Select(x => x.Environment).Distinct();

            var environments = new List <EnvironmentViewModel>();

            foreach (var environment in envs)
            {
                if (allEnvironments.ContainsKey(environment))
                {
                    string color;
                    allEnvironments.TryGetValue(environment, out color);
                    environments.Add(new EnvironmentViewModel()
                    {
                        Name  = environment,
                        Color = color,
                    });
                }
            }

            //issue.Environments = environments.Select(x => new EnvironmentViewModel { Name = x.Key, Color = x.Value}).ToList();
            issue.Environments     = environments;
            issue.UniqueIdentifier = issue.GetUniqueIdentifier(versionName);

            //issue.ExceptionTypeName = ver.IssueTypes.Select(x => x.ExceptionTypeName);
            //issue.Message = ver.IssueTypes.Select(x => x.Message);
            //issue.Level = ver.IssueTypes.Select(x => x.IssueLevel.ToString());
            //issue.Count = ver.IssueTypes.Select(x => x.Count.ToString());
            //issue.Ticket = ver.IssueTypes.Select(x => x.Ticket.ToString());


            var users = issue.Sessions.Select(user => _userBusiness.GetUser(user.UserFingerprint)).ToList().GroupBy(x => x.Id).Select(x => x.First());

            issue.Users = users;

            issue.Machines = _machineBusiness.GetMachinesByApplicationVersion(ver.Id);

            return(View(issue));
        }
Exemplo n.º 8
0
        public ActionResult Details(string initiativeidentifier, string userId)
        {
            if (initiativeidentifier == null)
            {
                throw new ArgumentNullException("initiativeidentifier", "InitiativeId was not provided.");
            }

            var i            = _initiativeBusiness.GetInitiativesByDeveloper(_accountRepository.FindById(User.Identity.GetUserId()).Email).Where(x => x.Name == initiativeidentifier).ToArray();
            var initiativeId = Guid.Empty;

            if (i.Count() == 1)//Name is unique
            {
                initiativeId = _initiativeBusiness.GetInitiativesByDeveloper(_accountRepository.FindById(User.Identity.GetUserId()).Email).Single(x => x.Name == initiativeidentifier).Id;
            }
            else//go with id
            {
                initiativeId = _initiativeBusiness.GetInitiativesByDeveloper(_accountRepository.FindById(User.Identity.GetUserId()).Email).Single(x => x.Id == Guid.Parse(initiativeidentifier)).Id;
            }

            if (initiativeId == Guid.Empty)
            {
                throw new NullReferenceException("No initiative found for the specified uid.");
            }

            var initiative     = _initiativeBusiness.GetInitiative(initiativeId);
            var initiativeName = initiative.Name;
            var sessions       = _sessionBusiness.GetSessionsForUser(userId).ToArray();

            var applicationIds   = sessions.GroupBy(x => x.ApplicationId).Select(x => x.First().ApplicationId).ToArray();
            var applicationNames = new List <string>();

            foreach (var applicationId in applicationIds)
            {
                var singleOrDefault = initiative.ApplicationGroups.SelectMany(x => x.Applications).SingleOrDefault(x => x.Id == applicationId);
                if (singleOrDefault != null)
                {
                    applicationNames.Add(singleOrDefault.Name);
                }
            }

            var machineIds   = sessions.GroupBy(x => x.MachineFingerprint).Select(x => x.First().MachineFingerprint).ToArray();
            var machineNames = new List <string>();

            foreach (var machineId in machineIds)
            {
                machineNames.Add(_machineBusiness.GetMachine(machineId).Name);
            }

            var machines = new List <IMachine>();
            var users    = new List <IUser>();

            foreach (var session in sessions)
            {
                machines.Add(_machineBusiness.GetMachine(session.MachineFingerprint));
                users.Add(_userBusiness.GetUser(session.UserFingerprint));
            }


            var model = new UserViewModel()
            {
                Sessions                   = sessions,
                Users                      = users,
                ApplicationNames           = applicationNames,
                Machines                   = machines,
                MachineNames               = machineNames,
                InitiativeName             = initiativeName,
                InitiativeUniqueIdentifier = initiativeidentifier,
            };

            return(View(model));
        }