Example #1
0
        public void Should_Write_PO_File()
        {
            // ARRANGE
            var catalog = PoFileReader.Parse(Resources.admin_fr_FR, CULTURE);

            // ACT
            var output = new PoFileWriter(catalog).Export();

            // ASSERT
            Assert.IsFalse(string.IsNullOrEmpty(output));

            Trace.WriteLine(output);
        }
        public IActionResult MergeCatalog(string id)
        {
            try
            {
                if (FindCatalog(id, out var current))
                {
                    var count = 0;
                    var files = Request.Form.Files.Where(f => f.Length > 0L).ToArray();

                    if (files.Length > 0)
                    {
                        foreach (var file in files)
                        {
                            using (var fstream = file.OpenReadStream())
                            {
                                using (var tr = new StreamReader(fstream, System.Text.Encoding.UTF8))
                                {
                                    var catalog = PoFileReader.Read(tr, Domain, enforceCultureInfo: false);
                                    count += current.MergeWith(catalog);
                                }
                            }
                        }
                    }

                    // show the catalog to update
                    return(RedirectToAction(nameof(Catalog), new { id, newentries = count }));
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                return(Error());
            }
        }