public async Task UpdateByUzivatel(EventUzivatelUpdated evt) { var kalendarList = db.Kalendare.Where(k => k.UzivatelId == evt.UzivatelId); if (kalendarList.Any()) { foreach (var item in kalendarList) { var ev = new EventKalendarUpdated() { CeleJmeno = $"{evt.Prijmeni} {evt.Jmeno}", EventCreated = DateTime.Now, EventId = Guid.NewGuid(), Generation = item.Generation + 1, SourceGuid = evt.EventId, UzivatelId = evt.UzivatelId, Body = item.Body, }; await _handler.PublishEvent(ev, MessageType.KalendarCreated, ev.EventId, null, ev.Generation, item.KalendarId); item.UzivatelId = ev.UzivatelId; item.EventGuid = ev.EventId; item.UzivatelCeleJmeno = ev.CeleJmeno; item.DatumAktualizace = DateTime.Now; db.Kalendare.Update(item); } } await db.SaveChangesAsync(); }
public async Task UpdateByAktivita(EventAktivitaUpdated evt) { var interval = (evt.DatumDo - evt.DatumOd).TotalDays; var _tmpYear = evt.DatumOd.Year; var item = db.Kalendare.FirstOrDefault(k => k.UzivatelId == evt.UzivatelId && k.Rok == _tmpYear); if (item != null) { var kalendar = JsonConvert.DeserializeObject <Year>(item.Body); for (int i = 0; i <= interval; i++) { var focus = evt.DatumOd.AddDays(i); if (_tmpYear != focus.Year) { _tmpYear = focus.Year; item = db.Kalendare.FirstOrDefault(k => k.UzivatelId == evt.UzivatelId && k.Rok == _tmpYear); kalendar = JsonConvert.DeserializeObject <Year>(item.Body); } var mesic = kalendar.Months[focus.Month - 1]; var den = mesic.Days[focus.Day - 1]; var polozka = den.Polozky.Where(p => p.Id == evt.AktivitaId).FirstOrDefault(); if (polozka != null) { polozka.Id = evt.AktivitaId; polozka.DatumDo = evt.DatumOd; polozka.AktivitaTypId = evt.AktivitaTypId; polozka.DatumOd = evt.DatumDo; polozka.Nazev = evt.Nazev; polozka.UzivatelId = evt.UzivatelId; polozka.CeleJmeno = evt.UzivatelCeleJmeno; var result = JsonConvert.SerializeObject(kalendar); item.DatumAktualizace = evt.EventCreated; item.Body = result; item.EventGuid = evt.EventId; item.Generation = evt.Generation; db.Kalendare.Update(item); await db.SaveChangesAsync(); var ev = new EventKalendarUpdated() { CeleJmeno = item.UzivatelCeleJmeno, EventCreated = DateTime.Now, EventId = Guid.NewGuid(), Generation = item.Generation + 1, SourceGuid = evt.EventId, UzivatelId = evt.UzivatelId, Body = item.Body, }; await _handler.PublishEvent(ev, MessageType.KalendarUpdated, ev.EventId, null, ev.Generation, item.KalendarId); await db.SaveChangesAsync(); } } } }