Example #1
0
        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();
        }
Example #2
0
        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();
                    }
                }
            }
        }