public static void Init() { // загрузка из файла FileXml =General.GetUserDataFile("","CommandCounter.xml"); if (File.Exists(FileXml)) { SerializerXml xmlSer = new SerializerXml(FileXml); try { Counter = xmlSer.DeserializeXmlFile<CommandCounter>(); if (Counter != null) { Counter._commands = Counter.Commands.Where(c=>!string.IsNullOrEmpty(c.CommandName)).ToDictionary(c=>c.CommandName, c=>c); Logger.Log.Debug($"Counter.Commands.Count={Counter.Commands.Count}"); return; } } catch (Exception ex) { Logger.Log.Error(ex, $"Не удалось десериализовать файл {FileXml}"); } } Logger.Log.Debug($"Counter = new CommandCounter();"); Counter = new CommandCounter(); }
private static Settings Load() { Settings res; if (File.Exists(FileSettings)) { try { SerializerXml ser = new SerializerXml(FileSettings); res = ser.DeserializeXmlFile <Settings>(); } catch { res = new Settings(); res.SetDefault(); } } else { res = new Settings(); res.SetDefault(); res.Save(); } return(res); }
/// <summary> /// 初始化配置 /// </summary> static DP() { if (config == null) { config = (List <TableConfiguration>)SerializerXml.LoadSettings(@"E:\01技术研究\ORM\TYSystem.Dapper\Dapper.Test\bin\Debug\TableConfig.xml", typeof(List <TableConfiguration>)); } }
/// <summary> /// Loads the user settings from disk. /// </summary> public override void Load() { if (!Device.File.Exists(_settingsPath)) { return; } byte[] settingsBytes = Device.File.Read(_settingsPath); var serializer = new SerializerXml <BasicSettingsDictionary>(); BasicSettingsDictionary storedSettings = serializer.DeserializeObject(settingsBytes); if (storedSettings != null) { Clear(); foreach (KeyValuePair <string, string> kvp in storedSettings) { Add(kvp); } } else { Device.Log.Warn("Failed to load Settings from : " + _settingsPath); } }
public static HorizontalElevationOptions Load() { HorizontalElevationOptions options = null; // загрузка из файла настроек if (File.Exists(fileOptions)) { SerializerXml xmlSer = new SerializerXml(fileOptions); try { options = xmlSer.DeserializeXmlFile <HorizontalElevationOptions>(); if (options != null) { return(options); } } catch (Exception ex) { Logger.Log.Error(ex, $"Не удалось десериализовать настройки из файла {fileOptions}"); } } options = new HorizontalElevationOptions(); options.Save(); return(options); }
static ChloeContent() { if (TableConfig == null) { TableConfig = (List <TableConfiguration>)SerializerXml.LoadSettings(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TableConfig.xml"), typeof(List <TableConfiguration>)); } }
static void Main(string[] args) { LightWebClient lwc = new LightWebClient("server", "pasword"); Boolean testXml = true; Boolean testList = false; try { if (testXml) { if (testList) { TaskAwaiter <Stream> tat = lwc.GetStreamAsync(@"https://xldeploy.toto.com/deployit/repository/query?type=udm.DeployedApplication&resultsPerPage=-1", "XML").GetAwaiter(); Stream st = tat.GetResult(); ListOfCi loci = SerializerXml <XLDeployNamespace.ListOfCi> .GetInstance().Deserialize(st); Console.WriteLine(loci.lstCi[0].reference + " " + loci.lstCi[0].type); } else { TaskAwaiter <Stream> tat = lwc.GetStreamAsync(@"https://xldeploy.toto.com/deployit/repository/ci/Environments/DEV/project/environment/deployments/product_deployment", "XML").GetAwaiter(); Stream st = tat.GetResult(); XElement elem = XDocument.Load(st).Root; Console.WriteLine(elem.Name.LocalName); st.Seek(0, 0); XLDeployNamespace.Dictionary dict = SerializerXml <XLDeployNamespace.Dictionary> .GetInstance().Deserialize(st); } } else { TaskAwaiter <Stream> tat = lwc.GetStreamAsync(@"https://xldeploy.toto.com/deployit/repository/query?type=udm.DeployedApplication&resultsPerPage=-1", "JSON").GetAwaiter(); Stream st = tat.GetResult(); //StreamReader reader = new StreamReader(st); //string text = reader.ReadToEnd(); //Console.Write(text); //ListOfCi loci = new ListOfCi(); List <CiListElement> loci = new List <CiListElement>(); //var serializer = new XmlSerializer(typeof(ListOfCi)); //Application di = new Application(); //var serializer = new DataContractJsonSerializer(typeof(Application)); //var serializer = new DataContractJsonSerializer(typeof(ListOfCi)); var serializer = new DataContractJsonSerializer(typeof(List <CiListElement>)); loci = (List <CiListElement>)serializer.ReadObject(st); //di = (Application)serializer.ReadObject(st); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
private void Save() { try { SerializerXml ser = new SerializerXml(FileSettings); ser.SerializeList(this); } catch { } }
/// <summary> /// 序列化当前队列 /// </summary> public static void SaveUrlQueue() { List <string> QueueList = new List <string>(); if (UrlQueue.Instance.Count > 0) { while (UrlQueue.Instance.Count > 0) { QueueList.Add(UrlQueue.Instance.DeQueue().UrlString); } SerializerXml <List <string> > serial = new SerializerXml <List <string> >(QueueList); serial.BuildXml(string.Format("UrlQueue_{0}.xml", simpleCrawler.DataTableName)); } }
public void Save() { try { if (!File.Exists(fileOptions)) { Directory.CreateDirectory(Path.GetDirectoryName(fileOptions)); } SerializerXml xmlSer = new SerializerXml(fileOptions); xmlSer.SerializeList(this); } catch (Exception ex) { Logger.Log.Error(ex, $"Не удалось сериализовать настройки в {fileOptions}"); } }
public void Save() { try { if (!File.Exists(fileOptions)) { Directory.CreateDirectory(Path.GetDirectoryName(fileOptions)); } SerializerXml xmlSer = new SerializerXml(fileOptions); xmlSer.SerializeList(Instance); } catch (Exception ex) { Log.Error(ex, $"Не удалось сериализовать настройки в {fileOptions}"); } }
/// <summary> /// 反序列化当前队列 /// </summary> /// <returns></returns> public static List <string> LoadUrlQueue() { var fileName = string.Format("UrlQueue_{0}.xml", simpleCrawler.DataTableName); List <string> QueueList = new List <string>(); if (File.Exists(fileName)) { SerializerXml <List <string> > serial = new SerializerXml <List <string> >(QueueList); QueueList = serial.BuildObject(fileName); if (QueueList.Count() > 0) { QueueList.ForEach(c => { UrlQueue.Instance.EnQueue(new UrlInfo(c)); }); } } return(QueueList); }
public async Task <SignDocumentResult <ICFDINomProvider> > StampDocumetAsync( SignDocumentResult <ICFDINomProvider> signDocumentResult, FiscalStampingVersion fiscalStampingVersion, string xml) { var stampingResult = String.Empty; var stampingRequest_CFDI33Nom12 = new StampingRequest_CFDI33Nom12(); stampingRequest_CFDI33Nom12.Version = VERSION; stampingRequest_CFDI33Nom12.PACDocumentType = PAC_DOCUMENT_TYPE; stampingRequest_CFDI33Nom12.Body = new CFDIRequest_CFDI33Nom12() { XmlString = xml }; stampingRequest_CFDI33Nom12.AdditionalInformation.Add(new AdditionalInformation_CFDI33Nom12(PAC_ATTRIBUTE_TITLE_RFC, signDocumentResult.EmployerRFC)); stampingRequest_CFDI33Nom12.AdditionalInformation.Add(new AdditionalInformation_CFDI33Nom12(PAC_ATTRIBUTE_TITLE_PRODUCT, PAC_ATTRIBUTE_VALUE_PRODUCT)); stampingRequest_CFDI33Nom12.AdditionalInformation.Add(new AdditionalInformation_CFDI33Nom12(PAC_ATTRIBUTE_TITLE_PRODUCT_VERSION, PAC_ATTRIBUTE_VALUE_PRODUCT_VERSION)); stampingRequest_CFDI33Nom12.AdditionalInformation.Add(new AdditionalInformation_CFDI33Nom12(PAC_ATTRIBUTE_TITLE_PRODUCT_TYPE, PAC_ATTRIBUTE_VALUE_PRODUCT_TYPE)); stampingRequest_CFDI33Nom12.Token = ""; //call service async await ServiceHelperExtensions.CallRestServiceAsync(Format.JSON, RestMethod.POST, null, new Uri($"{StampingUri}"), new object[] { stampingRequest_CFDI33Nom12 }) .ContinueWith((i) => { if (i.Result.Contains("FAIL") || i.Result.Contains("An error has occurred")) { throw new CotorraException(90001, "90001", i.Result, null); } stampingResult = i.Result; }); var stampingResult_CFDI33Nom12 = JsonSerializer.DeserializeObject <StampingResult_CFDI33Nom12>(stampingResult); //TFD var responseList = stampingResult_CFDI33Nom12.ResponseList_CFDI33Nom12.FirstOrDefault(); var tfd = SerializerXml.DeserializeObject <TimbreFiscalDigital>(responseList.ResponseValue); var complementos = (signDocumentResult.CFDI as Comprobante).Complemento.ToList(); //complementos.Add(new ComprobanteComplemento() { Any = new XmlElement[1] { GetElement(CreateXmlNom(tfd)) } }); (signDocumentResult.CFDI as Comprobante).Complemento = complementos.ToArray(); signDocumentResult.UUID = Guid.Parse(tfd.UUID); return(signDocumentResult); }
/// <summary> /// creates the cancelacion xml /// </summary> /// <param name="cancelDocumentParams"></param> /// <param name="cancelacion"></param> /// <returns></returns> private string createCancelationXML(CancelDocumentParams cancelDocumentParams, Cancelacion cancelacion) { //get FiscalInformation X509Certificate2 x509Certificate2 = new X509Certificate2(cancelDocumentParams.CertificateCER); //get cancelacion xml string xml = SerializerXml.SerializeObject(cancelacion); System.Security.Cryptography.Xml.Signature signature = new Cotorra.DigitalSign.DigitalSign().ApplySignature(cancelDocumentParams.CertificateKey, cancelDocumentParams.Password, xml); cancelacion.Signature = new SignatureType(); cancelacion.Signature.SignedInfo = new SignedInfoType(); cancelacion.Signature.SignedInfo.CanonicalizationMethod = new CanonicalizationMethodType(); cancelacion.Signature.SignedInfo.CanonicalizationMethod.Algorithm = signature.SignedInfo.CanonicalizationMethodObject.Algorithm; cancelacion.Signature.SignedInfo.SignatureMethod = new SignatureMethodType(); cancelacion.Signature.SignedInfo.SignatureMethod.Algorithm = signature.SignedInfo.SignatureMethod; cancelacion.Signature.SignedInfo.Reference = new ReferenceType(); Reference reference = (Reference)signature.SignedInfo.References[0]; cancelacion.Signature.SignedInfo.Reference.URI = reference.Uri; cancelacion.Signature.SignedInfo.Reference.Transforms = new List <TransformType>() { new TransformType() { Algorithm = ALGORITHM_TRANSFORMATION } }.ToArray(); cancelacion.Signature.SignedInfo.Reference.DigestMethod = new DigestMethodType(); cancelacion.Signature.SignedInfo.Reference.DigestMethod.Algorithm = reference.DigestMethod; cancelacion.Signature.SignedInfo.Reference.DigestValue = reference.DigestValue; cancelacion.Signature.SignatureValue = signature.SignatureValue; cancelacion.Signature.KeyInfo = new KeyInfoType(); cancelacion.Signature.KeyInfo.X509Data = new X509DataType(); cancelacion.Signature.SignedInfo.Reference.DigestValue = reference.DigestValue; cancelacion.Signature.SignatureValue = signature.SignatureValue; cancelacion.Signature.KeyInfo = new KeyInfoType(); cancelacion.Signature.KeyInfo.X509Data = new X509DataType(); cancelacion.Signature.KeyInfo.X509Data.X509IssuerSerial = new X509IssuerSerialType(); cancelacion.Signature.KeyInfo.X509Data.X509IssuerSerial.X509IssuerName = x509Certificate2.Issuer; cancelacion.Signature.KeyInfo.X509Data.X509IssuerSerial.X509SerialNumber = x509Certificate2.GetSerialNumberString(); cancelacion.Signature.KeyInfo.X509Data.X509Certificate = x509Certificate2.GetRawCertData(); //get xml cancelacion string xmlCancelacion = SerializerXml.SerializeObject(cancelacion); return(xmlCancelacion); }
public void Save() { try { if (!File.Exists(fileOptions)) { Directory.CreateDirectory(Path.GetDirectoryName(fileOptions)); } SerializerXml xmlSer = new SerializerXml(fileOptions); xmlSer.SerializeList(this); SaveDrawingOptions(); } catch (Exception ex) { Logger.Log.Error(ex, "Не удалось сериализовать настройки в {0}", fileOptions); } }
public async Task Should_Deseralize() { string xml = "<tfd:TimbreFiscalDigital xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/timbrefiscaldigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"3330E934-B635-4561-AFD8-7A49B75F4AAA\" FechaTimbrado=\"2020-06-17T11:38:16\" RfcProvCertif=\"MAS0810247C0\" SelloCFD=\"QLNSw2sKG8WQws0KH5sw3ciasgXQnEIbpiwPJ62vhEtF8JSS3YA17BkSNZ7qKI4j72CAjdjmtYvDS8CoM4e+AIOFQBs7D0USAKClDJear/dJ6QBT4NVGP2o7YHrl4w5hh4zWmCdS5MA2BnATzWuluyLXhdFLWNHQTG4uLl9ZnZ3hhgxgpkxoVGuIZ0O0igYn9d/imj6jODLg2+goMXr39+nE9gnGM7bm0KkjPuv3TjeG+DmE1W+UmWzqKGOgh/1h0OwaE9RyJ3B58xD3+nMQPTdxfm/eotEFLpaw17ANbS/Uoxr5KQR7WCh3ooxLdBk4emGppbuAMn70ToL15/lv+w==\" NoCertificadoSAT=\"30001000000400002495\" SelloSAT=\"WEDtOHwRJFMYbMeF75KDheWP5eKPU/OErwoyKIchcoAfUUUDCFh3NdIzwEEVebklAPS0Nh7bctdOyDQehAb/GV15vG9iRrh45P/P86+ZNKBMln+bQhwe22trycXU0xduY9xdJWE244dObYEayROYuFoe1NyJsoifbn4dUTh8nZyqLrupOwhGY7+NOGDqskfWsSGh8/KMxJGza2upGVAcSH8D0grfA1HLQegqtSFUBTKCFnJzFJwiUToHP3q4ZXHnsDkN03+usGkTII6M8aoswcogB3+RTSfKaXz9pJLRTN6j0Blyhbz8MySbxl+C71ZfZByj7pjPK8JiIxjqKldX9g==\" />"; var tfd = SerializerXml.DeserializeObject <Schema.CFDI33Nom12.TimbreFiscalDigital>($"<?xml version=\"1.0\" encoding=\"utf-8\"?>{xml}"); List <string> xsdsFiles = new List <string> { @"C:\Projects\Cotorra\Cotorra.Schema\bin\Debug\netstandard2.1\fiscal\cfdi33nom12\xsd\cfdv33.xsd", @"C:\Projects\Cotorra\Cotorra.Schema\bin\Debug\netstandard2.1\fiscal\cfdi33nom12\xsd\catCFDI.xsd", @"C:\Projects\Cotorra\Cotorra.Schema\bin\Debug\netstandard2.1\fiscal\cfdi33nom12\xsd\catNomina.xsd", @"C:\Projects\Cotorra\Cotorra.Schema\bin\Debug\netstandard2.1\fiscal\cfdi33nom12\xsd\nomina12.xsd", @"C:\Projects\Cotorra\Cotorra.Schema\bin\Debug\netstandard2.1\fiscal\cfdi33nom12\xsd\tdCFDI.xsd", @"C:\Projects\Cotorra\Cotorra.Schema\bin\Debug\netstandard2.1\fiscal\cfdi33nom12\xsd\TimbreFiscalDigitalv11.xsd", }; string xmlFile = @"C:\Users\Hector.Ramirez\Desktop\cfdi.xml"; var xdoc = XDocument.Load(xmlFile); var schemas = new XmlSchemaSet(); foreach (var xsdFile in xsdsFiles) { using (FileStream stream = File.OpenRead(xsdFile)) { schemas.Add(XmlSchema.Read(stream, (s, e) => { var x = e.Message; })); } } bool isvalid = true; StringBuilder sb = new StringBuilder(); try { xdoc.Validate(schemas, (s, e) => { isvalid = false; sb.AppendLine(string.Format("Line : {0}, Message : {1} ", e.Exception.LineNumber, e.Exception.Message)); }); } catch (XmlSchemaValidationException ex) { isvalid = false; } }
public void FromPathByModel() { // Prerequisites const string path = "test-result.xml"; var serializer = new SerializerXml<Vehicle, VehicleData>(); var vehicleA = new Vehicle { SpeedMax = 50, CurrentSpeed = 20 }; // Process serializer.Save(vehicleA, path); Vehicle vehicleB = serializer.Instantiate(path); // Test Assert.IsTrue(vehicleB.SpeedMax == vehicleA.SpeedMax); }
public void FromStreamByModel() { // Prerequisites var serializer = new SerializerXml<Vehicle, VehicleData>(); var vehicleA = new Vehicle { SpeedMax = 50, CurrentSpeed = 20 }; // Process var stringWriter = new StringWriter(); serializer.Save(vehicleA, stringWriter); var stringReader = new StringReader(stringWriter.ToString()); Vehicle vehicleB = serializer.Instantiate(stringReader); // Test Assert.IsTrue(vehicleB.SpeedMax == vehicleA.SpeedMax); }
public void FromPath() { // Prerequisites const string path = "test-result.xml"; var serializer = new SerializerXml<Passenger>(); var passengerA = new Passenger { Name = "John", Age = 20 }; // Process serializer.Save(passengerA, path); Passenger passengerB = serializer.Instantiate(path); // Test Assert.IsTrue(passengerB.Name == passengerA.Name); Assert.IsTrue(passengerB.Age == passengerA.Age); }
public void FromStream() { // Prerequisites var serializer = new SerializerXml<Passenger>(); var vehicleA = new Passenger { Name = "John", Age = 20 }; // Process var stringWriter = new StringWriter(); serializer.Save(vehicleA, stringWriter); var stringReader = new StringReader(stringWriter.ToString()); Passenger vehicleB = serializer.Instantiate(stringReader); // Test Assert.IsTrue(vehicleB.Name == vehicleA.Name); Assert.IsTrue(vehicleB.Age == vehicleA.Age); }
protected static OptionsAbstract load(string file) { OptionsAbstract options = null; // загрузка из файла настроек if (File.Exists(file)) { SerializerXml xmlSer = new SerializerXml(file); try { options = xmlSer.DeserializeXmlFile<OptionsAbstract>(); if (options != null) { return options; } } catch (Exception ex) { Log.Error(ex, "Не удалось десериализовать настройки из файла {0}", file); } } return defaultOptions(); }
public static IsolineOptions Load() { IsolineOptions options = null; // загрузка из файла настроек if (File.Exists(fileOptions)) { SerializerXml xmlSer = new SerializerXml(fileOptions); try { options = xmlSer.DeserializeXmlFile<IsolineOptions>(); if (options != null) { options.LoadDrawingOptions(); return options; } } catch (Exception ex) { Logger.Log.Error(ex, "Не удалось десериализовать настройки из файла {0}", fileOptions); } } return DefaultOptions(); }
public static Options Load() { Options options = null; // загрузка из файла настроек if (File.Exists(fileOptions)) { SerializerXml xmlSer = new SerializerXml(fileOptions); try { options = xmlSer.DeserializeXmlFile<Options>(); if (options != null) { return options; } } catch (Exception ex) { Logger.Log.Error(ex, $"Не удалось десериализовать настройки из файла {fileOptions}"); } } options = new Options(); options.Save(); return options; }
private static LineParkingOptions load() { LineParkingOptions options = null; // загрузка из файла настроек if (File.Exists(fileOptions)) { SerializerXml xmlSer = new SerializerXml(fileOptions); try { options = xmlSer.DeserializeXmlFile <LineParkingOptions>(); if (options != null) { options.checkValues(); return(options); } } catch (Exception ex) { Log.Error(ex, "Не удалось десериализовать настройки из файла {0}", fileOptions); } } return(defaultOptions()); }
public static IsolineOptions Load() { IsolineOptions options = null; // загрузка из файла настроек if (File.Exists(fileOptions)) { SerializerXml xmlSer = new SerializerXml(fileOptions); try { options = xmlSer.DeserializeXmlFile <IsolineOptions>(); if (options != null) { options.LoadDrawingOptions(); return(options); } } catch (Exception ex) { Logger.Log.Error(ex, "Не удалось десериализовать настройки из файла {0}", fileOptions); } } return(DefaultOptions()); }
/// <summary> /// Saves the application's settings to disk. /// </summary> public override void Store() { var serializer = new SerializerXml <BasicSettingsDictionary>(); serializer.SerializeObjectToFile(this, _settingsPath); }
/// <summary> /// CancelDocumetAsync /// </summary> /// <returns></returns> public async Task <CancelPayrollStampingResult> CancelDocumetAsync(CancelDocumentParams cancelDocumentParams) { var cancelPayrollStampingResult = new CancelPayrollStampingResult(); try { //Get datetime from ZipCode of Employer var zipCodeManager = new ZipCodeManager(cancelDocumentParams.ZipCodes); (var zipcode, var datetimeFromZipCode) = await zipCodeManager.GetZipCode(cancelDocumentParams.IssuerZipCode); //Fill the cancelation object Cancelacion cancelacion = new Cancelacion(); cancelacion.RfcEmisor = cancelDocumentParams.IssuerRFC; cancelacion.Fecha = DateTime.Parse(string.Format("{0:s}", datetimeFromZipCode), CultureInfo.InvariantCulture); var cancelacionFolios = new List <CancelacionFolios>(); var uuids = cancelDocumentParams.CancelDocumentParamsDetails.Select(p => p.UUID).ToList(); uuids.ForEach(p => cancelacionFolios.Add(new CancelacionFolios() { UUID = p.ToString().ToLower() })); cancelacion.Folios = cancelacionFolios.ToArray(); //Creates the cancelationXML var xmlCancelation = createCancelationXML(cancelDocumentParams, cancelacion); //Call PAC for cancelation var stampResult = new CancelDocumentResult <ICFDINomProvider>(); stampResult.CancelationXML = xmlCancelation; stampResult.InstanceID = cancelDocumentParams.InstanceID; IPACProvider pACProvider = FactoryPACProvider.CreateInstanceFromConfig(); var cancelationPACResult = await pACProvider.CancelStampingDocumentAsync(stampResult); if (cancelationPACResult.WithErrors) { cancelPayrollStampingResult.WithErrors = true; cancelPayrollStampingResult.Message = cancelationPACResult.Details; } else { cancelPayrollStampingResult.WithErrors = false; cancelPayrollStampingResult.CancelacionXMLRequest = cancelationPACResult.CancelationXML; cancelPayrollStampingResult.CancelacionXMLAcknowledgeResponse = cancelationPACResult.CancelationAcknowledgmentReceipt; //Fill each UUID with the proper status var acuse = SerializerXml.DeserializeObject <Acuse>(cancelationPACResult.CancelationAcknowledgmentReceipt); acuse.Folios.ForEach(p => { var detail = new CancelPayrollStampingResultDetail(); /* * 201 - El folio se ha cancelado con éxito. * 202 - El CFDI ya había sido cancelado previamente. * 203 - UUID no corresponde al emisor. * 204 - El CFDI no aplica para cancelación. * 205 - El UUID no existe o no ha sido procesado por el SAT. * 402 - El Contribuyente no se encuentra el la LCO o la validez de obligaciones se reporta como negativa. */ if (p.EstatusUUID == "201" || p.EstatusUUID == "202") //estatus good { statusCancelationCodes.TryGetValue(p.EstatusUUID, out string message); detail.Message = $"{p.EstatusUUID} : {message}"; detail.UUID = Guid.Parse(p.UUID); detail.PayrollStampingResultStatus = PayrollStampingResultStatus.Success; } else { statusCancelationCodes.TryGetValue(p.EstatusUUID, out string message); detail.Message = $"Error al cancelar {p.EstatusUUID} : {message}"; detail.UUID = Guid.Parse(p.UUID); detail.PayrollStampingResultStatus = PayrollStampingResultStatus.Fail; } cancelPayrollStampingResult.CancelPayrollStampingResultDetails.Add(detail); }); } } catch (Exception ex) { cancelPayrollStampingResult.WithErrors = true; cancelPayrollStampingResult.Message = $"Ocurrió un error no controlado en la cancelación: {ex.Message}"; } return(cancelPayrollStampingResult); }
private static LineParkingOptions load() { LineParkingOptions options = null; // загрузка из файла настроек if (File.Exists(fileOptions)) { SerializerXml xmlSer = new SerializerXml(fileOptions); try { options = xmlSer.DeserializeXmlFile<LineParkingOptions>(); if (options != null) { options.checkValues(); return options; } } catch (Exception ex) { Log.Error(ex, "Не удалось десериализовать настройки из файла {0}", fileOptions); } } return defaultOptions(); }
public void Save() { if (_commands == null) return; Commands = _commands.Values.ToList(); // Удаление старых вызовов команд - старше 2 месяцев removeOldDates(Commands); try { if (!File.Exists(FileXml)) { Directory.CreateDirectory(Path.GetDirectoryName(FileXml)); } SerializerXml xmlSer = new SerializerXml(FileXml); xmlSer.SerializeList(this); } catch (Exception ex) { Logger.Log.Error(ex, $"Не удалось сериализовать CommandCounter в {FileXml}"); } }
public async Task Should_Stamp_Payroll_CFDI_Valid() { var xmlCancelacion = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Acuse xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" Fecha=\"2020-07-02T16:02:07.2838838\" RfcEmisor=\"KAHO641101B39\"> <Folios xmlns=\"http://cancelacfd.sat.gob.mx\"> <UUID>3377E0AA-C54B-4E9E-BFF2-1D8BA96D5DD4</UUID> <EstatusUUID>201</EstatusUUID> </Folios> <Signature Id=\"SelloSAT\" xmlns=\"http://www.w3.org/2000/09/xmldsig#\"> <SignedInfo> <CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\" /> <SignatureMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\" /> <Reference URI=\"\"> <Transforms> <Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xpath-19991116\"> <XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath> </Transform> </Transforms> <DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha512\" /> <DigestValue>BThmOyTf26Ax25v8Li0oqcP3wyrhW3kjjxOcO1zamRYasNIPcHSnBiRyxmJ449a3gdgAWaz/UKVil3pqcper+g==</DigestValue> </Reference> </SignedInfo> <SignatureValue>6qDGoWoHW5tK2MGNiXU7fI6hfpkbrYTMHafVvIsGRkl9xq2H2YQRvId4CO7B9GGJFbuVMku2IBkpKU/Tscqo9Q==</SignatureValue> <KeyInfo> <KeyName>BF66E582888CC845</KeyName> <KeyValue> <RSAKeyValue> <Modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> </KeyValue> </KeyInfo> </Signature></Acuse>"; var acuse = SerializerXml.DeserializeObject <Schema.CFDI33Nom12.Acuse>(xmlCancelacion); using var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled); try { var identityWorkId = Guid.NewGuid(); var instanceID = Guid.NewGuid(); var overdraft = await new PayrollStampingManagerUT().CreateRealOverdraftAsync(identityWorkId, instanceID); var periodDetailID = overdraft.PeriodDetailID; //Recalculate var calculateParams = new CalculateOverdraftParams() { DeleteAccumulates = true, IdentityWorkID = identityWorkId, InstanceID = instanceID, OverdraftID = overdraft.ID, ResetCalculation = true, SaveOverdraft = true, UserID = Guid.Empty }; var calculationResult = await new OverdraftCalculationManager().CalculateAsync(calculateParams); overdraft = (calculationResult as CalculateOverdraftResult).OverdraftResult; Assert.True(overdraft.OverdraftDetails.Sum(p => p.Amount) > 0); //Autorización de la nómina var authorizationManager = new AuthorizationManager(); var authorizationParams = new AuthorizationParams() { IdentityWorkID = identityWorkId, InstanceID = instanceID, PeriodDetailIDToAuthorize = periodDetailID, ResourceID = Guid.Empty, user = Guid.Empty }; //autorizacion de la nómina var historicOverdrafts = await authorizationManager.AuthorizationAsync(authorizationParams); //Timbrado var overdraftManager = new MiddlewareManager <Overdraft>(new BaseRecordManager <Overdraft>(), new OverdraftValidator()); var overdraftsPrevious = await overdraftManager.FindByExpressionAsync(p => p.PeriodDetailID == periodDetailID, identityWorkId); var manager = new PayrollStampingManager(); var dateTime = DateTime.Now; var stampingParms = new PayrollStampingParams() { FiscalStampingVersion = FiscalStampingVersion.CFDI33_Nom12, IdentityWorkID = identityWorkId, InstanceID = instanceID, PeriodDetailID = periodDetailID, Detail = new List <PayrollStampingDetail>() { new PayrollStampingDetail() { Folio = "2020", Series = "S1", PaymentDate = dateTime.AddDays(-2), RFCOriginEmployer = null, SNCFEntity = null, OverdraftID = overdraftsPrevious.FirstOrDefault().ID, } }, Currency = Currency.MXN }; var payrollStampingResult = await manager.PayrollStampingAsync(stampingParms); Assert.Contains(payrollStampingResult.PayrollStampingResultDetails, p => p.PayrollStampingResultStatus == PayrollStampingResultStatus.Success); //cancel payroll var cancelStampingManager = new CancelStampingManager(); var cancelParams = new CancelPayrollStampingParams() { FiscalStampingVersion = FiscalStampingVersion.CFDI33_Nom12, IdentityWorkID = identityWorkId, InstanceID = instanceID, OverdraftIDs = overdraftsPrevious.Select(p => p.ID).ToList(), user = Guid.Empty }; await Task.Delay(10000); var cancelationResult = await cancelStampingManager.CancelPayrollStampingAsync(cancelParams); Assert.False(cancelationResult.WithErrors); var cancelManager = new MiddlewareManager <CancelationFiscalDocument>(new BaseRecordManager <CancelationFiscalDocument>(), new CancelationFiscalDocumentValidator()); var cancelations = await cancelManager.FindByExpressionAsync(p => p.InstanceID == instanceID, identityWorkId, new string[] { "CancelationFiscalDocumentDetails" }); Assert.True(cancelations.Any()); var overIds = overdraftsPrevious.Select(p => p.ID).ToList(); var olderOverdrafts = await overdraftManager.FindByExpressionAsync(p => overIds.Contains(p.ID), identityWorkId); Assert.False(olderOverdrafts.Any(p => p.OverdraftStatus != OverdraftStatus.Canceled)); var newOverdrafts = await overdraftManager.FindByExpressionAsync(p => overIds.Contains(p.OverdraftPreviousCancelRelationshipID.Value), identityWorkId); Assert.False(newOverdrafts.Any(p => p.OverdraftPreviousCancelRelationshipID == null)); } catch (Exception ex) { var t = ex.ToString(); Assert.True(false, ex.ToString()); } }
public void InitializationFromPath() { // Prerequisites const string path = "test-result.xml"; var serializer = new SerializerXml<Vehicle, VehicleData>(); var vehicleA = new Vehicle { SpeedMax = 50, CurrentSpeed = 20 }; var vehicleB = new Vehicle { SpeedMax = 100, CurrentSpeed = 40 }; // Process serializer.Save(vehicleA, path); serializer.Load(vehicleB, path); // Test Assert.IsTrue(vehicleB.SpeedMax == vehicleA.SpeedMax); }
public void InitializationFromStream() { // Prerequisites var serializer = new SerializerXml<Vehicle, VehicleData>(); var vehicleA = new Vehicle { SpeedMax = 50, CurrentSpeed = 20 }; var vehicleB = new Vehicle { SpeedMax = 100, CurrentSpeed = 40 }; // Process var stringWriter = new StringWriter(); serializer.Save(vehicleA, stringWriter); var stringReader = new StringReader(stringWriter.ToString()); serializer.Load(vehicleB, stringReader); // Test Assert.IsTrue(vehicleB.SpeedMax == vehicleA.SpeedMax); }