예제 #1
0
        /// <summary>
        /// Usuwa wybraną nieprawidłowość z kontroli.
        /// </summary>
        /// <param name="id">Identyfikator nieprawidłowości.</param>
        /// <param name="kontrolaId">Identyfikator kontroli.</param>
        /// <returns>Przekierowania do strony edycji kontroli.</returns>
        public async Task<IActionResult> OnGetDelete(int? id, int kontrolaId)
        {
            if (id == null)
            {
                return NotFound();
            }

            var kontrola = await _context.Kontrola
                .Include(k => k.Status)
                .Include(k => k.Nieprawidlowosci)
                .FirstOrDefaultAsync(m => m.Id == kontrolaId);

            if (kontrola.StatusId == 43 && kontrola.Nieprawidlowosci.Count == 1)
            {
                return RedirectToPage("./Index");
            }

            var nieprawidlowosc = await _context.Nieprawidlowosc.FindAsync(id);

            if (nieprawidlowosc != null)
            {
                _context.Nieprawidlowosc.Remove(nieprawidlowosc);
                await _context.SaveChangesAsync();
            }

            Log
                .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
                .ForContext("Table", nameof(Nieprawidlowosc))
                .ForContext("RecordId", nieprawidlowosc.Id)
                .ForContext("MainRecordId", kontrolaId)
                .Warning("Usunięcie nieprawidłowości.");

            return RedirectToPage("./Edit", new { id = kontrolaId });
        }
예제 #2
0
        /// <summary>
        /// Przesyła model danych <see cref="Models.Komorka"/> do zaktualizowania w aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do listy komórek kontrolowanych.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(Komorka).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!KomorkaExists(Komorka.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", Komorka.GetType().Name)
            .ForContext("RecordId", Komorka.Id)
            .Warning("Zapisanie edycji komórki {Nazwa}.", Komorka.Nazwa);

            return(RedirectToPage("./Index"));
        }
예제 #3
0
        /// <summary>
        /// Usuwa załącznik.
        /// </summary>
        /// <param name="id">Identyfikator załącznika.</param>
        /// <param name="kontrolaId">Identyfikator powiązanej kontroli.</param>
        /// <returns></returns>
        public async Task <IActionResult> OnGetDelete(int?id, int kontrolaId)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var zalacznik = await _context.Zalacznik.FindAsync(id);

            if (zalacznik != null)
            {
                _context.Zalacznik.Remove(zalacznik);
                await _context.SaveChangesAsync();
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", zalacznik.GetType().Name)
            .ForContext("RecordId", zalacznik.Id)
            .ForContext("MainRecordId", kontrolaId)
            .Warning("Usunięcie załącznika {Nazwa}.", zalacznik.Nazwa);

            return(RedirectToPage("./Edit", new { id = kontrolaId }));
        }
예제 #4
0
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        /// <summary>
        /// Przesyła model danych <see cref="Models.JednostkaKontrolujaca"/> do aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do listy jednostek kontrolujących.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.JednostkaKontrolujaca.Add(JednostkaKontrolujaca);
            await _context.SaveChangesAsync();

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", JednostkaKontrolujaca.GetType().Name)
            .ForContext("RecordId", JednostkaKontrolujaca.Id)
            .Warning("Dodanie jednostki kontrolującej {Nazwa}.", JednostkaKontrolujaca.Nazwa);

            return(RedirectToPage("./Index"));
        }
예제 #5
0
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        /// <summary>
        /// Przesyła model danych <see cref="Models.JednostkaKontrolowana"/> do aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do listy jednostek kontrolowanych.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                ViewData["ProcesId"] = new SelectList(_context.SlownikProces, "Id", "Nazwa");
                ViewData["KomorkaMerytorycznaId"] = new SelectList(_context.Komorka, "Id", "Nazwa");

                return(Page());
            }

            _context.JednostkaKontrolowana.Add(JednostkaKontrolowana);
            await _context.SaveChangesAsync();

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", JednostkaKontrolowana.GetType().Name)
            .ForContext("RecordId", JednostkaKontrolowana.Id)
            .Warning("Dodanie jednostki kontrolowanej {Nazwa}.", JednostkaKontrolowana.Nazwa);

            return(RedirectToPage("./Index"));
        }
예제 #6
0
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        /// <summary>
        /// Przesyła model danych <see cref="Models.Uzytkownik"/> do aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do listy użytkowników.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                ViewData["JednostkaId"]         = new SelectList(_context.JednostkaKontrolowana, "Id", "Nazwa");
                ViewData["KomorkaId"]           = new SelectList(_context.Komorka.OrderBy(k => k.Nazwa), "Id", "Nazwa");
                ViewData["PoziomUzytkownikaId"] = new SelectList(_context.SlownikPoziomUzytkownika, "Id", "Nazwa");

                return(Page());
            }

            _context.Uzytkownik.Add(Uzytkownik);
            await _context.SaveChangesAsync();

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", Uzytkownik.GetType().Name)
            .ForContext("RecordId", Uzytkownik.Id)
            .Warning("Dodanie użytkownika {Login}.", Uzytkownik.Login);

            return(RedirectToPage("./Index"));
        }
