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)); }
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)); }
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); }
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()); } }
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)); }
// 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)); }
// 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)); }
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)); }