public void TestFixtureSetUp() { // setup memcached _memcached = Process.Start( @"..\..\..\..\Libraries\memcached.exe", "-vv -p 11200"); using (var db = new TrackerDataContext()) { var role1 = new Role { Name = "Test Role" }; var role2 = new Role { Name = "Duck Roll" }; db.Role.InsertOnSubmit(role1); db.Role.InsertOnSubmit(role2); db.SubmitChanges(); _roleIds.Add(role1.Id); _roleIds.Add(role2.Id); } }
public ActionResult Create([Bind(Exclude="Id")]Task task) { try { using (var db = new TrackerDataContext()) { db.Task.InsertOnSubmit(task); db.SubmitChanges(); var audit = new Audit(db.LastAudit); audit.Task = task; db.Audit.InsertOnSubmit(audit); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = task.Id }); } catch (BrokenRuleException e) { foreach (BrokenRule rule in e.BrokenRules) ModelState.AddModelError(rule.Context.Rule.TargetProperty, rule.Message); return View(GetData()); } }
public ActionResult AddRole(int userId, int roleId) { using (var db = new TrackerDataContext()) { var options = new DataLoadOptions(); options.LoadWith<User>(u => u.UserRoleList); var user = db.User.GetByKey(userId); var role = db.Role.GetByKey(roleId); user.RoleList.Add(role); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = userId }); }
public ActionResult CopyTask(int id) { Task copiedTask = null; using (var db = new TrackerDataContext()) { Task task = db.Task.GetByKey(id); copiedTask = task.Clone(); copiedTask.Id = 0; copiedTask.CreatedUser = db.User.GetByEmailAddress(System.Web.HttpContext.Current.User.Identity.Name); db.Task.InsertOnSubmit(copiedTask); db.SubmitChanges(); } return RedirectToAction("Edit", new {id = copiedTask.Id}); }
private void CreateTask(int userId) { var task = new Task() { AssignedId = userId, Status = Status.InProgress, Summary = "Explain the visions that inspire you", Priority = Priority.High, CreatedId = userId, }; using (var db = new TrackerDataContext { Log = Console.Out }) { db.Task.InsertOnSubmit(task); db.SubmitChanges(); TaskId = task.Id; } }
public ActionResult RemoveRole(int userId, int roleId) { using (var db = new TrackerDataContext()) { var options = new DataLoadOptions(); options.LoadWith<User>(u => u.UserRoleList); options.LoadWith<UserRole>(r => r.Role); db.LoadOptions = options; var user = db.User.GetByKey(userId); var role = user.RoleList.FirstOrDefault(r => r.Id == roleId); user.RoleList.Remove(role); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = userId }); }
public void TestFixtureSetUp() { using (var db = new TrackerDataContext { Log = Console.Out }) { var role1 = new Role { Name = "Test Role" }; var role2 = new Role { Name = "Duck Roll" }; db.Role.InsertOnSubmit(role1); db.Role.InsertOnSubmit(role2); db.SubmitChanges(); _roleIds.Add(role1.Id); _roleIds.Add(role2.Id); } }
public void TestFixtureSetUp() { using (var db = new TrackerDataContext { Log = Console.Out }) { db.Guid.InsertOnSubmit(new Core.Data.Guid { Id = _guid1Id, AlternateId = null }); db.Guid.InsertOnSubmit(new Core.Data.Guid { Id = _guid2Id, AlternateId = _guid2Alt }); db.Guid.InsertOnSubmit(new Core.Data.Guid { Id = _guid3Id, AlternateId = _guid3Alt }); db.SubmitChanges(); } }
public void Test_Entity_Detach() { Task task = null; using (var db = new TrackerDataContext { Log = Console.Out }) { task = db.Task.GetByKey(TaskId); task.Detach(); } task.Status = Status.Done; using (var context2 = new TrackerDataContext()) { context2.Log = Console.Out; context2.Task.Attach(task, true); context2.SubmitChanges(); } }
public ActionResult AvatarPost(int id) { if (Request.Files.Count != 1) { using (var db = new TrackerDataContext()) { var user = db.User.GetByKey(id); ModelState.AddModelError("file", "Must select a file to upload."); return View("Edit", GetData(user)); } } var file = Request.Files[0]; var buffer = new byte[file.ContentLength]; file.InputStream.Read(buffer, 0, buffer.Length); using (var db = new TrackerDataContext()) { var user = db.User.GetByKey(id); user.Avatar = new Binary(buffer); user.AvatarType = file.ContentType; db.SubmitChanges(); var audit = new Audit(db.LastAudit); audit.User = user; db.Audit.InsertOnSubmit(audit); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = id }); }
public ActionResult RemoveAvatar(int id) { using (var db = new TrackerDataContext()) { var user = db.User.GetByKey(id); user.AvatarType = null; user.Avatar = null; db.SubmitChanges(); } return RedirectToAction("Edit", new { id = id }); }
public ActionResult UserEdit(int id) { User user = null; var userViewData = new UserViewData(); try { using (var db = new TrackerDataContext()) { var options = new DataLoadOptions(); options.LoadWith<Data.User>(u => u.UserRoleList); options.LoadWith<Data.UserRole>(u => u.Role); db.LoadOptions = options; user = db.User.GetByKey(id); UpdateModel(user); if (!db.GetChangeSet().Updates.Contains(user)) { var ruleManager = new RuleManager(); ruleManager.Run(user); if (ruleManager.BrokenRules.Count > 0) throw new BrokenRuleException(ruleManager.BrokenRules); } db.SubmitChanges(); var audit = new Audit(db.LastAudit); audit.User = user; db.Audit.InsertOnSubmit(audit); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = id }); } catch (BrokenRuleException e) { if (user != null) user.Detach(); foreach (BrokenRule rule in e.BrokenRules) ModelState.AddModelError(rule.Context.Rule.TargetProperty, rule.Message); return View(GetData(user)); } }
public ActionResult Create(string emailAddress, string password, string confirmPassword) { try { if (confirmPassword == password) { MembershipCreateStatus createStatus = MembershipService.CreateUser(emailAddress, password, emailAddress); if (createStatus == MembershipCreateStatus.Success) { using (var db = new TrackerDataContext()) { var user = db.User.GetByEmailAddress(emailAddress); TryUpdateModel(user, null, null, new string[] { "FirstName, LastName" }); db.SubmitChanges(); return RedirectToAction("Edit", new { id = user.Id }); } } else { ModelState.AddModelError("_FORM", UIHelper.ErrorCodeToString(createStatus)); } return View(); } else { ModelState.AddModelError("Password", "Passwords must match"); return View(); } } catch (BrokenRuleException e) { foreach (BrokenRule rule in e.BrokenRules) ModelState.AddModelError(rule.Context.Rule.TargetProperty, rule.Message); return View(); } }
//[Ignore] public void ManyToMany() { var db = new TrackerDataContext { Log = Console.Out }; var user = db.User.GetByKey(1); user.RoleList.Add(db.Role.GetByKey(1)); user.RoleList.Add(db.Role.GetByKey(2)); db.SubmitChanges(); var userRole = user.UserRoleList.FirstOrDefault(u => u.RoleId == 1); db.UserRole.DeleteOnSubmit(userRole); user.RoleList.Remove(db.Role.GetByKey(1)); user.RoleList.Remove(db.Role.GetByKey(2)); var changes = db.GetChangeSet(); db.SubmitChanges(); }
private void CreateUsers() { var user = new User() { FirstName = "Spock", LastName = "Sarekson", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = true }; using (var db = new TrackerDataContext { Log = Console.Out }) { db.User.InsertOnSubmit(user); db.SubmitChanges(); SpockId = user.Id; } var users = new List<User>(); users.Add(new User() { FirstName = "James", LastName = "Kirk", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = true }); users.Add(new User() { FirstName = "Bones", LastName = "McCoy", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = false }); users.Add(new User() { FirstName = "Nyota", LastName = "Uhura", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = false }); users.Add(new User() { FirstName = "Ellen", LastName = "Tigh", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = false }); using (var db = new TrackerDataContext { Log = Console.Out }) { db.User.InsertAllOnSubmit(users); db.SubmitChanges(); JamesId = db.User.ByFirstName("James").ByLastName("Kirk").First().Id; } }
public void AuditLog() { var db = new TrackerDataContext { Log = Console.Out }; db.AuditingEnabled = true; var user = new User(); user.EmailAddress = string.Format("test.{0}@test.com", DateTime.Now.Ticks); user.FirstName = "Test"; user.IsApproved = true; user.LastName = "User"; user.PasswordHash = "asdf"; user.PasswordSalt = "asdf"; db.User.InsertOnSubmit(user); db.SubmitChanges(); var auditLog = db.LastAudit; Assert.IsNotNull(auditLog); }
public void Test_Entity_Clone() { using (var db = new TrackerDataContext { Log = Console.Out }) { var u = db.Task.GetByKey(TaskId); Task taskCopy = u.Clone(); taskCopy.Id = 0; db.Task.InsertOnSubmit(taskCopy); db.SubmitChanges(); } }
public void Test_Entity_Detach_Update() { Task task = null; using (var db = new TrackerDataContext { Log = Console.Out }) { task = db.Task.GetByKey(TaskId); task.Detach(); } using (var context2 = new TrackerDataContext()) { context2.Log = Console.Out; // attach, then update properties context2.Task.Attach(task); task.Status = Status.Done; context2.SubmitChanges(); } }
public void TestFixtureSetUp() { using (var db = new TrackerDataContext {Log = Console.Out}) { var users = new List<User> { new User { FirstName = "Testie McTester", LastName = "The First", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = false }, new User { FirstName = "Testie McTester", LastName = "The Second", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = false }, new User { FirstName = "Testie McTester", LastName = "The Third", PasswordHash = "aM/Vndh7cYd3Mxq7msArjl9YU8zoR6fF+sVTSUCcsJi2bx+cwOI0/Bkr5hfq9vYfTe3/rlgPpSMg108acpw+qA", PasswordSalt = "=Unc%", EmailAddress = "*****@*****.**", IsApproved = false } }; var emails = users.Select(u => u.EmailAddress).ToArray(); var existing = from u in db.User where emails.Contains(u.EmailAddress) select u; var existingUsers = existing.Select(u => u.Id).ToList(); var testTasks = from t in db.Task where existingUsers.Contains(t.CreatedId) || existingUsers.Contains(t.AssignedId.Value) select t; db.Task.Delete(testTasks); db.User.Delete(existing); db.User.InsertAllOnSubmit(users); db.SubmitChanges(); UserIds = users.Select(u => u.Id).ToList(); DueDates.Add(DateTime.Today.AddDays(1)); DueDates.Add(DateTime.Today.AddDays(2)); var tasks = new List<Task>(); tasks.Add(new Task { CreatedId = UserIds[0], Priority = Priority.Normal, Status = Status.NotStarted, Summary = "Test", AssignedId = null, DueDate = null, Details = null }); tasks.Add(new Task { CreatedId = UserIds[1], Priority = Priority.Normal, Status = Status.InProgress, Summary = "Test", AssignedId = UserIds[0], DueDate = DueDates[0], Details = String.Empty }); tasks.Add(new Task { CreatedId = UserIds[2], Priority = Priority.High, Status = Status.Completed, Summary = "Test", AssignedId = UserIds[1], DueDate = DueDates[1], Details = "Hello world!" }); tasks.Add(new Task { CreatedId = UserIds[2], Priority = Priority.High, Status = Status.Completed, Summary = "Test", AssignedId = UserIds[1], DueDate = null, Details = "Goodnight moon!" }); db.Task.InsertAllOnSubmit(tasks); db.SubmitChanges(); TaskIds = tasks.Select(t => t.Id).ToList(); CreateDates = tasks.Select(t => t.CreatedDate).ToList(); } }
public void Test_Rules() { int brokenRules = 0; try { using (var db = new TrackerDataContext { Log = Console.Out }) { User user = new User(); user.EmailAddress = "*****@*****.**"; db.User.InsertOnSubmit(user); db.SubmitChanges(); } } catch (BrokenRuleException e) { brokenRules = e.BrokenRules.Count; Console.Write(e.ToString()); } Assert.AreEqual(brokenRules, 5); }
public void Test_Auditing() { using (var db = new TrackerDataContext { Log = Console.Out }) { var user = db.User.GetByKey(SpockId); user.Comment = "I love my mom, but I hate Winona Ryder."; var task = new Task() { AssignedId = SpockId, CreatedId = SpockId, Status = Status.NotStarted, Priority = Priority.High, Summary = "Punch Kirk in the face!" }; db.Task.InsertOnSubmit(task); db.SubmitChanges(); Console.Write(db.LastAudit.ToXml()); } }
public void Test_Enum() { using (var db = new TrackerDataContext { Log = Console.Out }) { var task = db.Task.GetByKey(TaskId); task.Priority = Priority.High; db.SubmitChanges(); } }
public void Test_Many_To_Many() { using (var db = new TrackerDataContext { Log = Console.Out }) { User u = db.User.GetByKey(SpockId); Role r = db.Role.ByName("Manager").First(); u.RoleList.Add(r); db.SubmitChanges(); } }
public void Test_Entity_Dirty_Attach() { Task task = null; using (var db = new TrackerDataContext { Log = Console.Out }) { task = db.Task.GetByKey(TaskId); task.Detach(); } task.Status = Status.Done; Assert.IsFalse(task.IsAttached()); // Let's update the task in a seperate DataContext. using (var db = new TrackerDataContext()) { db.Log = Console.Out; var task2 = db.Task.GetByKey(TaskId); task2.Status = Status.InProgress; db.SubmitChanges(); } // Attach the original task and send it to the database. using (var db = new TrackerDataContext()) { db.Log = Console.Out; Assert.IsFalse(task.IsAttached()); db.Task.Attach(task, true); db.Refresh(RefreshMode.KeepCurrentValues, task); Assert.IsTrue(task.IsAttached()); db.SubmitChanges(); } }
public ActionResult EditPost(int id) { Task task = null; try { using (var db = new TrackerDataContext()) { var options = new DataLoadOptions(); options.LoadWith<Task>(t => t.CreatedUser); db.LoadOptions = options; task = db.Task.GetByKey(id); UpdateModel(task); db.SubmitChanges(); var audit = new Audit(db.LastAudit); audit.Task = task; db.Audit.InsertOnSubmit(audit); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = task.Id }); } catch (BrokenRuleException e) { foreach (BrokenRule rule in e.BrokenRules) ModelState.AddModelError(rule.Context.Rule.TargetProperty, rule.Message); task.Detach(); return View(GetData(task)); } }