예제 #1
0
        public static List <PorukaModel> GetAllMessages()
        {
            List <PorukaModel> poruke = new List <PorukaModel>();
            PorukaModel        poruka = null;

            SqlConnection connection = Database.GetConnection();
            SqlCommand    cmd        = null;
            SqlDataReader reader     = null;

            connection.Open();
            cmd = new SqlCommand(GET_ALL_MESSAGES, connection);
            cmd.CommandTimeout = 60;
            reader             = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    poruka            = new PorukaModel();
                    poruka.AutoID     = Convert.ToInt32(reader["AutoID"]);
                    poruka.TextPoruke = Convert.ToString(reader["TextPoruke"]);
                    if (!reader.IsDBNull(3))
                    {
                        poruka.DatumKreiranjaUTC = reader.GetDateTimeOffset(3).LocalDateTime;
                    }
                    poruka.Korisnik.Ime     = reader["KorisnikIme"].ToString();
                    poruka.Korisnik.Prezime = reader["KorisnikPrezime"].ToString();
                    poruke.Add(poruka);
                }
                reader.Close();
            }
            connection.Close();

            return(poruke);
        }
예제 #2
0
        public static PorukaModel GetMessageById(int AutoID)
        {
            PorukaModel poruka = null;

            SqlConnection connection = Database.GetConnection();
            SqlCommand    cmd        = null;
            SqlDataReader reader     = null;

            connection.Open();
            cmd = new SqlCommand(GET_MESSAGE_BY_ID, connection);
            cmd.Parameters.AddWithValue("@AutoID", AutoID);
            cmd.CommandTimeout = 60;
            reader             = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    poruka                  = new PorukaModel();
                    poruka.AutoID           = Convert.ToInt32(reader["AutoID"]);
                    poruka.TextPoruke       = Convert.ToString(reader["TextPoruke"]);
                    poruka.Korisnik.Ime     = Convert.ToString(reader["Ime"]);
                    poruka.Korisnik.Prezime = Convert.ToString(reader["Prezime"]);
                    if (!reader.IsDBNull(3))
                    {
                        poruka.DatumKreiranjaUTC = reader.GetDateTimeOffset(3).LocalDateTime;
                    }
                }
                reader.Close();
            }
            connection.Close();

            return(poruka);
        }
예제 #3
0
 public void SaveID([FromBody] PorukaModel poruka)
 {
     try
     {
         HttpContext.Session.SetInt32("PorukaAutoID", poruka.AutoID);
     }
     catch (Exception)
     {
     }
 }
