Ejemplo n.º 1
0
        public ActionResult CreateMeeting(MeetingViewModel meetingViewModel, string meetingRoomId)
        {
            Meeting meeting = null;

            if (ModelState.IsValid)
            {
                ReturnResult result = new ReturnResult();
                try
                {
                    meeting = new Meeting();
                    Attendee attendee = new Attendee();
                    attendee.Id = Guid.NewGuid();
                    //解析用户输入的与会人邮箱地址,然后构建attendee,此处没有处理用户错误输入例外
                    attendee.SetAttendeeMailAddresses(meetingViewModel.AttendeeEmails, _context);
                    User        owner       = _context.Users.Find(HttpContext.User.Identity.GetUserId());
                    MeetingRoom meetingRoom = _context.MeetingRooms.Find(meetingRoomId);
                    //下面是使用输入内容初始化新会议
                    meeting.Id             = Guid.NewGuid();
                    meeting.Owner          = owner;
                    meeting.BeginningTime  = meetingViewModel.StartDateTime;
                    meeting.EndTime        = meetingViewModel.EndDateTime;
                    meeting.MeetingSubject = meetingViewModel.MeetingSubject;
                    meeting.MeetingRoom    = meetingRoom;
                    meeting.MeetingContent = meetingViewModel.MeetingContent;
                    meeting.Attendee       = attendee;
                    meeting.IsCanceled     = false;

                    result = _meetingService.CreatingMeeting(meeting);
                }
                catch (InvalidOperationException invalidOperationException)
                {
                    ModelState.AddModelError("", invalidOperationException.Message);
                }
                catch (Exception e)
                {
                    _logger.Error(e.Message, e);
                }


                if (result.Result)
                {
                    MeetingEvent meetingEvent = new MeetingEvent();
                    meetingEvent.Id            = meeting.Id.ToString();
                    meetingEvent.Title         = meeting.MeetingSubject;
                    meetingEvent.StartDateTime = meeting.BeginningTime;
                    meetingEvent.EndDateTime   = meeting.EndTime;

                    var returnSuccess = new { isSuccess = true, eventdetail = meetingEvent };
                    return(Content(Newtonsoft.Json.JsonConvert.SerializeObject(returnSuccess), "application/json"));
                }
                else
                {
                    ModelState.AddModelError("", result.Message);
                }
            }
            var returnFail = new
            {
                isSuccess = false,
                // ModelState错误信息
                ModelStateErrors = ModelState.Where(x => x.Value.Errors.Count > 0)
                                   .ToDictionary(k => k.Key, k => k.Value.Errors.Select(e => e.ErrorMessage).ToArray())
            };

            return(Content(Newtonsoft.Json.JsonConvert.SerializeObject(returnFail), "application/json"));
        }