public IndexIssuePartialViewModel(User currentUser, Models.Issue issue) : base(issue) { CurrentUser = currentUser; Comments = issue.NumberOfComments; if (issue.DateOfUpdate.Date == DateTime.Now.ToUniversalTime().Date) Time = issue.DateOfUpdate.ToCentralEuropeanTime().ToString("HH:mm"); else Time = issue.DateOfUpdate.ToCentralEuropeanTime().ToString("d.M."); }
public IndexViewModel(Db db, User currentUser, Models.Issue issue, ViewDataDictionary viewData) : base(issue) { CurrentUser = currentUser; DateOfCreation = issue.DateOfCreation.ToCentralEuropeanTime(); ParentIssueId = issue.ParentIssueId; StackTrace = issue.StackTrace ?? ""; ServerVariables = issue.ServerVariables ?? ""; Comments = (from x in db.Comments where x.IssueId == issue.Id orderby x.DateOfCreation select x).ToList().Select(x => new DetailsCommentPartialViewModel(db, x, viewData)); SimilarIssuesCount = db.Issues.Count(x => x.ParentIssueId == issue.Id || (issue.ParentIssueId.HasValue && x.ParentIssueId == issue.ParentIssueId)); var stati = new List<SelectListItem>(); stati.AddRange( from x in Utils.GetAllStati(db, viewData) select new SelectListItem { Text = x.Name, Value = x.Name, Selected = Status.Is(x.Name) } ); AvailableStati = stati; var users = new List<SelectListItem> { new SelectListItem { Text = "< none >", Value = "-", Selected = AssignedTo.IsNoE() } }; users.AddRange( from x in Utils.GetAllUsers(db, viewData) select new SelectListItem { Text = x.Name, Value = x.Name, Selected = AssignedTo.Is(x.Name) } ); AvailableUsers = users; AvailableEmailAddresses = Utils.GetAllUsers(db, viewData).Select(x => x.Email); var versions = new List<string>(); if (issue.Version.HasValue()) versions.Add(issue.Version); versions.AddRange(db.Issues.Where(x => x.ParentIssueId == issue.Id).Where(x => x.Version != null && x.Version != "").Select(x => x.Version).Distinct()); versions = versions.Distinct().ToList(); if (versions.Any()) if (versions.Count == 1) MinVersion = versions.First(); else { var sortedVersions = versions.Select(x => new Version(x)).OrderBy(x => x).ToList(); MinVersion = sortedVersions.First().ToString(); MaxVersion = sortedVersions.Last().ToString(); } if (issue.RemoteHost.HasValue()) { try { RemoteHost = Dns.GetHostEntry(issue.RemoteHost).HostName; if (RemoteHost != issue.RemoteHost) RemoteHost += " - " + issue.RemoteHost; } catch { RemoteHost = issue.RemoteHost; } } }