public IHttpActionResult RegisterCriminal([FromBody]CriminalBindingModel model) { if (model == null) { return this.BadRequest("Model cannot be null"); } if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } var criminal = this.Data.Criminals.All().FirstOrDefault(c => c.FullName == model.Name); if (criminal!=null) { return this.Conflict(); } string loggedUserId = this.User.Identity.GetUserId(); var newCriminal = new Criminal() { FullName = model.Name, Alias = model.Alias, Status = Status.Active, CreatorId = loggedUserId }; this.Data.Criminals.Add(newCriminal); this.Data.SaveChanges(); var result = this.Data.Criminals.All() .Where(c => c.FullName == model.Name) .Select(RegisterdCriminalViewModel.Create); return this.CreatedAtRoute( "DefaultApi", new { controller = "criminals", Name = model.Name }, result); }
public void RegisterCriminalWhoAlreadyExists_ShouldReturnConflict() { // Arrange var context = new CriminalContext(); var existingCriminal = new Criminal() { FullName = "Mafioso", Alias = "Mafioso", }; context.Criminals.Add(existingCriminal); context.SaveChanges(); var newName = "Mafioso"; var newAlias = "Mafioso"; // Act this.SetAuthorizationHeaders(true); var response = this.SendCreateNewCriminalRequest(newName, newAlias); // Assert Assert.AreEqual(HttpStatusCode.Conflict, response.StatusCode); var mafioso = context.Criminals.Where(c => c.FullName == "Mafioso"); Assert.AreEqual(1, mafioso.Count()); }