예제 #1
0
        public IActionResult AzurirajZahtjev(int zahtjevId, [FromBody] AzurirajZahtjevRequestModel model)
        {
            var result = zahtjevService.AzurirajZahtjev(zahtjevId, model);

            if (result.IsOk)
            {
                logService.Akcija(Core.Constants.LogLevel.Info,
                                  Core.Constants.LogKategorija.zahtjevi,
                                  Core.Constants.LogAkcija.zahtjev_izmijeni,
                                  "Zahtjev: " + (result.Value.Id),//+result.Value.Naziv+result.Value.Opis+result.Value.ZahtjevKategorija+result.Value.ZahtjevPrioritet+result.Value.ZahtjevTip,
                                  authService.TrenutniKorisnik().KorisnickoIme
                                  );
            }
            return(Convert(result));
        }
예제 #2
0
        public ServiceResult <ZahtjevModel> AzurirajZahtjev(int zahtjevId, AzurirajZahtjevRequestModel model)
        {
            var zahtjev = context.Zahtjevi.Include(z => z.ZahtjevStatus)
                          .SingleOrDefault(p => p.Id == zahtjevId && !p.IsDeleted);

            if (zahtjev == null)
            {
                return(NotFound());
            }

            if (zahtjev.ZahtjevStatus.Oznaka == (int)OznakeStatusa.Done)
            {
                return(Error("Izmjena nije moguća, jer je ovaj zahtjev završen"));
            }

            if (String.IsNullOrWhiteSpace(model.Naziv))
            {
                return(Error("Naziv zahtjeva ne može biti prazan"));
            }

            if (String.IsNullOrWhiteSpace(model.Opis))
            {
                return(Error("Opis zahtjeva ne može biti prazan"));
            }
            IzmjenaZahtjeva izmjenaZahtjeva = new IzmjenaZahtjeva();

            try
            {
                zahtjev.Naziv = model.Naziv;
                zahtjev.Opis  = model.Opis;
                zahtjev.ZahtjevKategorijaId = model.ZahtjevKategorijaId;
                zahtjev.ZahtjevTipId        = model.ZahtjevTipId;
                zahtjev.ZahtjevPrioritetId  = model.ZahtjevPrioritetId;
                zahtjev.DatumIzmjene        = DateTime.Now;
                zahtjev.ModifiedBy          = model.ModifiedBy;
                zahtjev.PocetakIzrade       = model.PocetakIzrade;

                if (ImaPravo("zahtjev_zahtjev_edit_dodijeljeni_korisnik"))
                {
                    if (zahtjev.DodijeljeniKorisnikIme != model.DodijeljeniKorisnikIme)
                    {
                        zahtjev.DodijeljeniKorisnikIme = model.DodijeljeniKorisnikIme;

                        if (zahtjev.DodijeljeniKorisnikIme != null)
                        {
                            var naziv = zahtjev.Naziv;

                            Notifikacija notifikacija = new Notifikacija();
                            notifikacija.Naslov = "Dodjela zahtjeva";
                            if (zahtjev.Naziv.Length > 35)
                            {
                                naziv = zahtjev.Naziv.Substring(0, 32) + "...";
                            }
                            notifikacija.Poruka         = "Dodijeljen Vam je zahtjev pod nazivom: '" + naziv;
                            notifikacija.ZahtjevId      = zahtjev.Id;
                            notifikacija.ProjekatId     = zahtjev.ProjekatId;
                            notifikacija.DatumKreiranja = DateTime.Now;
                            context.Notifikacije.Add(notifikacija);



                            //SaveChanges(context);

                            //kreiranje notifikacije korisniku koji je kreirao zahtjev
                            KorisnikNotifikacija korisnikNotifikacija = new KorisnikNotifikacija();
                            korisnikNotifikacija.KorisnickoIme  = zahtjev.DodijeljeniKorisnikIme;
                            korisnikNotifikacija.NotifikacijaId = notifikacija.Id;
                            korisnikNotifikacija.Otvorena       = false;
                            korisnikNotifikacija.Notifikacija   = notifikacija;

                            context.KorisnikNotifikacije.Add(korisnikNotifikacija);
                        }
                    }
                }

                //ako se mijenja i status, da se to zabiljezi u bazi promjena statusa
                if (zahtjev.ZahtjevStatusId != model.ZahtjevStatusId)
                {
                    if (!ImaPravo("zahtjev_zahtjev_edit_status"))
                    {
                        return(Error("Nemate pravo izmjene statusa zahtjeva."));
                    }
                    AzurirajStatusZahtjevaRequestModel azurirajStatusZahtjevaRequestModel = new AzurirajStatusZahtjevaRequestModel();
                    azurirajStatusZahtjevaRequestModel.ZahtjevStatusId = model.ZahtjevStatusId;

                    this.AzurirajStatusZahtjeva(zahtjevId, azurirajStatusZahtjevaRequestModel);
                }

                SaveChanges(context);
            }
            catch (Exception e)
            {
                throw;
            }

            return(Ok(zahtjev.ToZahtjevModel()));
        }