public async Task <TreatmentDiseaseDto> Add(TreatmentDiseaseDto model) { var entity = _mapper.Map <TTreatment>(model); entity.Code = string.Empty; if (model.Diseases != null && model.Diseases.Any()) { entity.TTreatmentDisease = new List <TTreatmentDisease>(); foreach (var disease in model.Diseases) { entity.TTreatmentDisease.Add(new TTreatmentDisease { PatientId = entity.PatientId, MedicalRecordId = entity.MedicalRecordId, DiseaseId = disease.Id, CreatedBy = model.CreatedBy, CreatedTime = model.CreatedTime, UpdatedBy = model.UpdatedBy, UpdatedTime = model.UpdatedTime, IsActived = true, }); } } _treatmentRepository.Add(entity); await _treatmentRepository.SaveChangeAsync(); var maxId = await _treatmentRepository.Repo.MaxAsync(c => c.Id); entity.Code = $"DT-{(maxId + 1):D10}"; await _treatmentRepository.SaveChangeAsync(); model.Id = entity.Id; return(model); }
public async Task <bool> Update(TreatmentDiseaseDto model) { var entity = await _treatmentRepository.Repo .Include(c => c.TTreatmentDisease) .FirstOrDefaultAsync(c => c.Id == model.Id); entity.StartDate = model.StartDate; entity.EndDate = model.EndDate; entity.DoctorId = model.DoctorId; entity.NurseId = model.NurseId; entity.Title = model.Title; entity.Content = model.Content; entity.UpdatedBy = model.UpdatedBy; entity.UpdatedTime = model.UpdatedTime; entity.Note = model.Note; var insertedDiseases = model.Diseases.Where(c => !entity.TTreatmentDisease.Any(x => x.DiseaseId == c.Id)); foreach (var newDisease in insertedDiseases) { entity.TTreatmentDisease.Add(new TTreatmentDisease { PatientId = entity.PatientId, MedicalRecordId = entity.MedicalRecordId, DiseaseId = newDisease.Id, CreatedTime = entity.UpdatedTime, CreatedBy = entity.UpdatedBy, UpdatedTime = entity.UpdatedTime, UpdatedBy = entity.UpdatedBy, IsActived = true, IsDeleted = false }); } var removedDiseases = entity.TTreatmentDisease.Where(c => !model.Diseases.Any(x => x.Id == c.DiseaseId)); foreach (var removedDisease in removedDiseases) { removedDisease.UpdatedBy = entity.UpdatedBy; removedDisease.UpdatedTime = entity.UpdatedTime; removedDisease.IsActived = false; } var keepDiseases = entity.TTreatmentDisease.Where(c => model.Diseases.Any(x => x.Id == c.DiseaseId)); foreach (var removedDisease in removedDiseases) { removedDisease.UpdatedBy = entity.UpdatedBy; removedDisease.UpdatedTime = entity.UpdatedTime; removedDisease.IsActived = true; } var recordUpdated = await _treatmentRepository.SaveChangeAsync(); return(recordUpdated > 0); }
public async Task <bool> Put(TreatmentDiseaseDto model) { var result = false; if (ModelState.IsValid) { var dateTimeUtcNow = DateTime.Now; model.UpdatedBy = _authenticationDto.UserId; model.UpdatedTime = dateTimeUtcNow; result = await _treatmentBusiness.Update(model); } return(result); }
public async Task <int> Post(TreatmentDiseaseDto model) { var result = 0; if (ModelState.IsValid) { var dateTimeUtcNow = DateTime.Now; model.CreatedBy = _authenticationDto.UserId; model.CreatedTime = dateTimeUtcNow; model.UpdatedBy = _authenticationDto.UserId; model.UpdatedTime = dateTimeUtcNow; model.IsActived = true; var modelInsert = await _treatmentBusiness.Add(model); result = modelInsert.Id; } return(result); }