public ActionResult Upload(HttpPostedFileWrapper file) { try { var valuesFromFile = Parser1C.Parse(file.InputStream, new[] { typeof(Платежное_Поручение) }).OfType <Платежное_Поручение>().ToArray(); if (valuesFromFile.Length == 0) { throw new ArgumentEmptyException("В файле не было элементов."); } var valuesFromDb = repository.GetAllModels <Платежное_Поручение>().ToArray(); var result = from value in valuesFromFile let cf = valuesFromFile.Count(v => v.Номер == value.Номер) let cdb = valuesFromDb.Count(v => v.Номер == value.Номер) select new { HasDuplicates = cf + cdb > 1, Value = value }.ToExpando(); ViewBag.Items = result.ToArray(); return(View("Preview")); } catch (Exception e) { TempData["Status"] = "danger"; TempData["Message"] = e.Message; return(RedirectPermanent("/")); } }
public void Parse() { using (var stream = File.OpenRead("../kl_to_1c_TEST.txt")) { var objects = Parser1C.Parse(stream, new[] { typeof(Платежное_Поручение) }).Cast <Платежное_Поручение>().ToArray(); Assert.AreEqual(objects.Length, 32); Assert.AreEqual(objects[0].Номер, 828); Assert.IsTrue(objects[1].ДатаПоступило > new DateTime(1980, 1, 1)); Assert.IsTrue(objects[2].ДатаПоступило < new DateTime(2100, 1, 1)); } }