public async Task <IHttpActionResult> Post(EventModel log) { if (log == null) { return(BadRequest(Constants.HttpMessages.NoEntryWasPassed)); } var response = new ApiResponse <long>(); try { var eventDto = Mapper.Map <Event>(log); Application app = await ApplicationBusiness.GetByAppKeyAsync(log.AppKey); eventDto.ApplicationId = app.Id; long registerEventResult = await EventBusiness.RegisterEventAsync(eventDto); eventDto.Id = registerEventResult; await RegisterChildEvents(log, eventDto.Id, eventDto.ApplicationId); response.Message = string.Empty; response.Payload = registerEventResult; string uri = Url.Link("GetEventRoute", new { id = registerEventResult, appKey = log.AppKey }); return(Created(uri, response)); } catch (Exception ex) { LogBuddy.LogError(ex); return(InternalServerError(ex)); } }
private async Task RegisterChildEvents(EventModel log, long id, long applicationId) { while (log.InnerEvent != null) { var eventDto = new Event(); Mapper.Map(log.InnerEvent, eventDto); eventDto.ApplicationId = applicationId; eventDto.ParentId = id; long newId = await EventBusiness.RegisterEventAsync(eventDto); log = log.InnerEvent; await RegisterChildEvents(log, newId, applicationId); } }