public LevelOfImportance DeleteLevelOfImportance(int id)
        {
            LevelOfImportance levelOfImportance = db.LevelOfImportance.Find(id);

            if (levelOfImportance == null)
            {
                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Delete", string.Empty, $"LevelOfImportance {id} not found to delete.");
                return(null);
            }

            try
            {
                db.LevelOfImportance.Remove(levelOfImportance);
                db.SaveChanges();

                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Delete", levelOfImportance.ToString());
            }
            catch (Exception e)
            {
                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Delete", levelOfImportance.ToString(), "Error deleting levelOfImportance: " + e.Message);
                return(null);
            }

            return(levelOfImportance);
        }
        public LevelOfImportance GetLevelOfImportanceById(int id)
        {
            LevelOfImportance levelOfImportance = db.LevelOfImportance.Find(id);

            _loggerService.CreateLog("Jordan", "LevelOfImportance", "Get By Id", id.ToString(), $"Results found: {levelOfImportance != null}");

            return(levelOfImportance);
        }
        public IHttpActionResult GetById(int id)
        {
            _loggerService.CreateLog(_user, "API", "LevelOfImportanceController", "LevelOfImportance", "Get By Id", id.ToString(), null);

            LevelOfImportance levelOfImportance = _levelOfImportanceRepository.GetLevelOfImportanceById(id);

            if (levelOfImportance == null)
            {
                return(NotFound());
            }

            return(Ok(levelOfImportance));
        }
        public IHttpActionResult Insert(LevelOfImportance levelOfImportance)
        {
            _loggerService.CreateLog(_user, "API", "LevelOfImportanceController", "LevelOfImportance", "Insert", levelOfImportance.ToString(), null);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var createdLevelOfImportance = _levelOfImportanceRepository.InsertLevelOfImportance(levelOfImportance);

            if (createdLevelOfImportance == null)
            {
                BadRequest("There was a problem inserting your record. Please try again.");
            }

            return(Created($"api/levelOfImportance?id={createdLevelOfImportance.Id}", createdLevelOfImportance));
        }
        public LevelOfImportance InsertLevelOfImportance(LevelOfImportance levelOfImportance)
        {
            try
            {
                levelOfImportance.CreatedDateTime = DateTime.Now;
                db.LevelOfImportance.Add(levelOfImportance);
                db.SaveChanges();

                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Create", levelOfImportance.ToString());

                return(levelOfImportance);
            }
            catch (Exception e)
            {
                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Create", levelOfImportance.ToString(), "Error creating this record: " + e.Message);
                return(null);
            }
        }
        public LevelOfImportance UpdateLevelOfImportance(LevelOfImportance updatedLevelOfImportance)
        {
            var currentLevelOfImportance = db.LevelOfImportance.Find(updatedLevelOfImportance.Id);

            if (currentLevelOfImportance == null)
            {
                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Update", string.Empty, $"LevelOfImportance {updatedLevelOfImportance.Id} not found to update.");
                return(null);
            }

            if (updatedLevelOfImportance.Name != null)
            {
                currentLevelOfImportance.Name = updatedLevelOfImportance.Name;
            }

            currentLevelOfImportance.Archived         = updatedLevelOfImportance.Archived;
            currentLevelOfImportance.ModifiedDateTime = DateTime.Now;

            db.Entry(currentLevelOfImportance).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException e)
            {
                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Update", currentLevelOfImportance.ToString(), "Error updating levelOfImportance: " + e.Message);
                return(null);
            }
            catch (Exception e)
            {
                _loggerService.CreateLog("Jordan", "LevelOfImportance", "Update", currentLevelOfImportance.ToString(), "Error updating levelOfImportance: " + e.Message);
                return(null);
            }

            _loggerService.CreateLog("Jordan", "LevelOfImportance", "Update", currentLevelOfImportance.ToString());
            return(currentLevelOfImportance);
        }
        public IHttpActionResult Update(int id, LevelOfImportance levelOfImportance)
        {
            _loggerService.CreateLog(_user, "API", "LevelOfImportanceController", "LevelOfImportance", "Update", levelOfImportance.ToString(), null);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != levelOfImportance.Id)
            {
                return(BadRequest("The Id's do not match"));
            }

            var updatedLevelOfImportance = _levelOfImportanceRepository.UpdateLevelOfImportance(levelOfImportance);

            if (updatedLevelOfImportance == null)
            {
                return(BadRequest("There was a problem updating your record. Please try again"));
            }

            return(Ok($"api/levelOfImportance?id={levelOfImportance.Id}"));
        }