/// <summary> /// Create User permissions object /// </summary> /// <param name="u">The user to get permissions for. NULL is not allowed.</param> /// public UserPermission(User u) : base() { this.name = u.Contact.contact_name; this.groups = u.getGroups(); this.message = ""; this.login = u.username; this.project_view_id = u.project_view_id; this.download_view_id = u.download_view_id; u.getPermissionGroup(this); }
partial void DeleteUser(User instance);
partial void UpdateUser(User instance);
partial void InsertUser(User instance);
public static IQueryable<Project> filterProject(HttpContext context, CookDBDataContext db, User u) { HttpRequest req = context.Request; IQueryable<Project> q = db.Projects; q = q.OrderByDescending(a => a.project_id); if (!isNull(req.Params.Get("biz_id"))) { int bid = int.Parse(req.Params.Get("biz_id")); q = q.Where(a => a.PrimaryBusinessUnit.biz_id == bid || a.ProjectBusinessUnits.Any(b => b.biz_id == bid)); } string prj_nm = req.Params.Get("project_name"); if (!isNull(prj_nm)) { q = q.Where(a => a.project_name.IndexOf(prj_nm) != -1 || a.project_number.IndexOf(prj_nm) != -1); } if (!isNull(req.Params.Get("project_status"))) { JArray arr = (JArray)JsonConvert.DeserializeObject(req.Params.Get("project_status")); List<string> lst = new List<string>(); for (int i = 0; i < arr.Count(); i++) { lst.Add(arr[i].ToString().Replace("\"", "")); } q = q.Where(a => lst.Contains(a.ProjectStatus.OrderByDescending(b => b.Created.changed).First().status_type)); } string cname = req.Params.Get("company_name"); if (!isNull(cname)) { q = q.Where(a => a.PrimaryBusinessUnit.Company.company_name.IndexOf(cname) != -1 || a.ProjectBusinessUnits.Any(b => b.BusinessUnit.Company.company_name.IndexOf(cname) != -1)); } string appname = req.Params.Get("app_name"); if (!isNull(appname)) { q = q.Where(a => a.ProjectIngredients.Any(b => b is ApplicationUpdate && ((ApplicationUpdate)b).app_name.Equals(appname))); } string tablename = req.Params.Get("table_name"); if (!isNull(tablename)) { q = q.Where(a => a.ProjectIngredients.Any(b => b is TableUpdate && ((TableUpdate)b).table_name.Equals(tablename))); } string exename = req.Params.Get("exe_name"); if (!isNull(exename)) { q = q.Where(a => a.ProjectIngredients.Any(b => b is ExecutableUpdate && ((ExecutableUpdate)b).exe_name.Equals(exename))); } if (!isNull(req.Params.Get("contact"))) { string c = req.Params.Get("contact"); q = q.Where(a => a.ProjectContacts.Any(b => b.Contact.contact_name.IndexOf(c) != -1)); } if (!isNull(req.Params.Get("contact_id"))) { int cid = int.Parse(req.Params.Get("contact_id")); q = q.Where(a => a.ProjectContacts.Any(b => b.contact_id == cid)); } //this one should be last (restrict q as much as possible to limit the search space) if (!isNull(req.Params.Get("search_start_date")) && !isNull(req.Params.Get("search_end_date"))) { DateTime startDate = DateTime.Parse(req.Params.Get("search_start_date")); DateTime endDate = DateTime.Parse(req.Params.Get("search_end_date")); string sdate = req.Params.Get("search_date_type"); List<int> ids = new List<int>(); if (isNull(sdate) || sdate.Equals("all")) { foreach (Project p in q) { foreach (Option o in p.Options) { if (dateInRange(o.quoted_uat_date, startDate, endDate) || dateInRange(o.production_date, startDate, endDate)) { ids.Add(p.project_id); break; } Assessment a = o.Assessments.SingleOrDefault(b => b.assessment_type.Equals("SWD")); if (a != null) { if (dateInRange(a.booked_start, startDate, endDate) || dateInRange(a.booked_complete, startDate, endDate)) { ids.Add(p.project_id); break; } } } } } else if (sdate.Equals("uat")) { foreach (Project p in q) { foreach (Option o in p.Options) { if (dateInRange(o.quoted_uat_date, startDate, endDate)) { ids.Add(p.project_id); break; } } } } else if (sdate.Equals("prod")) { foreach (Project p in q) { foreach (Option o in p.Options) { if (dateInRange(o.production_date, startDate, endDate)) { ids.Add(p.project_id); break; } } } } else if (sdate.Equals("dev_start")) { foreach (Project p in q) { foreach (Option o in p.Options) { Assessment a = o.Assessments.SingleOrDefault(b => b.assessment_type.Equals("SWD")); if (a != null) { if (dateInRange(a.booked_start, startDate, endDate)) { ids.Add(p.project_id); break; } } } } } else if (sdate.Equals("dev_end")) { foreach (Project p in q) { foreach (Option o in p.Options) { Assessment a = o.Assessments.SingleOrDefault(b => b.assessment_type.Equals("SWD")); if (a != null) { if (dateInRange(a.booked_complete, startDate, endDate)) { ids.Add(p.project_id); break; } } } } } q = q.Where(a => ids.Contains(a.project_id)); } return q; }