public void UpdateViewModelTwiceShouldGenerateConcurrencyException() { int rowsUpdated = 0; EmployeeViewModel user1Vm = new EmployeeViewModel(); EmployeeViewModel user2Vm = new EmployeeViewModel(); // Simulate users getting same employee: user1Vm.Lastname = "Smartypants"; user1Vm.GetBySurname(); user2Vm.Lastname = "Smartypants"; user2Vm.GetBySurname(); // Change phone number for user 1: user1Vm.Phoneno = "555-555-5551"; // User 1 updates: rowsUpdated = user1Vm.Update(); if (rowsUpdated == 1) { // Change phone numeber for user 2: user2Vm.Phoneno = "555-555-5552"; // Conncurrency exception rowsUpdated should = -2 rowsUpdated = user2Vm.Update(); } Assert.IsTrue(rowsUpdated == -2); }
public IHttpActionResult Put(EmployeeViewModel emp) { try { int errorNumber = emp.Update(); switch (errorNumber) { case 1: return Ok("Employee " + emp.Lastname + " updated!"); break; case -1: return Ok("Employee" + emp.Lastname + " not updated!"); break; case -2: return Ok("Data is stale for " + emp.Lastname + ". Employee not updated!"); break; default: return Ok("Employee" + emp.Lastname + " not updated!"); break; } } catch (Exception ex) { return BadRequest("Update failed - " + ex.Message); } }
public IHttpActionResult Get() { try { EmployeeViewModel emp = new EmployeeViewModel(); List<EmployeeViewModel> allEmployees = emp.GetAll(); return Ok(allEmployees); } catch (Exception ex) { return BadRequest("Retrive failed - " + ex.Message); } }
public IHttpActionResult Get(string id) { try { EmployeeViewModel emp = new EmployeeViewModel(); emp.GetById(id); return Ok(emp); } catch (Exception ex) { return BadRequest("Retrive failed - " + ex.Message); } }
public List<EmployeeViewModel> GetAll() { List<EmployeeViewModel> viewModels = new List<EmployeeViewModel>(); try { List<Employee> employees = _dao.GetAll(); foreach (Employee e in employees) { // Return only fields for display, subdequent get will other fields EmployeeViewModel viewModel = new EmployeeViewModel(); viewModel.Id = e._id.ToString(); viewModel.Title = e.Title; viewModel.Firstname = e.Firstname; viewModel.Lastname = e.Lastname; viewModels.Add(viewModel); // Add to list } } catch (Exception ex) { ErrorRoutine(ex, "EmployeeViewModel", "GetAll"); } return viewModels; }