Example #1
0
        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());
        }
Example #2
0
 public Meeting(string code = null, MeetingDTO meeting = null)
 {
     InitializeComponent();
     Initialize(code, meeting);
     this.Loaded   += Meeting_Loaded;
     this.Unloaded += Meeting_Unloaded;
 }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #6
0
        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));
        }
Example #7
0
        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);
        }
Example #8
0
        private static void ProcessTwo()
        {
            MeetingDTO dto = new MeetingDTO
            {
            };

            // Mapper object DTO to entity
            Meeting meeting = dto.CreateEntity();
            //Continue process...
        }
Example #9
0
        private static void ProcessOne()
        {
            Meeting meeting = new Meeting
            {
            };

            // Mapper object entity to DTO
            MeetingDTO dto = meeting.CreateDTO();
            //Continue process...
        }
Example #10
0
        /// <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));
     }
 }
Example #12
0
        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));
            }
        }
Example #13
0
        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));
            }
        }
Example #14
0
        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() }));
        }
Example #16
0
        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;
            }
        }
Example #17
0
        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);
        }
Example #18
0
        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;
     }
 }
Example #21
0
        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;
            }));
        }
Example #22
0
        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;
            }));
        }
Example #23
0
 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;
            }
        }
Example #27
0
 public void Update(MeetingDTO meetingDTO)
 {
     throw new System.NotImplementedException();
 }
Example #28
0
        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());
        }
Example #29
0
        }                                      //根据语音音量变化判断是否在录音中

        /// <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();
        }
Example #30
0
        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));
        }