public async Task <IViewComponentResult> InvokeAsync(int?id, bool klijentskiPortalCall = true) { ViewData["kpCall"] = klijentskiPortalCall; TempData["kpCall"] = klijentskiPortalCall; var model = new OsobaCreateVM { Gradovi = await _db.Gradovi.Select(s => new SelectListItem() { Text = s.Naziv, Value = s.GradId.ToString() }).ToListAsync() }; if (id != null && id != 0) { var o = await _db.Osobe.FindAsync(id); if (o != null) { model.Osoba = new OsobaCreateVM.Person() { OsobaId = o.OsobaId, Ime = o.Ime, Prezime = o.Prezime, DatumRodjenja = o.DatumRodjenja, Email = o.Email, BrojTelefona = o.BrojTelefona, Adresa = o.Adresa, BrojMobitela = o.BrojMobitela, MjestoBoravkaId = o.MjestoBoravkaId, Spol = o.Spol, KakoSteSaznaliZaNas = o.KakoSteSaznaliZaNas, BrojTelefonaFirme = o.BrojTelefonaFirme, AdresaFirme = o.AdresaFirme, PodatciOFirmi = o.PodatciOFirmi, NazivFirme = o.NazivFirme, MjestoRodjenjaId = o.MjestoRodjenjaId, GradFirmeId = o.GradFirmeId, EmailFirme = o.EmailFirme }; } } return(View(model)); }
public async Task <IActionResult> Create(OsobaCreateVM model) { ModelState.Remove("Osoba.OsobaId"); if (!ModelState.IsValid) { model.Gradovi = await _db.Gradovi.Select(s => new SelectListItem() { Text = s.Naziv, Value = s.GradId.ToString() }).ToListAsync(); return(PartialView("\\Views\\Shared\\Components\\Registracija\\Default.cshtml", model)); } string alertSummary, alertDetails = "Uspješno "; try { Osoba o = model.ToOsoba(); alertSummary = $"Osoba: {o.Ime} {o.Prezime}"; if (model.Osoba.OsobaId != 0) { alertDetails += "editovana."; _db.Osobe.Attach(o); _db.Entry(o).State = EntityState.Modified; } else { alertDetails += "registrovana na sistem. Nakon što osoblje obradi zahtjev, pristupne podatke ćete dobiti na Email."; _db.Osobe.Add(o); } _db.SaveChanges(); if ((bool?)TempData["kpCall"] ?? false) { ViewData["Info-summary"] = alertSummary; ViewData["Info-details"] = alertDetails; return(View("Info")); } else { return(StatusCode(201, new { alert = new Alert(Severity.success, alertDetails, alertSummary) })); } } catch (Exception e) { if (e is DbUpdateException) { if ((e.InnerException as SqlException)?.Number == 2601) { ModelState.AddModelError("Osoba.Email", $"Email {model.Osoba.Email} je korišten za prijavu."); } } ModelState.AddModelError(String.Empty, e.Message); Console.WriteLine(e); } model.Gradovi = await _db.Gradovi.Select(s => new SelectListItem() { Text = s.Naziv, Value = s.GradId.ToString() }).ToListAsync(); return(PartialView("\\Views\\Shared\\Components\\Registracija\\Default.cshtml", model)); }