Exemplo n.º 1
0
 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));
     }
 }
Exemplo n.º 2
0
        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));
        }