Beispiel #1
0
        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());
        }
Beispiel #3
0
        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>();
 }