public static UploadJobError GetConversionError(Guid jobGuid, List<UploadValidationFailure> validationFailures)
 {
     var error = new UploadJobError
     {
         JobGuid = jobGuid,
         ErrorType = UploadJobErrorType.ValidationFailureError,
         ErrorText = "Data type conversion errors occurred in the following spreadsheet rows",
         ErrorJson = new JavaScriptSerializer().Serialize(validationFailures)
     };
     return error;
 }
        public static UploadJobError GetSimplePermissionError(Guid jobGuid, List<string> listOfErrors, bool doesIndicatorsExist)
        {
            var message = doesIndicatorsExist
                ? listOfErrors.FirstOrDefault() + " does not have permission"
                : listOfErrors.FirstOrDefault() + "does not exist";

            var error = new UploadJobError
            {
                JobGuid = jobGuid,
                ErrorType = UploadJobErrorType.PermissionError,
                ErrorText = message
            };
            return error;
        }
        public static UploadJobError GetBatchPermissionError(Guid jobGuid, List<string> listOfErrors, bool doesAllIndicatorsExist)
        {
            // var doesIndicatorExist = listOfErrors.Contains(X500DistinguishedName
            var error = new UploadJobError
            {
                JobGuid = jobGuid,
                ErrorType = UploadJobErrorType.PermissionError,
                ErrorText = doesAllIndicatorsExist ?
                    "To upload data for the following indicator(s) you will need permission to the owner profile" :
                    "Following indicator(s) does not exist",

                ErrorJson = new JavaScriptSerializer().Serialize(listOfErrors)
            };
            return error;
        }
        public void TestLogJobError()
        {
            var error = new UploadJobError
            {
                JobGuid = _guid,
                ErrorType = UploadJobErrorType.WorkSheetValidationError,
                ErrorText = "wrong name"
            };

            _uploadJobErrorRepository.Log(error);

            var errorFromDb = _uploadJobErrorRepository.FindJobErrorsByJobGuid(_guid).FirstOrDefault();
            Assert.AreEqual(error.JobGuid, errorFromDb.JobGuid);
            Assert.AreEqual(error.ErrorType, errorFromDb.ErrorType);
            Assert.AreEqual(error.ErrorText, errorFromDb.ErrorText);
        }
        public int Log(UploadJobError error)
        {
            error.CreatedAt = DateTime.Now;
            try
            {
                transaction = CurrentSession.BeginTransaction();

                CurrentSession.Save(error);

                transaction.Commit();
            }
            catch (Exception exception)
            {
                HandleException(exception);
            }

            return error.Id;
        }
        public static UploadJobError GetDuplicateRowInDatabaseError(Guid jobGuid,
            List<DuplicateRowInDatabaseError> duplicateRows)
        {
            var errorText = GetRowDuplicationInDatabaseError(duplicateRows.Count);
            const int maxDuplicateRows = 500;
            var duplicateRowsForError = duplicateRows.Count > maxDuplicateRows
                ? duplicateRows.Take(30) // we only show 30 duplicate rows in UI, it is pointless to return more than 30 rows.
                : duplicateRows;

            var error = new UploadJobError
            {
                JobGuid = jobGuid,
                ErrorType = UploadJobErrorType.DuplicateRowInDatabaseError,
                ErrorText = errorText,
                ErrorJson = new JavaScriptSerializer().Serialize(duplicateRowsForError)
            };
            return error;
        }
 public static UploadJobError GetDuplicateRowInSpreadsheetError(Guid jobGuid,
     List<DuplicateRowInSpreadsheetError> duplicateRows)
 {
     var error = new UploadJobError
     {
         JobGuid = jobGuid,
         ErrorType = UploadJobErrorType.DuplicateRowInSpreadsheetError,
         ErrorText = GetRowDuplicationInFileErrorText(duplicateRows.Count),
         ErrorJson = new JavaScriptSerializer().Serialize(duplicateRows)
     };
     return error;
 }
 private static UploadJobError CreateError(Guid jobGuid, UploadJobErrorType errorType, string errorText,
     string errorJson)
 {
     var error = new UploadJobError
     {
         JobGuid = jobGuid,
         ErrorType = errorType,
         ErrorText = errorText,
         ErrorJson = errorJson
     };
     return error;
 }