/// <summary> /// Update relation between Dostawa and VTMagazyn when adding to already existing scan /// </summary> /// <param name="dostawaEntry"></param> /// <param name="vt">Scan to update</param> public void UpdateVT(Dostawa dostawaEntry, VTMagazyn vt) { VtToDostawa vttd = new VtToDostawa(); vttd.DostawaId = dostawaEntry.DostawaId; vttd.VTMagazynId = vt.VTMagazynId; vttd.VTMagazyn = vt; vttd.Dostawa = dostawaEntry; if (vt.Dostawy.FirstOrDefault(c => c.VTMagazynId == vttd.VTMagazynId && c.DostawaId == vttd.DostawaId) == null) { vt.Dostawy.Add(vttd); } }
/// <summary> /// Adds scan to the database /// </summary> /// <param name="technical"></param> /// <param name="scanned"></param> /// <param name="dostawa"></param> /// <param name="newCmplt">Does it need to create new set</param> public void AddToVT(Technical technical, ScannedCode scanned, Dostawa dostawa, bool newCmplt = false) { if (dostawa != null && dostawa.Uwagi != "") { scanned.complete = true; } // Set proper set ID depending which set ID is missing if (!newCmplt) { scanned.NumerKompletu = 0; } else { int nextKpl = 0; var SetNumbers = GetCompleteID(scanned); foreach (var kplNumber in SetNumbers) { if (nextKpl != kplNumber) { break; } nextKpl++; } scanned.NumerKompletu = nextKpl; } VtToDostawa vtToDostawa = new VtToDostawa(); vtToDostawa.Dostawa = dostawa; VTMagazyn vt = new VTMagazyn { NumerKompletu = scanned.NumerKompletu, SztukiZeskanowane = scanned.sztukiSkanowane, SztukiDeklarowane = 0, Wiazka = technical.Wiazka, KodCiety = technical.PrzewodCiety, Pracownik = scanned.User, DokDostawy = scanned.DokDostawy, DataUtworzenia = scanned.dataUtworzenia, DataDostawy = scanned.dataDostawyOld == DateTime.MinValue ? scanned.dataDostawy : scanned.dataDostawyOld, Komplet = scanned.complete, Deklarowany = scanned.Declared, DataDopisu = scanned.DataDopisu, DostawaDopis = scanned.DostawaDopis, DopisanaIlosc = scanned.DopisanaIlosc, Uwagi = scanned.Uwagi, autocompleteEnabled = true, wymuszonaIlosc = false, Technical = technical }; vtToDostawa.VTMagazyn = vt; // Create a relation between Dostawa and VTMagazyn scan vt.Dostawy = new List <VtToDostawa>(); if (dostawa != null) { vt.Dostawy.Add(vtToDostawa); } _db.VTMagazyn.Add(vt); }
public async Task <IActionResult> OnPostLoadVTMagazynAsync() { int chunkSize = 20000; string backupDir = $"./Snapshots/{Date.Day}{Date.Month}{Date.Year}"; if (!Directory.Exists("./Snapshots")) { return(Page()); } if (!Directory.Exists(backupDir)) { return(Page()); } if (System.IO.File.Exists(backupDir + "/VTMagazyn.csv")) { using (var reader = new StreamReader(backupDir + "/VTMagazyn.csv")) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { _db.RemoveRange(_db.VTMagazyn); int i = 0; await csv.ReadAsync(); csv.ReadHeader(); while (await csv.ReadAsync()) { var record = new VTMagazyn { VTMagazynId = csv.GetField <Guid>("VTMagazynId"), NumerKompletu = csv.GetField <int>("NumerKompletu"), SztukiDeklarowane = csv.GetField <int>("SztukiDeklarowane"), SztukiZeskanowane = csv.GetField <int>("SztukiZeskanowane"), ZeskanowanychNaKomplet = csv.GetField <int>("ZeskanowanychNaKomplet"), NaKomplet = csv.GetField <int>("NaKomplet"), Wiazka = csv.GetField <string>("Wiazka"), KodCiety = csv.GetField <string>("KodCiety"), Pracownik = csv.GetField <string>("Pracownik"), DokDostawy = csv.GetField <string>("DokDostawy"), DataUtworzenia = csv.GetField <DateTime>("DataUtworzenia"), DataDostawy = csv.GetField <DateTime>("DataDostawy"), Komplet = csv.GetField <bool>("Komplet"), Deklarowany = csv.GetField <bool>("Deklarowany"), autocompleteEnabled = csv.GetField <bool>("autocompleteEnabled"), wymuszonaIlosc = csv.GetField <bool>("wymuszonaIlosc"), DataDopisu = csv.GetField <DateTime?>("DataDopisu"), DopisanaIlosc = csv.GetField <int>("DopisanaIlosc"), Uwagi = csv.GetField <string>("Uwagi"), Technical = await _db.Technical.FindAsync(csv.GetField <string>("CietyWiazka")), Dostawy = new List <VtToDostawa>() }; await _db.VTMagazyn.AddAsync(record); //await _db.VTMagazyn.AddAsync(csv.GetRecord<VTMagazyn>()); i++; if (i >= chunkSize) { await _db.SaveChangesAsync(); i = 0; } } } } await _db.SaveChangesAsync(); if (System.IO.File.Exists(backupDir + "/VtToDostawa.csv")) { using (var reader = new StreamReader(backupDir + "/VtToDostawa.csv")) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { _db.RemoveRange(_db.VtToDostawa); int i = 0; await csv.ReadAsync(); csv.ReadHeader(); while (await csv.ReadAsync()) { var vttd = new VtToDostawa { VTMagazynId = csv.GetField <Guid>("VTMagazynId"), DostawaId = csv.GetField <Guid>("DostawaId") }; var vt = _db.VTMagazyn.Include(c => c.Dostawy).FirstOrDefault(c => c.VTMagazynId == vttd.VTMagazynId); var dost = _db.Dostawa.Include(c => c.Skany).FirstOrDefault(c => c.DostawaId == vttd.DostawaId); vttd.Dostawa = dost; vttd.VTMagazyn = vt; vt.Dostawy.Add(vttd); dost.Skany.Add(vttd); _db.Update(dost); _db.Update(vt); await _db.VtToDostawa.AddAsync(vttd); i++; if (i >= chunkSize) { await _db.SaveChangesAsync(); i = 0; } } } } await _db.SaveChangesAsync(); return(RedirectToPage("/Manager/AdminManager/LoadDbFromFiles")); }