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());
        }