public async Task <MeetingDTO> CreateMeeting(MeetingDTO _MeetingDTO) { var CourseID = _courseService.GetCourseIdByName(_MeetingDTO.CourseName); var TeacherID = _teacherService.GetTeacherIdByName(_MeetingDTO.TeacherFullName); if (!_teacherService.CheckLinkToCourse(CourseID, TeacherID)) { throw new InvalidExpressionException("Teacher not linked to Course"); } var meeting = new Meeting { MeetingLink = _MeetingDTO.MeetingLink, StartDateTime = _MeetingDTO.StartDateTime, TeacherID = TeacherID, Duration = _MeetingDTO.Duration, Description = _MeetingDTO.Description, CourseID = CourseID, Homework = _MeetingDTO.Homework, }; _context.Meetings.Add(meeting); await _context.SaveChangesAsync(); return(new MeetingDTO()); }
public Meeting(string code = null, MeetingDTO meeting = null) { InitializeComponent(); Initialize(code, meeting); this.Loaded += Meeting_Loaded; this.Unloaded += Meeting_Unloaded; }
public JsonResult UpdateMeeting(MeetingDTO meeting) { var provider = this.GetProvider(); var ret = this.SaveMeeting(Credentials, Model.custom_canvas_course_id, provider, meeting); var canEdit = Model.roles != null && (Model.roles.IndexOf("Instructor") > -1 || Model.roles.IndexOf("Administrator") > -1); ret.is_editable = canEdit; var registeredUser = provider.GetAllByEmail(HttpUtility.UrlEncode(Model.lis_person_contact_email_primary)); if (registeredUser.Values != null && registeredUser.Values.Any()) { var principalId = registeredUser.Values.First().PrincipalId; IEnumerable <PermissionInfo> hosts = provider.GetMeetingHosts(meeting.id).Values, participants = provider.GetMeetingParticipants(meeting.id).Values, presenters = provider.GetMeetingPresenters(meeting.id).Values; if ((hosts != null && hosts.Any(h => h.PrincipalId == principalId)) || (participants != null && participants.Any(h => h.PrincipalId == principalId)) || (presenters != null && presenters.Any(h => h.PrincipalId == principalId))) { ret.can_join = true; } } return(Json(ret)); }
public async Task <IActionResult> CreateMeeting([FromBody] MeetingWithLearnersDTO _MeetingLeanersDTO) { try { var meetingDTO = new MeetingDTO() { MeetingLink = _MeetingLeanersDTO.MeetingLink, StartDateTime = _MeetingLeanersDTO.StartDateTime, TeacherFullName = _MeetingLeanersDTO.TeacherFullName, Duration = _MeetingLeanersDTO.Duration, Description = _MeetingLeanersDTO.Description, CourseName = _MeetingLeanersDTO.CourseName, }; var meeting = await _meetingService.CreateMeeting(meetingDTO); foreach (var _LearnerID in _MeetingLeanersDTO.LearnersID) { var learnerMeeting = await _learnerMeetingService.JoinMeeting(_LearnerID, _meetingService.GetMeetingIdByLink(_MeetingLeanersDTO.MeetingLink)); } return(Ok("Meeting Created")); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IHttpActionResult> PostMeeting(Meeting meeting) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.Meetings.Add(meeting); await db.SaveChangesAsync(); // Load author name db.Entry(meeting).Reference(x => x.Participant).Load(); var dto = new MeetingDTO() { Id = meeting.Id, Subject = meeting.Subject, //Date = meeting.Date, //StartTime = meeting.StartTime, //FinishTime = meeting.FinishTime, ParticipantName = meeting.Participant.Name }; return(CreatedAtRoute("DefaultApi", new { id = meeting.Id }, dto)); }
public async Task <ActionResult <MeetingDTO> > GetMeeting(int id) { var meeting = await _meetingRepository.Find(x => x.ID == id).FirstOrDefaultAsync(); if (meeting == null) { return(NotFound()); } var dto = new MeetingDTO() { MeetingID = meeting.ID, Description = meeting.Description, Title = meeting.Title, FromDate = meeting.FromDate.ToUniversalTime(), ToDate = meeting.ToDate.ToUniversalTime(), Location = meeting.Location.Name, RepeatType = meeting.RepeatType, CreatorUid = meeting.Creator.ID, Attendees = meeting.Attendees.Select(x => x.ID).ToList(), Departments = meeting.Departments.Select(d => d.Name).ToList() }; return(Ok(dto)); }
private string GetAnnouncementMessage(LmsMeetingType meetingType, MeetingDTO meetingDto, string referrer, DateTime startDate) { string date = startDate.ToString("yyyy-MM-dd"); string time = startDate.ToString("h:mm tt", CultureInfo.InvariantCulture); switch (meetingType) { case LmsMeetingType.Meeting: case LmsMeetingType.VirtualClassroom: string pattern = "Meeting \"{0}\" will start {1} at {2}. Its duration will be {3}. You can join it in your <a href='{4}'>Adobe Connect Conference section</a>."; return(string.Format( pattern, meetingDto.Name, date, time, meetingDto.Duration, referrer ?? string.Empty)); case LmsMeetingType.OfficeHours: string message = string.Format("You can join the meeting \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty); if (!string.IsNullOrEmpty(meetingDto.OfficeHours)) { message = string.Format("Meeting time: {0}. ", meetingDto.OfficeHours) + message; } return(message); case LmsMeetingType.StudyGroup: return(string.Format("You can join the meeting \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty)); case LmsMeetingType.Seminar: return(string.Format("You can join the seminar \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty)); } return(string.Empty); }
private static void ProcessTwo() { MeetingDTO dto = new MeetingDTO { }; // Mapper object DTO to entity Meeting meeting = dto.CreateEntity(); //Continue process... }
private static void ProcessOne() { Meeting meeting = new Meeting { }; // Mapper object entity to DTO MeetingDTO dto = meeting.CreateDTO(); //Continue process... }
/// <summary> /// Add a meeting to database. /// </summary> /// <param name="meeting">MeetingDTO object.</param> /// <returns>Returns true if successfull.</returns> public bool AddMeeting(MeetingDTO meeting) { if (_db.Meetings.Any(m => m.DateTime == meeting.DateTime)) { return(false); } _db.Meetings.Add(new Meeting(meeting)); return(SaveChanges()); }
public IHttpActionResult PostMeeting(MeetingDTO meeting) { if (ModelState.IsValid) { meeting.Id = _meetingBLL.InsertMeeting(meeting, _appicationContext.GetUserId()); return(Ok(meeting)); } else { return(BadRequest(ModelState)); } }
public async Task <IActionResult> CreateMeeting([FromBody] MeetingDTO _MeetingDTO) { try { var meeting = await _meetingService.CreateMeeting(_MeetingDTO); return(Ok("Meeting Created")); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IActionResult> UpdateMeeting([FromBody] MeetingDTO _MeetingDTO, [FromHeader] int _MeetingID) { try { var meeting = await _meetingService.UpdateMeeting(_MeetingDTO, _MeetingID); return(Ok("Meeting Updated")); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <MeetingDTO> UpdateMeeting(MeetingDTO _MeetingDTO, int _MeetingID) { var meeting = _context.Meetings.Where(x => x.MeetingID == _MeetingID).FirstOrDefault(); meeting.MeetingLink = _MeetingDTO.MeetingLink; meeting.StartDateTime = _MeetingDTO.StartDateTime; meeting.Duration = _MeetingDTO.Duration; meeting.Description = _MeetingDTO.Description; meeting.Homework = _MeetingDTO.Homework; await _context.SaveChangesAsync(); return(new MeetingDTO()); }
public ActionResult AddMeetingSubmit(DateTime dateTime, string name) { MeetingDTO meeting = new MeetingDTO { DateTime = dateTime, Name = name }; _serviceClient.AddMeeting(meeting); DateTime monday = GetMonday(dateTime); return(RedirectToAction("Index", "Home", new { weekStartDate = monday.ToString() })); }
private void CreateAnnouncement( LmsMeetingType meetingType, ILmsLicense lmsCompany, LtiParamDTO param, MeetingDTO meetingDto, DateTime startDate) { if (!lmsCompany.ShowAnnouncements.GetValueOrDefault() || string.IsNullOrEmpty(param.context_title)) { return; } var announcementTitle = string.Format( "A new {0} room was created for course {1}", meetingNames[meetingType], param.context_title); string announcementMessage = GetAnnouncementMessage(meetingType, meetingDto, param.referer, startDate); switch (lmsCompany.LmsProviderId) { case (int)LmsProviderEnum.Canvas: var lmsUser = LmsUserModel.GetOneByUserIdAndCompanyLms(param.lms_user_id, lmsCompany.Id).Value; var token = UsersSetup.IsTeacher(param, lmsCompany) && !String.IsNullOrEmpty(lmsUser.Token) ? lmsUser.Token : lmsCompany.AdminUser.Return(a => a.Token, string.Empty); CanvasApi.CreateAnnouncement( lmsCompany.LmsDomain, token, param.course_id, announcementTitle, announcementMessage); break; case (int)LmsProviderEnum.Blackboard: BlackboardApi.CreateAnnouncement(param.course_id.ToString(), param.user_id, lmsCompany.GetLMSSettings(Settings), announcementTitle, announcementMessage); break; case (int)LmsProviderEnum.AgilixBuzz: // string error; // this.dlapApi.CreateAnnouncement( // credentials, // param.course_id, // announcementTitle, // announcementMessage, // out error); break; } }
public void AddMeeting() { var mockContext = SetupMockContext(); var service = new BookingService(mockContext.Object); MeetingDTO meeting = new MeetingDTO { Name = "Customer meeting", DateTime = DateTime.Now }; bool result = service.AddMeeting(meeting); Assert.IsTrue(result); }
private List <MemberDTO> MapMeetingMembers(Meeting meeting, MeetingDTO meetingDTO) { var result = new List <MemberDTO>(); if (meeting.MeetingsMembers != null) { foreach (var member in meeting.MeetingsMembers) { result.Add(new MemberDTO() { Id = member.MemberId, Name = member.Member.Name, Email = member.Member.Email }); } } return(result); }
public IHttpActionResult PutMeeting(MeetingDTO meeting) { try { if (ModelState.IsValid) { meeting.Id = _meetingBLL.UpdateMeeting(meeting, _appicationContext.GetUserId()); return(Ok(meeting)); } else { return(BadRequest(ModelState)); } } catch (Exception) { throw; } }
public MeetingDTO GetById(int id) { try { MeetingDTO meeting = new MeetingDTO(); Mapper.Map <Meeting, MeetingDTO>(_repository .Query() .Include(c => c.CouncilType) .Include(c => c.Round) .Include(c => c.MeetingAttendances) .Include(c => c.AgendaItems.Select(d => d.AgendaDetails)) .SelectQueryable() .Where(c => c.Id == id).FirstOrDefault(), meeting); return(meeting); } catch (Exception ex) { throw ex; } }
public async Task <IEnumerable <MeetingDTO> > GetAll() { var meetings = await _meetingRepository.GetAll(); return(meetings.Select(x => { var dto = new MeetingDTO(); dto.MeetingID = x.ID; dto.Description = x.Description; dto.Title = x.Title; dto.FromDate = x.FromDate.ToUniversalTime(); dto.ToDate = x.ToDate.ToUniversalTime(); dto.Location = x.Location.Name; dto.RepeatType = x.RepeatType; dto.CreatorUid = x.Creator.ID; dto.Attendees = x.Attendees.Select(x => x.ID).ToList(); dto.Departments = x.Departments.Select(d => d.Name).ToList(); return dto; })); }
public async Task <IEnumerable <MeetingDTO> > GetByUserIdAsync(int id) { var meetings = await _meetingRepository.Find(m => m.Attendees.Where(u => u.ID == id).Count() > 0).ToListAsync(); return(meetings.Select(x => { var dto = new MeetingDTO(); dto.MeetingID = x.ID; dto.Description = x.Description; dto.Title = x.Title; dto.FromDate = x.FromDate; dto.ToDate = x.ToDate; dto.Location = x.Location.Name; dto.RepeatType = x.RepeatType; dto.CreatorUid = x.Creator.ID; dto.Attendees = x.Attendees.Select(x => x.ID).ToList(); dto.Departments = x.Departments.Select(d => d.Name).ToList(); return dto; })); }
public Task Add(MeetingDTO meetingDTO) { throw new System.NotImplementedException(); }
public void ThenTheNewMeetingShouldBeOpenForRegistration() { using (var uow = container.Resolve<IAmAUnitOfWorkFactory>().CreateUnitOfWork()) { var results = uow.Query<MeetingDTO>() .Where(meeting => meeting.Id == scheduleMeetingCommand.MeetingId) .Customize(x => x.WaitForNonStaleResults()) .ToList(); scheduledMeeting = results.First(); Assert.That(scheduledMeeting.State == MeetingState.Live); } }
public int InsertMeeting(MeetingDTO objDTO, string userId) { Meeting meetingObject = new Meeting(); objDTO.MeetingIndexNumber = _repository.Query().SelectQueryable().Max(c => c.MeetingIndexNumber) + 1; objDTO.MeetingNumber = _repository.Query().SelectQueryable().Where(c => c.MeetingDate.Year == objDTO.MeetingDate.Year).Any() ? _repository.Query().SelectQueryable().Where(c => c.MeetingDate.Year == objDTO.MeetingDate.Year).Max(c => c.MeetingNumber) + 1 : 1; try { _unitOfWork.BeginTransaction(); objDTO.RoundId = _roundRepository.Query().SelectQueryable().Where(c => c.CouncilTypeId == objDTO.CouncilTypeId && c.IsCurrent).FirstOrDefault().Id; Mapper.Map <MeetingDTO, Meeting>(objDTO, meetingObject); //operationObject.RefernceNo = GenerateRefernceNo(operationObject); objDTO.MeetingAttendances.ToList().ForEach(c => { MeetingAttendance externalattendence = new MeetingAttendance(); Mapper.Map <MeetingAttendanceDTO, MeetingAttendance>(c, externalattendence); externalattendence.MemberType = (int)EnumMemberType.External; meetingObject.MeetingAttendances.Add(externalattendence); }); //meetingObject.MeetingAttendances.ToList().ForEach(c => c.MemberType = (int)EnumMemberType.External); objDTO.SelectedCouncilMembers.ToList().ForEach(c => { var councilMember = _councilMemberBLL.GetById(c); meetingObject.MeetingAttendances.Add(new MeetingAttendance() { CouncilMemberId = councilMember.Id, Name = councilMember.Name, MemberType = (int)EnumMemberType.CouncilMember, Email = councilMember.Email, }); }); objDTO.SelectedEmployees.ToList().ForEach(c => { var emp = _employeeService.GetById(c.Id); meetingObject.MeetingAttendances.Add(new MeetingAttendance() { Name = c.Name, EmployeId = c.Id.ToString(), DepartmentId = c.DepartmentId, DepartmentName = c.DepartmentName, MemberType = (int)EnumMemberType.Employee, Email = emp.Email, }); }); base.Insert(meetingObject); if (_unitOfWork.SaveChanges() > 0) { objDTO.AgendaItems.Where(c => c.AttachementName != "").ToList().ForEach(c => { meetingObject .AgendaItems .Where(d => d.AgendaNumber == c.AgendaNumber).FirstOrDefault() .AttachementName = CopyAttachment( userId, c.AttachementName, meetingObject.Id, meetingObject.AgendaItems.Where(d => d.AgendaNumber == c.AgendaNumber).FirstOrDefault().Id , null); var adendaItemId = meetingObject.AgendaItems.Where(item => item.AgendaNumber == c.AgendaNumber).FirstOrDefault().Id; c.AgendaDetails.ToList().ForEach(d => { meetingObject.AgendaItems.Where(f => f.Id == adendaItemId).SelectMany(y => y.AgendaDetails).Where(det => det.TreeNumber == d.TreeNumber).FirstOrDefault() .AttachementName = CopyAttachment( userId, d.AttachementName, meetingObject.Id, adendaItemId, meetingObject.AgendaItems.Where(f => f.Id == adendaItemId).SelectMany(y => y.AgendaDetails).Where(det => det.TreeNumber == d.TreeNumber).FirstOrDefault().Id); }); _unitOfWork.SaveChanges(); }); } _unitOfWork.Commit(); return(meetingObject.Id); } catch (Exception ex) { _unitOfWork.Rollback(); throw ex; } }
public int UpdateMeeting(MeetingDTO objDTO, string userId) { Meeting meetingObject = new Meeting(); objDTO.MeetingNumber = _repository.Query().SelectQueryable().Where(c => c.MeetingDate.Year == objDTO.MeetingDate.Year && c.Id != objDTO.Id).Any() ? _repository.Query().SelectQueryable().Where(c => c.MeetingDate.Year == objDTO.MeetingDate.Year && c.Id != objDTO.Id).Max(c => c.MeetingNumber) + 1 : 1; try { _unitOfWork.BeginTransaction(); meetingObject = _repository .Query() .SelectQueryable().Where(c => c.Id == objDTO.Id).FirstOrDefault(); objDTO.RoundId = _roundRepository.Query().SelectQueryable().Where(c => c.CouncilTypeId == objDTO.CouncilTypeId && c.IsCurrent).FirstOrDefault().Id; var meetingCounsilmembers = _meetingAttendanceRepository.Query().SelectQueryable().Where(c => c.MeetingId == meetingObject.Id && c.MemberType == (int)EnumMemberType.CouncilMember).Select(c => new { key = c.Id, value = c.CouncilMemberId.Value }).ToList(); foreach (var member in meetingCounsilmembers) { if (!objDTO.SelectedCouncilMembers.ToList().Contains(member.value)) { _meetingAttendanceRepository.Delete(member.key); } } _unitOfWork.SaveChanges(); var meetingEmployeeMembers = _meetingAttendanceRepository.Query().SelectQueryable().Where(c => c.MeetingId == meetingObject.Id && c.MemberType == (int)EnumMemberType.Employee).Select(c => new { key = c.Id, value = c.EmployeId }).ToList(); foreach (var member in meetingEmployeeMembers) { if (!objDTO.SelectedEmployees.Select(c => c.Id).ToList().Contains(Convert.ToInt32(member.value))) { _meetingAttendanceRepository.Delete(member.key); } } var ExternalMembers = _meetingAttendanceRepository.Query().SelectQueryable().Where(c => c.MeetingId == meetingObject.Id && c.MemberType == (int)EnumMemberType.External).Select(c => c.Id).ToList(); foreach (var member in ExternalMembers) { if (!objDTO.MeetingAttendances.Select(c => c.Id).ToList().Contains(member)) { _meetingAttendanceRepository.Delete(member); } } _unitOfWork.SaveChanges(); objDTO.MeetingAttendances.ToList().ForEach(c => { var temp = new MeetingAttendance(); Mapper.Map <MeetingAttendanceDTO, MeetingAttendance>(c, temp); temp.MeetingId = meetingObject.Id; temp.MemberType = (int)EnumMemberType.External; if (c.Id != 0) { //_meetingAttendanceRepository.Update(temp); } else { _meetingAttendanceRepository.Insert(temp); } }); _unitOfWork.SaveChanges(); objDTO.SelectedCouncilMembers.ToList().ForEach(c => { if (!meetingCounsilmembers.Select(cm => cm.value).Contains(c)) { var councilMember = _councilMemberBLL.GetById(c); meetingObject.MeetingAttendances.Add(new MeetingAttendance() { CouncilMemberId = councilMember.Id, Name = councilMember.Name, MemberType = (int)EnumMemberType.CouncilMember }); } }); objDTO.SelectedEmployees.ToList().ForEach(c => { if (!meetingEmployeeMembers.Select(emp => Convert.ToInt32(emp.value)).Contains(c.Id)) { meetingObject.MeetingAttendances.Add(new MeetingAttendance() { Name = c.Name, EmployeId = c.Id.ToString(), DepartmentId = c.DepartmentId, DepartmentName = c.DepartmentName, MemberType = (int)EnumMemberType.Employee }); } }); _unitOfWork.SaveChanges(); Mapper.Map <MeetingDTO, Meeting>(objDTO, meetingObject); meetingObject.TrackingState = TrackableEntities.TrackingState.Modified; foreach (var agendaItem in meetingObject.AgendaItems) { if (agendaItem.Id == 0) { agendaItem.TrackingState = TrackableEntities.TrackingState.Added; } else { agendaItem.TrackingState = TrackableEntities.TrackingState.Modified; } if (agendaItem.AgendaDetails.Any()) { foreach (var agendaDetail in agendaItem.AgendaDetails) { if (agendaDetail.Id == 0) { agendaDetail.TrackingState = TrackableEntities.TrackingState.Added; } else { agendaDetail.TrackingState = TrackableEntities.TrackingState.Modified; } } } } meetingObject.MeetingAttendances.ToList().ForEach(c => c.TrackingState = TrackableEntities.TrackingState.Modified); meetingObject.Round = _roundRepository.Query().SelectQueryable().Where(c => c.CouncilTypeId == objDTO.CouncilTypeId && c.IsCurrent).FirstOrDefault(); base.InsertOrUpdateGraph(meetingObject); if (_unitOfWork.SaveChanges() > 0) { objDTO.AgendaItems.Where(c => c.AttachementName != "").ToList().ForEach(c => { var agendanewfile = CopyAttachment( userId, c.AttachementName, meetingObject.Id, meetingObject.AgendaItems.Where(d => d.AgendaNumber == c.AgendaNumber).FirstOrDefault().Id , null); if (!String.IsNullOrEmpty(agendanewfile)) { meetingObject .AgendaItems .Where(d => d.AgendaNumber == c.AgendaNumber).FirstOrDefault() .AttachementName = agendanewfile; } var adendaItemId = meetingObject.AgendaItems.Where(item => item.AgendaNumber == c.AgendaNumber).FirstOrDefault().Id; c.AgendaDetails.ToList().ForEach(d => { var returnedVal = CopyAttachment( userId, d.AttachementName, meetingObject.Id, adendaItemId, meetingObject.AgendaItems.Where(f => f.Id == adendaItemId).SelectMany(y => y.AgendaDetails).Where(det => det.TreeNumber == d.TreeNumber).FirstOrDefault().Id); if (!String.IsNullOrEmpty(returnedVal)) { meetingObject.AgendaItems.Where(f => f.Id == adendaItemId).SelectMany(y => y.AgendaDetails).Where(det => det.TreeNumber == d.TreeNumber).FirstOrDefault() .AttachementName = returnedVal; } }); _unitOfWork.SaveChanges(); }); } _unitOfWork.Commit(); return(meetingObject.Id); } catch (Exception ex) { _unitOfWork.Rollback(); throw ex; } }
public void Update(MeetingDTO meetingDTO) { throw new System.NotImplementedException(); }
public async Task <IActionResult> CreateNew([Required][FromBody] MeetingDTO request) { if (request.ReadAccess > request.JoinAccess) { return(BadRequest("Read access must not be higher than join access")); } if (request.ExpectedDuration != null && (request.ExpectedDuration.Value < TimeSpan.FromMinutes(1) || request.ExpectedDuration.Value > TimeSpan.FromMinutes(650))) { return(BadRequest($"Invalid expected duration, got value: {request.ExpectedDuration}")); } if (request.JoinGracePeriod < TimeSpan.FromSeconds(0) || request.JoinGracePeriod > TimeSpan.FromMinutes(200)) { return(BadRequest("Invalid join grace period")); } if (request.StartsAt <= DateTime.UtcNow + TimeSpan.FromMinutes(1)) { return(BadRequest("Can't create a meeting that would have started already")); } var access = GetCurrentUserAccess(); if (request.JoinAccess > access) { return(BadRequest("Can't create a meeting you couldn't join due to join restriction")); } if (await database.Meetings.FirstOrDefaultAsync(m => m.Name == request.Name) != null) { return(BadRequest("A meeting with that name already exists")); } var user = HttpContext.AuthenticatedUserOrThrow(); var meeting = new Meeting() { Name = request.Name, Description = request.Description, ReadAccess = request.ReadAccess, JoinAccess = request.JoinAccess, JoinGracePeriod = request.JoinGracePeriod, StartsAt = request.StartsAt, ExpectedDuration = request.ExpectedDuration, OwnerId = user.Id, ChairmanId = user.Id, }; await database.Meetings.AddAsync(meeting); await database.ActionLogEntries.AddAsync(new ActionLogEntry() { Message = $"New meeting ({meeting.Name}) created, scheduled to start at {meeting.StartsAt}", PerformedById = user.Id, }); await database.SaveChangesAsync(); logger.LogInformation("New meeting ({Id}) created by {Email}", meeting.Id, user.Email); return(Ok()); }
} //根据语音音量变化判断是否在录音中 /// <summary> /// 加载会议 /// </summary> public void Loading(string code = null, MeetingDTO meeting = null) { //meeting if (!meeting.IsNull()) { Meeting = meeting; } else if (!code.IsEmpty()) { var result = PlugCoreHelper.ApiUrl.Meeting.MeetingGetCode.GetResult <MeetingDTO, MeetingEditInput>(new MeetingEditInput() { Num = code }); if (result.Code == EnumCode.成功) { Meeting = meeting; } } else if (Meeting.IsNull()) { //else if(Meeting.IsNull()) 全局会议保持 var result = PlugCoreHelper.ApiUrl.Meeting.MeetingInsert.GetResult <MeetingDTO, MeetingEditInput>(new MeetingEditInput() { Id = Guid.Empty, Name = culture.Lang.metName, Descript = culture.Lang.metDescript, Setting = JsonHelper.Serialize(Setting) }); if (result.Code == EnumCode.成功) { Meeting = result.Obj; } } if (Meeting.IsNull() || (!Meeting.IsNull() && (Meeting.Id.IsEmpty() || Meeting.Num.IsEmpty()))) { throw new DbxException(EnumCode.初始失败); } //device Microphones = RecordingHelper.Microphones(); Microphone = Microphones.FirstOrDefault(); //二维码 var codeBitmap = QrCodeHelper.GetCode(string.Format(EngineHelper.Configuration.Settings.GetValue("meetingViewUrl"), Meeting.Id)); MeetingCode = WpfHelper.BitmapToSource(codeBitmap); //本地数据库 var meetingDatabasePath = MeetingHelper.GetMeetingDatabaseFile(Meeting.Id); if (!File.Exists(meetingDatabasePath)) { FilesHelper.CopyFile(MeetingHelper.TemplateDatabaseFilePath, meetingDatabasePath); } //记录字体 RecordFontSize = Setting.FontSize; //同步任务 SyncTask(); //同步状态 SyncUI(EnumTaskStatus.Default); SyncUI(EnumTaskStatus.Init); //远程服务同步任务 AppHelper.ServerObj.MeetingSyncTask(); }
private MeetingDTO SaveMeeting(CanvasConnectCredentials credentials, int courseId, AdobeConnectProvider provider, MeetingDTO meetingDTO) { var meeting = this.CanvasCourseMeetingModel.GetOneByCourseId(credentials.Id, courseId).Value ?? new CanvasCourseMeeting() { CanvasConnectCredentialsId = credentials.Id, CourseId = courseId }; var meetingItem = new MeetingUpdateItem() { ScoId = meeting.ScoId }; //meetingItem.DateBegin = DateTime.Now.ToString(); //meetingItem.DateEnd = DateTime.Now.AddDays(1).ToString(); meetingItem.Name = String.Format("{0} [{1}] {2}", DateTime.Now.ToString("MM.dd.yy "), Model.context_label, meetingDTO.name); meetingItem.Description = meetingDTO.summary; meetingItem.UrlPath = meetingDTO.ac_room_url; DateTime startDate, startTime, dateBegin; /* * if (DateTime.TryParse(meetingDTO.start_date, out startDate) * && DateTime.TryParse(meetingDTO.start_time, out startTime)) */ if (meetingDTO.start_time.IndexOf(":") == 1) { meetingDTO.start_time = "0" + meetingDTO.start_time; } var oldStartDate = meetingDTO.start_date; if (meetingDTO.start_date != null) { meetingDTO.start_date = meetingDTO.start_date.Substring(6, 4) + "-" + meetingDTO.start_date.Substring(0, 5); } if (DateTime.TryParse(meetingDTO.start_date + " " + meetingDTO.start_time, out dateBegin)) { /* * var dateBegin = new DateTime( * startDate.Year, * startDate.Month, * startDate.Day, * startTime.Hour, * startTime.Minute, * startTime.Second); */ meetingItem.DateBegin = dateBegin.ToString("yyyy-MM-ddTHH:mm:ssZ"); TimeSpan duration; if (TimeSpan.TryParse(meetingDTO.duration, out duration)) { meetingItem.DateEnd = dateBegin.AddMinutes((int)duration.TotalMinutes).ToString("yyyy-MM-ddTHH:mm:ssZ"); } } meetingItem.FolderId = credentials.ACScoId; meetingItem.Language = "en"; meetingItem.Type = ScoType.meeting; meetingItem.SourceScoId = meetingDTO.template; var result = meeting.ScoId != null? provider.UpdateSco(meetingItem) : provider.CreateSco(meetingItem); if (result.ScoInfo != null) { meetingDTO.id = result.ScoInfo.ScoId; } if (meetingItem.ScoId == null && result.ScoInfo != null) { meeting.ScoId = result.ScoInfo.ScoId; this.CanvasCourseMeetingModel.RegisterSave(meeting); var users = CourseAPI.GetUsersForCourse(Credentials.CanvasDomain, credentials.CanvasToken, courseId); this.SetDefaultUsers(users, provider, result.ScoInfo.ScoId); if (Credentials.CanvasDomain.IndexOf("canvas") > -1 && !String.IsNullOrEmpty(Model.context_title)) { var rets = CourseAPI.CreateAnnouncement( Credentials.CanvasDomain, Credentials.CanvasToken, Model.custom_canvas_course_id, String.Format("A new Adobe Connect room was created for course {0}", Model.context_title), String.Format("Meeting \"{0}\" will start {1} at {2}. It's duration will be {3}. You can join it in your Adobe Connect Conference section.", meetingDTO.name, oldStartDate, meetingDTO.start_time, meetingDTO.duration)); } } if (result.ScoInfo != null) { var specialPermissionId = meetingDTO.access_level == "denied" ? SpecialPermissionId.denied : (meetingDTO.access_level == "view_hidden" ? SpecialPermissionId.view_hidden : SpecialPermissionId.remove); provider.UpdatePublicAccessPermissions(result.ScoInfo.ScoId, specialPermissionId); var permission = provider.GetScoPublicAccessPermissions(result.ScoInfo.ScoId).Values; return(this.GetMeetingDTOByScoInfo(result.ScoInfo, permission)); } else { return(new MeetingDTO() { id = "0", connect_server = Credentials.ACDomain }); } }
public string MeetingGetAllBy(string ui, string f, string t) { int userId = -1; try { userId = Int32.Parse(ui); } catch { } DateTime?from = null; try { from = DateTime.ParseExact(f, "dd/MM/yyyy", CultureInfo.InvariantCulture); } catch { } DateTime?to = null; try { to = DateTime.ParseExact(t, "dd/MM/yyyy", CultureInfo.InvariantCulture); } catch { } var listMeeting = ViewActivitiesBLL.MeetingGetAllBy(userId, from, to); var listMeetingDTO = new List <MeetingDTO>(); foreach (var meeting in listMeeting) { var updateTime = ""; try { updateTime = meeting.UpdateTime.Value.ToString("dd/MM/yyyy"); } catch { } var dateMeeting = ""; try { dateMeeting = meeting.DateMeeting.ToString("dd/MM/yyyy"); } catch { } var salesName = ""; try { salesName = meeting.User.FullName.ToString(); } catch { } var agencyContact = ViewActivitiesBLL.AgencyContactGetById(meeting.ObjectId); var agencyName = ""; try { agencyName = agencyContact.Agency.Name; } catch { } var meetingDTO = new MeetingDTO() { UpdateTime = updateTime, DateMeeting = dateMeeting, SalesName = salesName, MeetWith = agencyContact.Name, Position = agencyContact.Position, BelongToAgency = agencyName, Note = meeting.Note, }; listMeetingDTO.Add(meetingDTO); } Dispose(); return(JsonConvert.SerializeObject(listMeetingDTO)); }