Exemple #1
0
        public override Result <Emergency> Register(EmergencyModel model)
        {
            try
            {
                Emergency emergency = _mapper.Map <Emergency>(model);

                foreach (var patient in model.PatientModels)
                {
                    var resultPatient = _patientBLL.Register(patient);
                    if (!resultPatient.Success)
                    {
                        return(Result <Emergency> .BuildError(resultPatient.Messages));
                    }
                }

                var result = _emergencyValidation.Validate(emergency);
                if (!result.Success)
                {
                    return(result);
                }

                _emergencyDAL.Insert(emergency);

                var resultSave = _emergencyDAL.Save();
                if (!resultSave.Success)
                {
                    return(Result <Emergency> .BuildError(resultSave.Messages));
                }

                return(Result <Emergency> .BuildSuccess(emergency));
            }
            catch (Exception error)
            {
                return(Result <Emergency> .BuildError("Erro no momento de registar a emergência.", error));
            }
        }