public SmcDto Save(SmcDto smcDto) { var savedSmc = _smcRepository.GetBySerial(smcDto.Serial); var smc = _mapper.Map <SmcDto, Smc>(smcDto); smc.SmcModel = _smcModelService.GetExistingSmcModel(smc.SmcModel.Name); if (savedSmc == null) { return(_mapper.Map <Smc, SmcDto>(_smcRepository.Save(smc))); } if (savedSmc.Active) { throw new ExistentEntityException("O smc de serial " + savedSmc.Serial + " já existe"); } savedSmc.UpdateFields(smc); savedSmc.Active = true; return(_mapper.Map <Smc, SmcDto>(_smcRepository.Update(savedSmc))); }