public async Task <Result <AddPatientDrugAdministrationResponse> > Handle(AddPatientDrugAdministrationCommand request,
                                                                                  CancellationToken cancellationToken)
        {
            using (_maternityUnitOfWork)
            {
                try
                {
                    if (request.AdministeredDrugs == null)
                    {
                        return(Result <AddPatientDrugAdministrationResponse> .Invalid("Administered drugs details not found"));
                    }

                    var administeredDrugs = request.AdministeredDrugs.Select(x => new MaternalDrugAdministration(request.PatientId, request.PatientMasterVisitId, x.Id, x.Value, x.Description, request.CreatedBy)).ToList();

                    await _maternityUnitOfWork.Repository <MaternalDrugAdministration>().AddRangeAsync(administeredDrugs);

                    await _maternityUnitOfWork.SaveAsync();

                    return(Result <AddPatientDrugAdministrationResponse>
                           .Valid(new AddPatientDrugAdministrationResponse { PatientMasterVisitId = request.PatientMasterVisitId }));
                }
                catch (Exception ex)
                {
                    _logger.Error(ex, $"An error occured while adding drug administration details for PatientId {request.PatientId}");
                    return(Result <AddPatientDrugAdministrationResponse> .Invalid(ex.Message));
                }
            }
        }
        public async Task <object> Add([FromBody] AddPatientDrugAdministrationCommand command)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(command));
            }

            var response = await _mediator.Send(command, HttpContext.RequestAborted);

            if (response.IsValid)
            {
                return(Ok(response.Value));
            }

            return(BadRequest(response));
        }