public DataHandlerCounter(EventDataHandler <T, V> dataHandler, IContext fallback) : base(fallback) { this.dataHandler = dataHandler; EventDataHandlerUtil.RegisterProcessAllShutdownHook <T, V>(dataHandler); EventDataHandlerUtil.RegisterTimedProcessing <T, V>(dataHandler); }
public async Task <Tuple <Event, ErrorViewModel> > Handle(SaveEventCommand cmd, CancellationToken cancellationToken) { Tuple <Event, ErrorViewModel> result = null; Event resultEvent = null; EventTranslation resultEventTranslation = null; if (!cmd.EventId.HasValue) { resultEvent = new Event(); EventDataHandler.SetData(resultEvent, cmd); db.Events.Add(resultEvent); resultEventTranslation = new EventTranslation(); EventTranslationDataHandler.SetData(resultEventTranslation, cmd); resultEventTranslation.Event = resultEvent; db.EventTranslations.Add(resultEventTranslation); } else { resultEvent = db.Events.Where(e => e.EventId == cmd.EventId).FirstOrDefault(); if (resultEvent == null) { logger.LogError("Existing event was not found when tried to update it. EventId: " + cmd.EventId); result = new Tuple <Event, ErrorViewModel>(null, new ErrorViewModel() { ErrorCode = (int)AppError.DbRecordNotFound }); return(result); } EventDataHandler.SetData(resultEvent, cmd); db.Events.Update(resultEvent); if (!cmd.EventTranslationId.HasValue) { resultEventTranslation = new EventTranslation(); EventTranslationDataHandler.SetData(resultEventTranslation, cmd); resultEventTranslation.Event = resultEvent; db.EventTranslations.Add(resultEventTranslation); } else { resultEventTranslation = db.EventTranslations.Where(x => x.EventTranslationId == cmd.EventTranslationId).FirstOrDefault(); if (resultEventTranslation == null) { logger.LogError("Existing event translation was not found when trying to udpate it. EventTranslationId: " + cmd.EventTranslationId); result = new Tuple <Event, ErrorViewModel>(null, new ErrorViewModel() { ErrorCode = (int)AppError.DbRecordNotFound }); return(null); } EventTranslationDataHandler.SetData(resultEventTranslation, cmd); db.EventTranslations.Update(resultEventTranslation); } } await db.SaveChangesAsync(); result = new Tuple <Event, ErrorViewModel>(resultEvent, null); return(result); }
public DataHandlerCounter(EventDataHandler <T, V> dataHandler) : this(dataHandler, UnknownContext.PERMISSIVE) { }