public MemberUpload GenerateMemberUpload(ProcessXmlFile messageXmlFile, List <MemberUploadError> errors, decimal totalCharges, Scheme scheme, bool hasAnnualCharge) { if (errors != null && errors.Any(e => e.ErrorType == UploadErrorType.Schema)) { return(new MemberUpload(messageXmlFile.OrganisationId, xmlConverter.XmlToUtf8String(messageXmlFile.Data), errors, totalCharges, null, scheme, messageXmlFile.FileName, null, hasAnnualCharge)); } else { var xml = xmlConverter.XmlToUtf8String(messageXmlFile.Data); var deserializedXml = xmlConverter.Deserialize <schemeType>(xmlConverter.Convert(messageXmlFile.Data)); return(new MemberUpload(messageXmlFile.OrganisationId, xml, errors, totalCharges, int.Parse(deserializedXml.complianceYear), scheme, messageXmlFile.FileName, null, hasAnnualCharge)); } }
public GenerateFromDataReturnXmlResult <T> GenerateDataReturns <T>(ProcessDataReturnXmlFile message) where T : class { Guard.ArgumentNotNull(() => message, message); T deserialisedType = null; string schemaVersion = "3.35"; // Validate against the schema var validationErrors = schemaValidator .Validate(message.Data, @"EA.Weee.Xml.DataReturns.v3schema.xsd", XmlNamespace.DataReturns, schemaVersion) .ToList(); if (!validationErrors.Any()) { try { deserialisedType = xmlConverter.Deserialize <T>(xmlConverter.Convert(message.Data)); } catch (XmlDeserializationFailureException e) { // Couldn't deserialise - can't go any further, add an error and bail out here var exceptionMessage = e.InnerException != null ? e.InnerException.Message : e.Message; var friendlyMessage = errorTranslator.MakeFriendlyErrorMessage(exceptionMessage, schemaVersion); validationErrors.Add(new XmlValidationError(Core.Shared.ErrorLevel.Error, XmlErrorType.Schema, friendlyMessage)); } } return(new GenerateFromDataReturnXmlResult <T>(xmlConverter.XmlToUtf8String(message.Data), deserialisedType, validationErrors)); }