Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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"));
        }