Ejemplo n.º 1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = "Meetings/MeetingAdd")] HttpRequest req,
            ILogger log)
        {
            Core.Entities.Meeting meetingFromDd = null;
            try
            {
                var meeting = JsonConvert.DeserializeObject <Core.Entities.Meeting>(await new StreamReader(req.Body).ReadToEndAsync());

                if (meeting.FollowUpMeetings.Any())
                {
                    foreach (var followUpMeeting in meeting.FollowUpMeetings)
                    {
                        followUpMeeting.ApplicantId      = meeting.ApplicantId;
                        followUpMeeting.Id               = Guid.NewGuid().ToString();
                        followUpMeeting.JobApplicationId = meeting.JobApplicationId;
                    }
                }

                if (meeting.Recruiters.Any())
                {
                    foreach (var recruiter in meeting.Recruiters)
                    {
                        recruiter.Id = Guid.NewGuid().ToString();
                    }
                }

                var meetingId = await _meetingRepository.AddItemAsync(meeting);

                meetingFromDd = await _meetingRepository.GetItemAsync(new Guid(meetingId));
            }
            catch (Exception ex)
            {
                // TODO send 400 errors if it's the case, otherwise send 500.
                return(new StatusCodeResult(500));

                // TO DO (add logger)
                throw ex;
            }
            return(new OkObjectResult(meetingFromDd));
        }