예제 #7
0
        /// <summary>
        /// Metoda do zmiany statusu kontroli.
        /// </summary>
        /// <param name="kontrolaId">Identyfikator kontroli.</param>
        /// <returns></returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var kontrola = await _context.Kontrola.FirstOrDefaultAsync(m => m.Id == KontrolaId);

            kontrola.StatusId = NewStatusId;
            kontrola.UwagiKW  = UwagiKW;

            _context.Attach(kontrola).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StatusExists(NewStatusId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", kontrola.GetType().Name)
            .ForContext("RecordId", kontrola.Id)
            .ForContext("MainRecordId", kontrola.Id)
            .Warning("Zmiana statusu kontroli {Numer}.", kontrola.Numer);

            return(RedirectToPage("./Details", new { id = kontrola.Id }));
        }
예제 #8
0
        /// <summary>
        /// Przesyła model danych <see cref="Models.Nieprawidlowosc"/> do zaktualizowania w aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do strony edycji kontroli.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var old = _context.Nieprawidlowosc.AsNoTracking().FirstOrDefault(n => n.Id == Nieprawidlowosc.Id);

            _context.Attach(Nieprawidlowosc).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NieprawidlowoscExists(Nieprawidlowosc.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", Nieprawidlowosc.GetType().Name)
            .ForContext("RecordId", Nieprawidlowosc.Id)
            .ForContext("MainRecordId", Nieprawidlowosc.KontrolaId)
            .ForContext("Old", JsonSerializer.Serialize(old))
            .ForContext("New", JsonSerializer.Serialize(Nieprawidlowosc))
            .Warning("Zapisanie edycji nieprawidłowości.");

            return(RedirectToPage("./Edit", new { id = Nieprawidlowosc.KontrolaId }));
        }
예제 #9
0
        /// <summary>
        /// Przesyła usunięcie obiektu <see cref="Models.JednostkaKontrolowana"/> do aplikacji.
        /// </summary>
        /// <param name="id">Identyfikator jednostki kontrolowanej.</param>
        /// <returns>Przekierowanie do listy jednostek kontrolowanych.</returns>
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            JednostkaKontrolowana = await _context.JednostkaKontrolowana.FindAsync(id);

            if (JednostkaKontrolowana != null)
            {
                _context.JednostkaKontrolowana.Remove(JednostkaKontrolowana);
                await _context.SaveChangesAsync();

                Log
                .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
                .ForContext("Table", JednostkaKontrolowana.GetType().Name)
                .ForContext("RecordId", JednostkaKontrolowana.Id)
                .Warning("Usunięcie jednostki kontrolowanej {Nazwa}.", JednostkaKontrolowana.Nazwa);
            }

            return(RedirectToPage("./Index"));
        }
예제 #10
0
        /// <summary>
        /// Przesyła model danych <see cref="Models.Uzytkownik"/> do zaktualizowania w aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do listy użytkowników.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                ViewData["JednostkaId"]         = new SelectList(_context.JednostkaKontrolowana, "Id", "Nazwa");
                ViewData["KomorkaId"]           = new SelectList(_context.Komorka.OrderBy(k => k.Nazwa), "Id", "Nazwa");
                ViewData["PoziomUzytkownikaId"] = new SelectList(_context.SlownikPoziomUzytkownika, "Id", "Nazwa");

                return(Page());
            }

            _context.Attach(Uzytkownik).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UzytkownikExists(Uzytkownik.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", Uzytkownik.GetType().Name)
            .ForContext("RecordId", Uzytkownik.Id)
            .Warning("Zapisanie edycji użytkownika {Login}.", Uzytkownik.Login);

            return(RedirectToPage("./Index"));
        }
예제 #11
0
        /// <summary>
        /// Przesyła model danych <see cref="Models.JednostkaKontrolowana"/> do zaktualizowania w aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do listy jednostek kontrolowanych.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                ViewData["ProcesId"] = new SelectList(_context.SlownikProces, "Id", "Nazwa");
                ViewData["KomorkaMerytorycznaId"] = new SelectList(_context.Komorka, "Id", "Nazwa");

                return(Page());
            }

            _context.Attach(JednostkaKontrolowana).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!JednostkaKontrolowanaExists(JednostkaKontrolowana.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", JednostkaKontrolowana.GetType().Name)
            .ForContext("RecordId", JednostkaKontrolowana.Id)
            .Warning("Zapisanie edycji jednostki kontrolowanej {Nazwa}.", JednostkaKontrolowana.Nazwa);

            return(RedirectToPage("./Index"));
        }
