public async Task <IActionResult> Create(int?id)
        {
            GrupaVMs.SlikaCreateVM model = new GrupaVMs.SlikaCreateVM();
            if (id != null && id != 0)
            {
                var s = await _db.Slike.FindAsync(id);

                if (s != null)
                {
                    model.SlikaVM = new GrupaVMs.SlikaVM()
                    {
                        SlikaId          = s.SlikaId,
                        Naziv            = s.Naziv,
                        KursKategorijaId = s.KursKategorijaId,
                        SlikaUrl         = s.SlikaUrl
                    };
                }
            }

            model.KursKategorije = await _db.KursKategorije.AsNoTracking().Select(s => new SelectListItem()
            {
                Text  = s.Naziv,
                Value = s.KursKategorijaId.ToString()
            }).ToListAsync();

            return(PartialView("_Create", model));
        }
        public async Task <IActionResult> Create(GrupaVMs.SlikaCreateVM model)
        {
            ModelState.Remove("SlikaVM.SlikaId");
            if (ModelState.IsValid)
            {
                if (model.SlikaVM.SlikaId == 0 && model.SlikaVM.SlikaFile == null && string.IsNullOrEmpty(model.SlikaVM.SlikaUrl))
                {
                    ModelState.AddModelError("", "Morate unijeti ili url slike ili sliku.");
                }
                else
                {
                    int destWidth = _config.GetValue <int>("MySettings:imgWidth"), destHeight = _config.GetValue <int>("MySettings:imgHeight");
                    try
                    {
                        Slika s = new Slika()
                        {
                            SlikaId          = model.SlikaVM.SlikaId,
                            Naziv            = model.SlikaVM.Naziv,
                            KursKategorijaId = model.SlikaVM.KursKategorijaId,
                            SlikaUrl         = model.SlikaVM.SlikaUrl,//TODO:Provjeriti da li su unesena oba urla ili ukinuti url
                        };
                        if (model.SlikaVM.SlikaFile != null)
                        {
                            if (model.SlikaVM.SlikaFile.Length < 1048576)
                            {
                                Image image = Image.FromStream(model.SlikaVM.SlikaFile.OpenReadStream(), true, true);
                                image       = image.Resize(destWidth, destHeight).Crop(destWidth, destHeight);
                                s.SlikaFile = image.ToByteArray();
                                Image thumbNail = image.GetThumbnailImage(100, 100, null, new IntPtr());
                                s.SlikaThumb = thumbNail.ToByteArray();
                            }
                            else
                            {
                                ModelState.AddModelError("SlikaVM.SlikaFile", "Slika mora biti veličine do 1MB.");
                            }
                        }

                        if (ModelState.IsValid)
                        {
                            string alertDetails = "Uspješno ";
                            string alertSummary = $"Slika: {s.Naziv} ";
                            if (s.SlikaId == 0)
                            {
                                _db.Slike.Add(s);
                                alertDetails += "dodana u bazu.";
                            }
                            else
                            {
                                _db.Slike.Attach(s);
                                var entry = _db.Entry(s);
                                entry.State = EntityState.Modified;
                                if (s.SlikaFile == null)
                                {
                                    entry.Property(p => p.SlikaFile).IsModified  = false;
                                    entry.Property(p => p.SlikaThumb).IsModified = false;
                                }
                                alertDetails = "editovana.";
                            }
                            _db.SaveChanges();
                            return(StatusCode(201, new { Alert = new Alert(Severity.success, alertDetails, alertSummary) }));
                        }
                    }
                    catch (Exception e)
                    {
                        return(BadRequest("Došlo je do greške prilikom snimanja podatka u bazu.; " + e.Message));
                    }
                }
            }


            model.KursKategorije = await _db.KursKategorije.AsNoTracking().Select(s => new SelectListItem()
            {
                Text     = s.Naziv,
                Value    = s.KursKategorijaId.ToString(),
                Selected = s.KursKategorijaId == model.SlikaVM.KursKategorijaId
            }).ToListAsync();

            return(PartialView("_Create", model));
        }