Ejemplo n.º 1
0
        public static void Initialize(VCardContext context, IFileProvider fileProvider)
        {
            context.Database.EnsureCreated();

            // Look for any students.
            if (context.VCards.Any())
            {
                return;   // DB has been seeded
            }

            // Read from vCard file.
            var fileInfo = fileProvider.GetFileInfo("/DemoFiles/RFC2426.vcf");

            if (!fileInfo.Exists)
            {
                return;
            }

            using (var stream = fileInfo.CreateReadStream())
            {
                var vCards = VCardParser.ParseFromStream(new StreamReader(stream));
                vCards.Sort(VCardSorter);
                // Convert to Dto
                var vCardDtoes = VCardConverter.CollectionToDtoes(vCards);
                foreach (var vCardDto in vCardDtoes)
                {
                    context.VCards.Add(vCardDto);
                }
                context.SaveChanges();
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UploadFiles(List <IFormFile> files, string fileEncoding, string propEncoding)
        {
            long size = files.Sum(f => f.Length);

            // full path to file in temp location
            var filePath = Path.GetTempFileName();

            foreach (var formFile in files)
            {
                if (formFile.Length > 0)
                {
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await formFile.CopyToAsync(stream);
                    }
                }
            }

            // process uploaded files
            // Don't rely on or trust the FileName property without validation.
            try
            {
                using (var reader = new StreamReader(filePath, Encoding.GetEncoding(fileEncoding)))
                {
                    BaseProperty.DefaultEncoding = Encoding.GetEncoding(propEncoding);

                    var vCards     = VCardParser.ParseFromStream(reader);
                    var vCardDtoes = VCardConverter.CollectionToDtoes(vCards);

                    return(View("Index", vCardDtoes));
                }
            }
            catch (Exception ex)
            {
                return(Ok(string.Format("Unable to parse file: {0}", ex.Message)));
            }
        }