예제 #12
0
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        /// <summary>
        /// Przesyła model danych <see cref="Models.Kontrola"/> do aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do strony dodawania załączników kontroli.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            if (Kontrola.TypKontroliId == 0)
            {
                ModelState.AddModelError(string.Empty, "Wybierz typ kontroli.");
            }
            if (Kontrola.TypKontroliId == 2 & Kontrola.JednostkaKontrolowanaId == 0)
            {
                ModelState.AddModelError(string.Empty, "Wybierz jednostkę kontrolowaną.");
            }
            if (Kontrola.TypKontroliId == 1 & Kontrola.KomorkaWiodacaId == 0)
            {
                ModelState.AddModelError(string.Empty, "Wybierz komórkę wiodącą.");
            }
            if (Kontrola.JednostkaKontrolujacaId == 0)
            {
                ModelState.AddModelError(string.Empty, "Wybierz jednostkę kontrolującą.");
            }
            if (Kontrola.KomorkiUczestniczace.Count > 0)
            {
                if (Kontrola.KomorkiUczestniczace.Any(k => k.KomorkaId == 0))
                {
                    ModelState.AddModelError(string.Empty, "Wybierz komórkę uczestniczącą.");
                }
            }
            if (Kontrola.DataRozpoczecia > Kontrola.DataZakonczenia)
            {
                ModelState.AddModelError(string.Empty, "Data zakończenia musi być po dacie rozpoczęcia.");
            }
            if (Kontrola.OkresOd > Kontrola.OkresDo)
            {
                ModelState.AddModelError(string.Empty, "Data 'okres kontroli - koniec' musi być po dacie 'okres kontroli - start'.");
            }
            if (Kontrola.StatusId == 0)
            {
                ModelState.AddModelError(string.Empty, "Wybierz status kontroli.");
            }

            ModelStateEntry procesy        = null;
            bool            procesyWybrane = false;

            if (Kontrola.TypKontroliId == 1)
            {
                if (ModelState.TryGetValue("Kontrola.Procesy", out procesy))
                {
                    if (!string.IsNullOrEmpty(procesy.AttemptedValue))
                    {
                        procesyWybrane = true;
                    }
                    else
                    {
                        ModelState.AddModelError("Kontrola.Procesy", "Wybierz co najmniej jeden proces z listy.");
                    }
                }
            }

            if (!ModelState.IsValid)
            {
                if (User.Claims.FirstOrDefault(u => u.Type.EndsWith("role")).Value == "2")
                {
                    ViewData["JednostkaKontrolowanaId"] = new SelectList(PrepareJednostki(_context.JednostkaKontrolowana), "Id", "Nazwa");
                    ViewData["KomorkaWiodacaId"]        = new SelectList(_context.Komorka.OrderBy(k => k.Nazwa), "Id", "Nazwa").Prepend(new SelectListItem("Wybierz", "0"));
                }
                else
                {
                    var komorka = _context.Komorka.AsEnumerable().Where(u => u.Id == int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("komorka")).Value));
                    ViewData["JednostkaKontrolowanaId"] = new SelectList(_context.JednostkaKontrolowana.Where(j => j.Symbol == komorka.FirstOrDefault().Symbol), "Id", "Nazwa");
                    ViewData["KomorkaWiodacaId"]        = new SelectList(komorka, "Id", "Nazwa");
                }

                ViewData["JednostkaKontrolujacaId"] = new SelectList(_context.JednostkaKontrolujaca.OrderBy(j => j.Nazwa), "Id", "Nazwa").Prepend(new SelectListItem("Wybierz", "0"));
                ViewData["TypKontroliId"]           = new SelectList(_context.SlownikTypKontroli.OrderBy(t => t.Nazwa), "Id", "Nazwa").Prepend(new SelectListItem("Wybierz", "0"));
                ViewData["StatusId"] = new SelectList(_context.SlownikStatusKontroli.Where(s => s.Id == 17 || s.Id == 40), "Id", "Nazwa").Prepend(new SelectListItem("Wybierz", "0"));
                ViewData["ProcesId"] = new SelectList(_context.SlownikProces, "Id", "Nazwa");

                return(Page());
            }
            if (Kontrola.JednostkaKontrolowanaId.HasValue)
            {
                var jednostkaKontrolowanaSymbol = _context.JednostkaKontrolowana.Find(Kontrola.JednostkaKontrolowanaId).Symbol;
                Kontrola.KomorkaWiodacaId = _context.Komorka.FirstOrDefault(k => k.Symbol == jednostkaKontrolowanaSymbol).Id;
            }
            else
            {
                Kontrola.JednostkaKontrolowanaId = 1;
            }

            Kontrola.DataWpisu = DateTime.Now;

            var ostatniaKontrola = _context.Kontrola.AsEnumerable().LastOrDefault(k => k.DataWpisu.Year == DateTime.Now.Year);

            Kontrola.Lp = ostatniaKontrola?.Lp + 1 ?? 1;

            Kontrola.Rok = Kontrola.DataWpisu.Year;

            _context.Kontrola.Add(Kontrola);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbException ex)
            {
                return(BadRequest(ex));
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", Kontrola.GetType().Name)
            .ForContext("RecordId", Kontrola.Id)
            .Warning("Dodanie kontroli {Numer}.", Kontrola.Numer);

            if (procesyWybrane)
            {
                if (procesy.RawValue.ToString().Length > 1)
                {
                    foreach (var proces in (string[])procesy.RawValue)
                    {
                        Kontrola.Procesy.Add(new KontrolaProcesy()
                        {
                            KontrolaId = Kontrola.Id,
                            ProcesId   = int.Parse(proces)
                        });
                    }
                }
                else
                {
                    Kontrola.Procesy.Add(new KontrolaProcesy()
                    {
                        KontrolaId = Kontrola.Id,
                        ProcesId   = int.Parse(procesy.RawValue.ToString())
                    });
                }
            }
            else
            {
                var procesId = _context.Komorka.FirstOrDefault(k => k.Symbol == Kontrola.JednostkaKontrolowana.Symbol)?.ProcesId ?? Kontrola.JednostkaKontrolowana.ProcesId;

                Kontrola.Procesy.Add(new KontrolaProcesy()
                {
                    KontrolaId = Kontrola.Id,
                    ProcesId   = procesId
                });
            }

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbException ex)
            {
                return(BadRequest(ex));
            }

            if (Kontrola.StatusId == 17)
            {
                return(RedirectToPage("./Details", new { id = Kontrola.Id }));
            }
            else if (Kontrola.StatusId == 40)
            {
                return(RedirectToPage("./Zalaczniki", new { id = Kontrola.Id, edit = false }));
            }
            else
            {
                return(RedirectToPage("./Nieprawidlowosci", new { id = Kontrola.Id }));
            }
        }
