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)); } }
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()); }