public EMEventInfoDto GetOrAddEMEventInfo <T>(EMEvent <T> data, string propertiesJson) where T : IEMEvent { //if event exist if (_context.EMEventInfos.Any(x => x.EventName == data.EventName)) { var dbResult = _context.EMEventInfos.FirstOrDefault(x => x.EventName == data.EventName); return(new EMEventInfoDto { EventName = dbResult.EventName, EventPropertiesJson = dbResult.EventPropertiesJson }); } else // event not exist. Create it { var eventInfo = new EMEventInfo { CreationTime = DateTime.Now, //TODO: Change it CreatorClientName = "", EventName = data.EventName, EventPropertiesJson = propertiesJson }; _context.EMEventInfos.Add(eventInfo); _context.SaveChanges(); return(new EMEventInfoDto { EventName = data.EventName, EventPropertiesJson = propertiesJson }); } }
public async Task <EMEventInfoDto> GetOrAddEMEventInfoAsync <T>(EMEvent <T> data, string propertiesJson) where T : IEMEvent { //if event exist if (await _context.EMEventInfos.AnyAsync(x => x.EventName == data.EventName)) { var dbResult = await _context.EMEventInfos.FirstOrDefaultAsync(x => x.EventName == data.EventName); return(new EMEventInfoDto { EventName = dbResult.EventName, EventPropertiesJson = dbResult.EventPropertiesJson });//Return event info } else // event not exist. Create it { var eventInfo = new EMEventInfo { CreationTime = DateTime.Now, //TODO: Change it CreatorClientName = "", EventName = data.EventName, EventPropertiesJson = propertiesJson }; await _context.EMEventInfos.AddAsync(eventInfo); await _context.SaveChangesAsync(); return(new EMEventInfoDto { EventName = data.EventName, EventPropertiesJson = propertiesJson }); } }