Beispiel #1
0
        private async Task <CommitmentsRdsModel> RetrieveRelatedCommitmentsStatisticsFromRds()
        {
            CommitmentsRdsModel rdsStatistics = null;

            _log.Debug("Gathering statistics for the equivalent commitment stats in RDS");

            try
            {
                rdsStatistics = await _repository.RetrieveEquivalentCommitmentsStatisticsFromRds();
            }
            catch (DbException exception)
            {
                _log.Error(exception, "Failed to retrieve the equivalent commitment stats from the RDS Database");
            }

            return(rdsStatistics);
        }
Beispiel #2
0
        public async Task SaveCommitmentStatistics(CommitmentsExternalModel statisticsModel, CommitmentsRdsModel rdsModel)
        {
            await WithConnection(async c =>
            {
                using (var transaction = c.BeginTransaction())
                {
                    try
                    {
                        await SaveStatistic(c, transaction, nameof(statisticsModel.ActiveApprenticeships),
                                            statisticsModel.ActiveApprenticeships,
                                            rdsModel.ActiveApprenticeships);

                        await SaveStatistic(c, transaction, nameof(statisticsModel.TotalApprenticeships),
                                            statisticsModel.TotalApprenticeships,
                                            rdsModel.TotalApprenticeships);

                        await SaveStatistic(c, transaction, nameof(statisticsModel.TotalCohorts),
                                            statisticsModel.TotalCohorts,
                                            rdsModel.TotalCohorts);

                        transaction.Commit();
                    }
                    catch (SqlException)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }

                return(0);
            });
        }