예제 #13
0
        /// <summary>
        /// Przesyła model danych <see cref="Models.Kontrola"/> do zaktualizowania w aplikacji.
        /// </summary>
        /// <returns>Przekierowanie do szczegółów kontroli.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            var old = _context.Kontrola.Include(k => k.Nieprawidlowosci).AsNoTracking().FirstOrDefault(k => k.Id == Kontrola.Id);

            if (Kontrola.StatusId == 43 && old.Nieprawidlowosci.Count == 0)
            {
                ModelState.AddModelError(string.Empty, "Zanim zmienisz status kontroli na Działania naprawcze dodaj najpierw nieprawidłowości/zalecenia.");
            }

            if (!ModelState.IsValid)
            {
                Kontrola = await _context.Kontrola
                           .Include(k => k.JednostkaKontrolowana)
                           .Include(k => k.JednostkaKontrolujaca)
                           .Include(k => k.KomorkaWiodaca)
                           .Include(k => k.KomorkiUczestniczace).ThenInclude(k => k.Komorka)
                           .Include(k => k.Nieprawidlowosci)
                           .Include(k => k.Status)
                           .Include(k => k.TypKontroli)
                           .Include(k => k.Zalaczniki)
                           .Include(k => k.Procesy).ThenInclude(k => k.Proces)
                           .FirstOrDefaultAsync(m => m.Id == Kontrola.Id);

                if (Kontrola.StatusId == 17 || Kontrola.StatusId == 43)
                {
                    ViewData["StatusId"] = new SelectList(_context.SlownikStatusKontroli.Where(s => s.Id == 17 || s.Id == 40 || s.Id == 43), "Id", "Nazwa");
                }
                else
                {
                    ViewData["StatusId"] = new SelectList(_context.SlownikStatusKontroli.Where(s => s.Id == 40 || s.Id == 42 || s.Id == 43), "Id", "Nazwa");
                }

                return(Page());
            }

            _context.Attach(Kontrola).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!KontrolaExists(Kontrola.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Log
            .ForContext("UserId", int.Parse(User.Claims.FirstOrDefault(u => u.Type.EndsWith("nameidentifier")).Value))
            .ForContext("Table", Kontrola.GetType().Name)
            .ForContext("RecordId", Kontrola.Id)
            .ForContext("MainRecordId", Kontrola.Id)
            .ForContext("Old", JsonSerializer.Serialize(old))
            .ForContext("New", JsonSerializer.Serialize(Kontrola))
            .Warning("Zapisanie edycji kontroli {Numer}.", Kontrola.Numer);

            return(RedirectToPage("./Details", new { id = Kontrola.Id }));
        }