public async Task <IActionResult> UpdateDeviceStatus(int id, [FromBody] DeviceStatusSaveResource deviceStatusSaveResource)
        {
            if (!_auth.IsAppAdmin(User))
            {
                return(NoContent());
            }

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

            /* Prexistence Test */
            var filter = new MdaDeviceStatusQuery()
            {
                Name   = deviceStatusSaveResource.Name,
                Active = Convert.ToByte(deviceStatusSaveResource.Active == true ? 1 : 0)
            };
            var deviceStatusFromRepoExisting = await _repo.GetDeviceStatuses(filter);

            if (deviceStatusFromRepoExisting.Any())
            {
                return(BadRequest($"Device Status {deviceStatusSaveResource.Name} already exists."));
            }

            var deviceStatusFromRepo = await _repo.GetDeviceStatus(id);

            if (deviceStatusFromRepo == null)
            {
                return(BadRequest($"Device Status {id} could not be found."));
            }

            _mapper.Map <DeviceStatusSaveResource, MdaDeviceStatus>(deviceStatusSaveResource, deviceStatusFromRepo);
            deviceStatusFromRepo.ModifiedBy   = User.Identity.Name;
            deviceStatusFromRepo.ModifiedDate = DateTime.Now;

            if (await _repo.SaveAll())
            {
                return(NoContent());
            }

            return(BadRequest("Failed to update device status"));
        }
        public async Task <IActionResult> AddDeviceStatus([FromBody] DeviceStatusSaveResource deviceStatusSaveResource)
        {
            if (!_auth.IsAppAdmin(User))
            {
                return(NoContent());
            }

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

            /* Prexistence Test */
            var filter = new MdaDeviceStatusQuery()
            {
                Name = deviceStatusSaveResource.Name
            };
            var deviceStatusFromRepo = await _repo.GetDeviceStatuses(filter);

            if (deviceStatusFromRepo.Any())
            {
                return(BadRequest($"Device Status {deviceStatusSaveResource.Name} already exists."));
            }

            var deviceStatus = _mapper.Map <MdaDeviceStatus>(deviceStatusSaveResource);

            deviceStatus.CreatedBy = User.Identity.Name;

            _repo.Add(deviceStatus);

            if (await _repo.SaveAll())
            {
                return(Ok(deviceStatus));
            }

            return(BadRequest("Failed to add device status"));
        }