public async Task <Result> Handle(AddDiagnosisXDrugCommand request, CancellationToken cancellationToken)
        {
            var entity = new DiagnosisXDrug
            {
                DiagnosisId = request.DiagnosisId,
                DrugId      = request.DrugId
            };

            await _context.DiagnosisXDrugs.AddAsync(entity, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(Result.Success("Link between diagnosis and drug was created successfully"));
        }
        private Result Validations(DiagnosisXDrug entity)
        {
            var errors = new List <string>();

            if (entity == null)
            {
                return(Result.Failure(new List <string> {
                    "No valid link between diagnosis and drug found"
                }));
            }

            if (entity.Diagnosis == null || entity.Diagnosis != null && entity.Diagnosis.Deleted)
            {
                errors.Add("Diagnosis is deleted. You must update that first.");
            }

            if (entity.Drug == null || entity.Drug != null && entity.Drug.Deleted)
            {
                errors.Add("Drug is deleted. You must update that first.");
            }

            return(errors.Any() ? Result.Failure(errors) : Result.Success());
        }