コード例 #1
0
        public virtual async Task <OperationResult> UpdateMeeting([FromBody] EditMeetingDto input)
        {
            try
            {
                var trace = new StringBuilder();
                var ac    = GetAdminProvider();
                //bool useLmsUserEmailForSearch = true;
                var useLmsUserEmailForSearch = !string.IsNullOrEmpty(input.ApiLtiParam.lis_person_contact_email_primary);
                var fb = new MeetingFolderBuilder((LmsCompany)LmsCompany, ac, useLmsUserEmailForSearch, LmsMeetingType.Meeting);
                // HACK: we support Meeting only.
                LmsCourseMeeting existed      = _meetingSetup.GetCourseMeeting(LmsCompany, input.ApiLtiParam.course_id, input.Id, LmsMeetingType.Meeting);
                string           meetingSco   = existed.GetMeetingScoId();
                bool             isNewMeeting = string.IsNullOrEmpty(meetingSco);
                if (isNewMeeting)
                {
                    return(OperationResult.Error("Meeting not found"));
                }

                var           acProvider = this.GetAdminProvider();
                ScoInfoResult scoResult  = acProvider.GetScoInfo(meetingSco);

                MeetingDTOInput meeting = input.Build(existed, scoResult.ScoInfo);

                //LmsUser lmsUser = IoC.Resolve<LmsUserModel>()
                //    .GetOneByUserIdAndCompanyLms(input.ApiLtiParam.lms_user_id, LmsCompany.Id).Value;

                //MeetingDTO dto = await _meetingSetup.BuildDto(
                //    lmsUser,
                //    input.ApiLtiParam,
                //    LmsCompany,
                //    meeting,
                //    null,
                //    //timeZone,
                //    trace);

                OperationResult ret = await _meetingSetup.SaveMeeting(
                    LmsCompany,
                    ac,
                    input.ApiLtiParam,
                    meeting,
                    trace,
                    fb);

                return(ret);
            }
            catch (Exception ex)
            {
                string errorMessage = GetOutputErrorMessage("UpdateMeeting", ex);
                return(OperationResult.Error(errorMessage));
            }
        }
コード例 #2
0
        public IActionResult UpdateMeeting(Guid meetingId, [FromBody] EditMeetingDto meetingDto)
        {
            if (meetingDto == null || meetingId != meetingDto.Id || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var meetingExists = _db.Meetings.Any(x => x.Id == meetingId);

            if (!meetingExists)
            {
                return(NotFound("جلسه یافت نشد."));
            }

            var meetingTitleExists = _db.Meetings.Any(x => x.Id != meetingDto.Id && x.Title == meetingDto.Title);

            if (meetingTitleExists)
            {
                ModelState.AddModelError("MeetingTitle", "عنوان قبلا استفاده شده است.");
                return(StatusCode(409, ModelState));
            }

            var meeting = _mapper.Map <Meeting>(meetingDto);

            try
            {
                _db.Meetings.Update(meeting);
                _db.SaveChanges();
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(StatusCode(500, ModelState));
            }

            return(NoContent());
        }