Пример #1
0
        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));
        }
Пример #2
0
        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));
        }