Example #1
0
        public async Task <IActionResult> PromjenaNaslova([FromBody] PretragaModel model)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            Guid idRazg;
            var  flag = Guid.TryParse(model.Id, out idRazg);

            if (flag == false)
            {
                return(BadRequest());
            }
            Razgovor r = _ctx.Razgovor.Find(idRazg);

            if (r == null)
            {
                return(NotFound());
            }
            r.Naslov = model.Tekst;
            _ctx.SaveChanges();
            var m = new StringModel {
                Value = "Ok"
            };

            return(Ok(m));
        }
Example #2
0
 public DataTemplateSelector(Razgovor razgovor)
 {
     model          = new RazgovorViewModel(razgovor);
     BindingContext = model;
     InitializeComponent();
     Disappearing += DataTemplateSelector_Disappearing;
 }
Example #3
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();
            }
        }