private string GetErrorMessageByServiceType(StatsDownloadService service, string fileDownloadMessage,
                                                    string statsUploadMessage, string defaultMessage)
        {
            if (service == StatsDownloadService.FileDownload)
            {
                return(fileDownloadMessage);
            }

            if (service == StatsDownloadService.StatsUpload)
            {
                return(statsUploadMessage);
            }

            return(defaultMessage);
        }
        public string GetErrorMessage(FailedReason failedReason, StatsDownloadService service)
        {
            if (failedReason == FailedReason.DatabaseUnavailable)
            {
                return(GetErrorMessageByServiceType(service, ErrorMessages.FileDownloadDatabaseUnavailable,
                                                    ErrorMessages.StatsUploadDatabaseUnavailable, ErrorMessages.DefaultDatabaseUnavailable));
            }

            if (failedReason == FailedReason.DataStoreUnavailable)
            {
                return(ErrorMessages.DataStoreUnavailable);
            }

            if (failedReason == FailedReason.DatabaseMissingRequiredObjects)
            {
                return(GetErrorMessageByServiceType(service, ErrorMessages.FileDownloadMissingRequiredObjects,
                                                    ErrorMessages.StatsUploadMissingRequiredObjects, ErrorMessages.DefaultMissingRequiredObjects));
            }

            if (failedReason == FailedReason.RequiredSettingsInvalid)
            {
                return(ErrorMessages.RequiredSettingsAreInvalid);
            }

            if (failedReason == FailedReason.FileDownloadTimeout)
            {
                return(ErrorMessages.FileDownloadTimedOut);
            }

            if (failedReason == FailedReason.FileDownloadNotFound)
            {
                return(ErrorMessages.FileDownloadNotFound);
            }

            if (failedReason == FailedReason.FileDownloadFailedDecompression)
            {
                return(ErrorMessages.FileDownloadFailedDecompression);
            }

            if (failedReason == FailedReason.InvalidStatsFileUpload)
            {
                return(ErrorMessages.InvalidStatsFile);
            }

            if (failedReason == FailedReason.UnexpectedDatabaseException)
            {
                return(ErrorMessages.StatsUploadTimeout);
            }

            if (failedReason == FailedReason.UnexpectedException)
            {
                return(GetErrorMessageByServiceType(service, ErrorMessages.FileDownloadUnexpectedException,
                                                    ErrorMessages.StatsUploadUnexpectedException, ErrorMessages.DefaultUnexpectedException));
            }

            if (failedReason == FailedReason.UnexpectedValidationException)
            {
                return(ErrorMessages.UnexpectedValidationException);
            }

            return(string.Empty);
        }
        public string GetErrorMessage(FailedReason failedReason, FilePayload filePayload, StatsDownloadService service)
        {
            if (failedReason == FailedReason.MinimumWaitTimeNotMet)
            {
                TimeSpan minimumWaitTimeSpan = MinimumWait.TimeSpan;
                TimeSpan configuredWaitTime  = filePayload.MinimumWaitTimeSpan;
                return(string.Format(ErrorMessages.MinimumWaitTimeNotMet, minimumWaitTimeSpan, configuredWaitTime));
            }

            return(GetErrorMessage(failedReason, service));
        }