示例#1
0
        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
                });
            }
        }
示例#2
0
        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
                });
            }
        }