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)); }
public DataTemplateSelector(Razgovor razgovor) { model = new RazgovorViewModel(razgovor); BindingContext = model; InitializeComponent(); Disappearing += DataTemplateSelector_Disappearing; }
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(); } }