public void Create(EventCreatingModel creatingModel) { ITagsRepository tagsRepository = new TagsRepository(_databaseContext); var @event = Event.Create(creatingModel, null); List<EventTag> eventTags = new List<EventTag>(); foreach (var tag in creatingModel.Tags) { eventTags.Add(new EventTag(@event.Id,@event,tag.Label,tagsRepository.GetById(tag.Label))); } @event.Update(@event.Name,@event.Description,@event.DateAndTime,@event.Location,@event.Image,eventTags); AddEvent(@event, creatingModel.Tags); _databaseContext.SaveChanges(); GetById(@event.Id); }
private void AddEvent(Event _event, List<TagCreatingModel> tags) { _databaseContext.Database.OpenConnection(); ITagsRepository tagsRepository = new TagsRepository(_databaseContext); try { foreach (var tag in tags) { if (tagsRepository.GetById(tag.Label) != null) { var sql = String.Format( "INSERT INTO dbo.Events VALUES('{0}','{1}','{2}',CONVERT(varbinary,'{3}'),'{4}','{5}')", _event.Id, _event.DateAndTime, _event.Description, _event.Image, _event.Location, _event.Name); _databaseContext.Database.ExecuteSqlCommand(sql); sql = String.Format("INSERT INTO dbo.EventTag VALUES('{0}', '{1}')", _event.Id, tag.Label); _databaseContext.Database.ExecuteSqlCommand(sql); _databaseContext.SaveChanges(); } else { var sql = String.Format( "INSERT INTO dbo.Events VALUES('{0}','{1}','{2}',CONVERT(varbinary,'{3}'),'{4}','{5}')", _event.Id, _event.DateAndTime, _event.Description, _event.Image, _event.Location, _event.Name); _databaseContext.Database.ExecuteSqlCommand(sql); sql = String.Format("INSERT INTO dbo.Tags VALUES('{0}','{1}')", tag.Label, tag.Verified); _databaseContext.Database.ExecuteSqlCommand(sql); sql = String.Format("INSERT INTO dbo.EventTag VALUES('{0}', '{1}')", _event.Id, tag.Label); _databaseContext.Database.ExecuteSqlCommand(sql); _databaseContext.SaveChanges(); } } } finally { _databaseContext.Database.CloseConnection(); } }