Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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);
            }
        }