public async Task <bool> UpdateSangreCliente(SangreCliente sangreCliente)
        {
            var currentSangre = await GetSangreCliente(sangreCliente.Id);

            currentSangre.Descripcion = sangreCliente.Descripcion;
            currentSangre.Estatus     = sangreCliente.Estatus ?? true;
            _unitOfWork.SangreClienteRepository.Update(currentSangre);
            await _unitOfWork.SaveChangesAsync();

            return(true);
        }
        public async Task InsertSangreCliente(SangreCliente sangreCliente)
        {
            await SangreClienteValidation(sangreCliente);

            sangreCliente.Id         = 0;
            sangreCliente.TipoSangre = sangreCliente.TipoSangre.Trim().ToUpper();
            sangreCliente.Estatus    = true;
            await _unitOfWork.SangreClienteRepository.Add(sangreCliente);

            await _unitOfWork.SaveChangesAsync();
        }
        public async Task SangreClienteValidation(SangreCliente sangre)
        {
            var sangres = await _unitOfWork.SangreClienteRepository.GetAll();

            if (sangres.Where(x => x.TipoSangre.ToLower().Trim() == sangre.TipoSangre.ToLower().Trim()).Any())
            {
                throw new BussinessException("La Sangre ya existe", 400);
            }

            var tiposSangres = new List <string> {
                "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"
            };

            if (!tiposSangres.Contains(sangre.TipoSangre.ToUpper()))
            {
                throw new BussinessException("Solo se aceptan tipos: A+, A-, B+, B-, AB+, AB-, O+, O-", 400);
            }
        }