Exemplo n.º 1
0
        public async Task <SampleDto> Execute(SampleDto sampleDto)
        {
            Amostra amostra = SampleDtoMapToAmostra.Map(new Amostra(), sampleDto);

            if (amostra == null)
            {
                throw new AppError("Informe uma solicitação válida.");
            }
            _amostraRepository.Save(amostra);
            await _amostraRepository.Commit();

            return(sampleDto);
        }
Exemplo n.º 2
0
        public async Task <SampleDto> Execute(SampleDto sampleDto, int?solicitationId)
        {
            if (solicitationId <= 0)
            {
                throw new AppError("Informe uma solicitação válida.");
            }
            Solicitacao solicitacao = await _solicitacaoRepository.GetByID((int)solicitationId);

            if (solicitacao == null)
            {
                throw new AppError("Informe uma solicitação válida.");
            }
            if (sampleDto.CollectionDate > DateTime.Now)
            {
                throw new AppError("Data de coleta não pode ser uma data futura");
            }
            if (sampleDto.FabricationDate > DateTime.Now)
            {
                throw new AppError("Data de fabricação não pode ser uma data futura");
            }
            if (sampleDto.FabricationDate > sampleDto.ExpirationDate)
            {
                throw new AppError("Data de fabricação não pode ser maior que a data de validade");
            }
            if (sampleDto.FabricationDate > sampleDto.CollectionDate)
            {
                throw new AppError("Data de fabricação não pode ser maior que a data de coleta");
            }
            Amostra amostra = SampleDtoMapToAmostra.Map(new Amostra(), sampleDto);

            amostra.fkSolicitacao   = solicitacao;
            amostra.fkSolicitacaoId = solicitacao.Id;
            _amostraRepository.Insert(amostra);
            await _amostraRepository.Commit();

            foreach (var x in sampleDto.Assays)
            {
                var ensaiosPorAmostra = new EnsaiosPorAmostra();
                ensaiosPorAmostra.fkAmostraId = amostra.Id;
                ensaiosPorAmostra.fkEnsaioId  = (int)x.Id;
                amostra.EnsaiosPorAmostras.Add(ensaiosPorAmostra);
            }
            sampleDto.Id = amostra.Id;
            _amostraRepository.Save(amostra);
            await _amostraRepository.Commit();

            return(sampleDto);
        }