예제 #4
0
        public async Task SendMessage(PorukaModel poruka)
        {
            string name = Context.User.Identity.Name;

            var razg = _ctx.Razgovor.Where(razg => razg.Id == Guid.Parse(poruka.IdRazg)).Include(razg => razg.KorisnikUrazgovoru).SingleOrDefault();

            poruka.Message = poruka.Message.Replace("\n", "<br />");
            var user = _ctx.Korisnik.Where(k => k.Id == Guid.Parse(poruka.IdUser)).SingleOrDefault();

            poruka.Slika = user.IdSlika.ToString();
            poruka.Ime   = user.Ime;
            var when = DateTime.ParseExact(poruka.When, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

            poruka.When = when.ToString("dd.MM.yyyy. | HH:mm");

            Poruka novaPoruka = new Poruka
            {
                DatumIvrijeme = when,
                Id            = Guid.NewGuid(),
                IdKorisnik    = Guid.Parse(poruka.IdUser),
                IdRazgovor    = Guid.Parse(poruka.IdRazg),
                Poruka1       = poruka.Message
            };

            razg.DatumZadnjePoruke = when;
            _ctx.Add(novaPoruka);
            foreach (KorisnikUrazgovoru k in razg.KorisnikUrazgovoru)
            {
                if (k.IdKorisnik != novaPoruka.IdKorisnik)
                {
                    k.Procitano = false;
                }
                else
                {
                    k.Procitano = true;
                }
            }
            _ctx.SaveChanges();
            foreach (KorisnikUrazgovoru k in razg.KorisnikUrazgovoru)
            {
                await Clients.User(k.IdKorisnik.ToString()).SendAsync("ReceiveMessageMob", new { Id = novaPoruka.Id, IdKorisnik = novaPoruka.IdKorisnik, IdRazgovor = novaPoruka.IdRazgovor, Poruka1 = novaPoruka.Poruka1.Replace("<br />", "\n"), DatumIvrijeme = novaPoruka.DatumIvrijeme }, user.ImeIPrezime());

                await Clients.User(k.IdKorisnik.ToString()).SendAsync("ReceiveMessage", k.IdKorisnik, poruka);

                await Clients.User(k.IdKorisnik.ToString()).SendAsync("ChangeHeader", new
                {
                    Id        = novaPoruka.IdRazgovor,
                    Naziv     = razg.Naslov + " (" + user.ImeIPrezime() + ")",
                    Datum     = novaPoruka.DatumIvrijeme.ToString("dd.MM.yyyy. hh:mm"),
                    Slika     = user.IdSlika,
                    Poruka    = novaPoruka.Poruka1,
                    Procitano = k.Procitano
                });
            }
        }
예제 #5
0
 // GET: Message/Delete/5
 public bool Delete([FromBody] PorukaModel poruka)
 {
     try
     {
         return(ObavjestenjaDAO.DeleteMessage(poruka.AutoID));
     }
     catch (Exception)
     {
         return(false);
     }
 }
예제 #6
0
 public void SaveUvoznikID([FromBody] PorukaModel poruka)
 {
     try
     {
         //ReportsController rc = new ReportsController();
         //ReportsController.SetReportName("PrijavaZaRegistraciju", "UvoznikID", HttpContext.Session.GetObjectFromJson<KorisnikModel>("LogovaniKorisnik").Uvoznik.AutoID.ToString());
         HttpContext.Session.SetString("ReportName", "Homologacija_za_dijelove.Reports.PrijavaZaRegistraciju.repx?UvoznikID=" + HttpContext.Session.GetObjectFromJson <KorisnikModel>("LogovaniKorisnik").Uvoznik.AutoID.ToString());
     }
     catch (Exception e)
     {
         e.Message.ToString();
     }
 }
예제 #7
0
        public async Task <IActionResult> Create([Bind("Id,Korisnik,Primatelj,Naslov,Tekst")] PorukaModel porukaModel)
        {
            var DodajNeProc = userManager.Users.Where(x => porukaModel.Primatelj == x.Email).ToList();

            foreach (var neproc in DodajNeProc)
            {
                neproc.NeProcitano = neproc.NeProcitano + 1;
            }
            if (ModelState.IsValid)
            {
                _context.Add(porukaModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(porukaModel));
        }
예제 #8
0
        public static Boolean CreateNewMessage(PorukaModel poruka)
        {
            Boolean created;

            SqlConnection connection = Database.GetConnection();
            SqlCommand    cmd        = null;

            connection.Open();
            cmd = new SqlCommand(CREATE_NEW_MESSAGE, connection);
            cmd.Parameters.AddWithValue("@TextPoruke", poruka.TextPoruke);
            cmd.Parameters.AddWithValue("@KorisnikID", poruka.Korisnik.Id);
            cmd.CommandTimeout = 60;
            created            = cmd.ExecuteNonQuery() > 0 ? true : false;
            connection.Close();

            return(created);
        }
예제 #9
0
        public ActionResult Create(PorukaModel poruka)
        {
            try
            {
                if (HttpContext.Session.GetObjectFromJson <KorisnikModel>("LogovaniKorisnik") == null)
                {
                    return(View("~/Views/Login/Index.cshtml"));
                }
                poruka.Korisnik = HttpContext.Session.GetObjectFromJson <KorisnikModel>("LogovaniKorisnik");
                ObavjestenjaDAO.CreateNewMessage(poruka);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception e)
            {
                return(View());
            }
        }
예제 #10
0
        public static Boolean UpdateMessage(PorukaModel poruka)
        {
            Boolean update;

            SqlConnection connection = Database.GetConnection();
            SqlCommand    cmd        = null;

            connection.Open();
            cmd = new SqlCommand(UPDATE_MESSAGE, connection);
            cmd.Parameters.AddWithValue("@AutoID", poruka.AutoID);
            cmd.Parameters.AddWithValue("@TextPoruke", poruka.TextPoruke);
            cmd.Parameters.AddWithValue("@KorisnikID", poruka.Korisnik.Id);
            cmd.CommandTimeout = 60;
            update             = cmd.ExecuteNonQuery() > 0 ? true : false;
            connection.Close();

            return(update);
        }
예제 #11
0
        public ActionResult SaveEdit(PorukaModel poruka)
        {
            try
            {
                if (HttpContext.Session.GetObjectFromJson <KorisnikModel>("LogovaniKorisnik") == null)
                {
                    return(View("~/Views/Login/Index.cshtml"));
                }
                poruka.AutoID   = Convert.ToInt32(HttpContext.Session.GetInt32("PorukaAutoID"));
                poruka.Korisnik = HttpContext.Session.GetObjectFromJson <KorisnikModel>("LogovaniKorisnik");
                ObavjestenjaDAO.UpdateMessage(poruka);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(nameof(Edit)));
            }
        }
예제 #12
0
        public async Task NewConversation(PorukaModel poruka)
        {
            var listaId = poruka.Kontakti.Select(p => Guid.Parse(p)).ToList();

            listaId.Add(Guid.Parse(poruka.IdUser));
            //glupi uvjet, treba bolji napisat
            var razg = _ctx.Razgovor.Where(razg => razg.KorisnikUrazgovoru.Select(k => k.IdKorisnik).All(id => listaId.Contains(id)) && razg.KorisnikUrazgovoru.Count() == listaId.Count()).Include(k => k.KorisnikUrazgovoru).SingleOrDefault();
            var when = DateTime.ParseExact(poruka.When, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

            poruka.Message = poruka.Message.Replace("\n", "<br />");
            poruka.When    = when.ToString("dd.MM.yyyy. | HH:mm");

            if (razg != null)
            {
                var user = _ctx.Korisnik.Where(k => k.Id == Guid.Parse(poruka.IdUser)).SingleOrDefault();
                poruka.Slika  = user.IdSlika.ToString();
                poruka.Ime    = user.Ime;
                poruka.IdRazg = razg.Id.ToString();
                Poruka novaPoruka = new Poruka
                {
                    DatumIvrijeme = when,
                    Id            = Guid.NewGuid(),
                    IdKorisnik    = Guid.Parse(poruka.IdUser),
                    IdRazgovor    = Guid.Parse(poruka.IdRazg),
                    Poruka1       = poruka.Message
                };
                razg.DatumZadnjePoruke = when;
                _ctx.Add(novaPoruka);
                foreach (KorisnikUrazgovoru k in razg.KorisnikUrazgovoru)
                {
                    if (k.IdKorisnik != novaPoruka.IdKorisnik)
                    {
                        k.Procitano = false;
                    }
                    else
                    {
                        k.Procitano = true;
                    }
                    await Clients.User(k.IdKorisnik.ToString()).SendAsync("ReceiveMessageMob", new { Id = novaPoruka.Id, IdKorisnik = novaPoruka.IdKorisnik, IdRazgovor = novaPoruka.IdRazgovor, Poruka1 = novaPoruka.Poruka1.Replace("<br />", "\n"), DatumIvrijeme = novaPoruka.DatumIvrijeme }, user.ImeIPrezime());

                    await Clients.User(k.IdKorisnik.ToString()).SendAsync("ReceiveMessage", k.IdKorisnik, poruka);

                    await Clients.User(k.IdKorisnik.ToString()).SendAsync("ChangeHeader", new
                    {
                        Id        = novaPoruka.IdRazgovor,
                        Naziv     = razg.Naslov + " (" + user.ImeIPrezime() + ")",
                        Datum     = novaPoruka.DatumIvrijeme.ToString("dd.MM.yyyy. | HH:mm"),
                        Slika     = user.IdSlika,
                        Poruka    = novaPoruka.Poruka1,
                        Procitano = k.Procitano
                    });
                }
                _ctx.SaveChanges();
            }
            else
            {
                //Treba napraviti novi;
                var user = _ctx.Korisnik.Where(k => k.Id == Guid.Parse(poruka.IdUser)).SingleOrDefault();
                poruka.Slika = user.IdSlika.ToString();
                poruka.Ime   = user.Ime;
                Poruka novaPoruka = new Poruka
                {
                    DatumIvrijeme = when,
                    Id            = Guid.NewGuid(),
                    IdKorisnik    = Guid.Parse(poruka.IdUser),
                    Poruka1       = poruka.Message
                };
                Razgovor noviRazg = new Razgovor
                {
                    Id                = Guid.NewGuid(),
                    Naslov            = "",
                    DatumZadnjePoruke = when,
                };
                novaPoruka.IdRazgovor = noviRazg.Id;
                noviRazg.Poruka.Add(novaPoruka);
                poruka.IdRazg       = noviRazg.Id.ToString();
                poruka.ImeRazgovora = "";

                foreach (var id in listaId)
                {
                    KorisnikUrazgovoru k = new KorisnikUrazgovoru
                    {
                        Id                   = Guid.NewGuid(),
                        IdKorisnik           = id,
                        IdRazgovor           = noviRazg.Id,
                        IdKorisnikNavigation = _ctx.Korisnik.Find(id)
                    };
                    if (k.IdKorisnik != novaPoruka.IdKorisnik)
                    {
                        k.Procitano = false;
                    }
                    else
                    {
                        k.Procitano = true;
                    }
                    noviRazg.KorisnikUrazgovoru.Add(k);
                }
                poruka.Popis = noviRazg.GetPopisKorisnika(novaPoruka.IdKorisnik);

                var list = new List <Poruka>();
                list.Add(new Poruka
                {
                    DatumIvrijeme = novaPoruka.DatumIvrijeme,
                    Id            = novaPoruka.Id,
                    IdKorisnik    = novaPoruka.IdKorisnik,
                    IdRazgovor    = novaPoruka.IdRazgovor,
                    Poruka1       = novaPoruka.Poruka1.Replace("<br />", "\n")
                });
                var copyRazg = new Razgovor
                {
                    Id                 = noviRazg.Id,
                    Naslov             = noviRazg.Naslov,
                    DatumZadnjePoruke  = noviRazg.DatumZadnjePoruke,
                    KorisnikUrazgovoru = noviRazg.KorisnikUrazgovoru,
                    Poruka             = list
                };
                foreach (var id in listaId)
                {
                    await Clients.User(id.ToString()).SendAsync("ReceiveNewConversationMob", copyRazg, user.ImeIPrezime());

                    await Clients.User(id.ToString()).SendAsync("ReceiveNewConversation", id, poruka);

                    bool flag = false;
                    if (id == user.Id)
                    {
                        flag = true;
                    }
                    await Clients.User(id.ToString()).SendAsync("ChangeHeader", new
                    {
                        Id        = novaPoruka.IdRazgovor,
                        Naziv     = noviRazg.Naslov + " (" + user.ImeIPrezime() + ")",
                        Datum     = novaPoruka.DatumIvrijeme.ToString("dd.MM.yyyy. | HH:mm"),
                        Slika     = user.IdSlika,
                        Poruka    = novaPoruka.Poruka1,
                        Procitano = flag
                    });
                }
                _ctx.Add(noviRazg);
                _ctx.SaveChanges();
            }
        }