public Schedule(string scheduleName) { var newScheduleId = Guid.NewGuid(); var @event = new ScheduleCreatedEvent(newScheduleId, scheduleName); ApplyEvent(@event); }
public async Task HandleScheduleCreatedEvent(ScheduleCreatedEvent e) { var schedule = await _repository.FindByUUID <Schedule>(e.ScheduleUuid).FirstOrDefaultAsync(); if (schedule == null) { return; } if (schedule.ParentId > 0) { return; // Not publish feed if it's a subscribed schedule } var user = await _uCenter.GetUser(x => x.UserId, schedule.UserId); if (user == null) { return; } await _feedSvc.PublishAsync(new FeedInputModel { ContentId = schedule.Id.ToString(), FeedTitle = schedule.Title, FeedContent = schedule.Description, UserId = schedule.UserId, Link = $"{AppConst.DomainAddress}/schedules/u/{user.Alias}/{schedule.Id}", IsPrivate = schedule.IsPrivate, AppId = AppConst.AppGuid, FeedType = FeedType.ScheduleNew }); await _cache.RemoveAsync(CacheKeyStore.HomeFeeds()); }
public async Task <int> ScheduleDeleteAsync(ISchedule schedule) { // Record in local storage IDomainEvent <ISchedule> eventRaise; if (schedule.ScheduleKey != Guid.Empty) { _dbContext.Entry((Schedule)schedule).State = EntityState.Deleted; eventRaise = new ScheduleUpdatedEvent(schedule); } else { _dbContext.Schedule.Add((Schedule)schedule); eventRaise = new ScheduleCreatedEvent(schedule); } _recordsAffected = await _dbContext.SaveChangesAsync(); schedule.RaiseDomainEvent(eventRaise); return(_recordsAffected); }
public void OnScheduleCreated(ScheduleCreatedEvent @event) { ScheduleName = @event.ScheduleName; Todos = new List <Todo>(); }