示例#1
0
        public ActionResult Index(int page = 1)
        {
            MeetingView viewObj = new MeetingView();

            try
            {
                if (Session["INSTNO"] == null || string.IsNullOrEmpty(Session["INSTNO"].ToString()))
                {
                    //Log.Error(ex + ex.StackTrace);
                    TempData["SessionExipred"] = "true";
                    //TempData["error"] = ex + ex.StackTrace;
                    //tran.Rollback();
                    return(RedirectToAction("Index", "Login", null));
                }
                UnitAMeeting queryCrit = new UnitAMeeting();
                queryCrit.INSTNO    = Session["INSTNO"].ToString();
                queryCrit.MType     = "1";
                viewObj.meetingList = ((List <UnitAMeeting>) new MysqlDBA <UnitAMeeting>(FunctionController.CONNSTR).getDataListNoKey(queryCrit)).OrderBy(p => p.MSerialNo).ToPagedList(page, defaulPageSize);
            }
            catch (Exception ex)
            {
                Log.Error(ex + ex.StackTrace);
                TempData["action"] = "Function";
                TempData["error"]  = ex + ex.StackTrace;
                //tran.Rollback();
                return(RedirectToAction("Index", "Meeting", null));
            }
            return(View(viewObj));
        }
        // GET: Meetings/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var meeting = await _context.Meetings
                          .Include(e => e.Speakers)
                          .AsNoTracking()
                          .FirstOrDefaultAsync(m => m.ID == id);

            if (meeting == null)
            {
                return(NotFound());
            }

            List <Speaker> speakersList = new List <Speaker>();
            var            speakers     = _context.Speakers.Select(s => s).Where(s => s.MeetingID == meeting.ID);

            foreach (Speaker s in speakers)
            {
                speakersList.Add(s);
            }

            MeetingView newMeeting = new MeetingView {
                ID = meeting.ID, Date = meeting.Date, Conducting = meeting.Conducting, OpeningHymn = meeting.OpeningHymn, Invocation = meeting.Invocation, SacramentHymn = meeting.SacramentHymn, SacramentPrayer = meeting.SacramentPrayer, ClosingHymn = meeting.ClosingHymn, Benediction = meeting.Benediction, Speakers = speakersList
            };

            return(View(newMeeting));
        }
        public async Task <IActionResult> Create([Bind("ID,Date,Conducting,OpeningHymn,Invocation,SacramentHymn,SacramentPrayer,ClosingHymn,Benediction,Speakers")] MeetingView meeting)
        {
            if (ModelState.IsValid)
            {
                Meeting newMeeting = new Meeting {
                    Date = meeting.Date, Conducting = meeting.Conducting, OpeningHymn = meeting.OpeningHymn, Invocation = meeting.Invocation, SacramentHymn = meeting.SacramentHymn, SacramentPrayer = meeting.SacramentPrayer, ClosingHymn = meeting.ClosingHymn, Benediction = meeting.Benediction
                };

                _context.Add(newMeeting);
                await _context.SaveChangesAsync();

                var speakers = meeting.Speakers.ToArray();

                foreach (Speaker s in speakers)
                {
                    s.MeetingID = newMeeting.ID;
                    _context.Speakers.Add(s);
                }

                await _context.SaveChangesAsync();

                //foreach(Speaker s in speakers)
                //{
                //    SpeakerEnrollment se = new SpeakerEnrollment {SpeakerID = s.ID, MeetingID = newMeeting.ID };
                //    _context.SpeakerEnrollments.Add(se);
                //}
                //await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(meeting));
        }
示例#4
0
        public async Task <IActionResult> ViewMeeting(int?comID, int?mtnID)
        {
            if (comID == null || mtnID == null)
            {
                return(NotFound());
            }
            MeetingView view = new MeetingView();

            view.Meeting         = _context.Meetings.Include(i => i.Files).Include(i => i.Comments).ThenInclude(i => i.Files).Include(i => i.Committee).Single(i => i.CommitteeID == comID && i.MeetingID == mtnID);
            view.PublicComments  = view.Meeting.Comments.Where(i => i.Private == false).ToList();
            view.PrivateComments = view.Meeting.Comments.Where(i => i.Private == true && i.ProfessorID == 1).ToList();

            var PublicFiles = view.Meeting.Files.Where(i => i.OwnerID == mtnID && i.Owned == Ownership.meetingPub).ToList();
            List <FilesAssosiation> publicFiles = new List <FilesAssosiation>();

            foreach (var file in PublicFiles)
            {
                publicFiles.Add(new FilesAssosiation()
                {
                    File   = file,
                    Author = _context.Professors.Single(i => i.Id == file.OwnerID).FullName,
                });
            }
            view.PublicFiles = publicFiles;

            var PrivateFiles = new List <FilesAssosiation>();

            view.PrivateFiles = PrivateFiles;

            ViewData["CommitteeID"] = view.Meeting.CommitteeID;
            ViewData["ProfessorID"] = 1;
            return(View(view));
        }
        public void AddMeetingView(string topic, int version, string state, string extraInfo)
        {
            MeetingView meetingView;

            meetingView = new MeetingView(topic, version, state, extraInfo);

            this.client_library.AddMeetingView(meetingView);
        }
示例#6
0
        private void dataGridViewEvents03_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (this.dataGridViewEvents03.SelectedRows.Count == 1 && this.dataGridViewEvents03.SelectedRows[0].Cells[0].Value != null)
            {
                int                  id        = Int32.Parse(this.dataGridViewEvents03.SelectedRows[0].Cells[0].Value.ToString());
                List <Meeting>       meetings  = controller.getMeeting(id);
                List <MeetingInvite> guestList = controller.getMeetingGuests(id);
                List <UserTask>      tasks     = controller.getMeetingTasks(id);

                _ = new MeetingView(this.userId, meetings.ElementAt(0), tasks, guestList).ShowDialog();
            }
        }
示例#7
0
 public ActionResult Add(MeetingView data)
 {
     if (Session["INSTNO"] == null || string.IsNullOrEmpty(Session["INSTNO"].ToString()))
     {
         TempData["SessionExipred"] = "true";
         return(RedirectToAction("Index", "Login", null));
     }
     try
     {
         MysqlDBA <UnitAMeeting> mysqlDBA = new MysqlDBA <UnitAMeeting>(FunctionController.CONNSTR);
         UnitAMeeting            alloc    = new UnitAMeeting();
         alloc.Year   = data.year;
         alloc.INSTNO = Session["INSTNO"].ToString();
         //-1代表新增,取新流水號
         if (data.MSerial == "-1" || string.IsNullOrEmpty(data.MSerial))
         {
             alloc.MSerialNo = Utility.Utility.getMeetingSerNo(mysqlDBA);
             alloc.MSerialNo++;
         }
         else
         {
             //不是-1表修改,帶原來流水號
             alloc.MSerialNo = int.Parse(data.MSerial);
         }
         alloc.MType = "2";
         string verifyDateResult = Utility.Utility.verifyDate(data.date);
         if (verifyDateResult == "DateError")
         {
             TempData["error"] = "日期格式錯誤,需為民國年/月月/日日 如:109/09/08"; return(RedirectToAction("Index", "CaseDiscussAdd", null));
         }
         alloc.MDate      = Utility.Utility.convertROC2UDTDateFormat(data.date);
         alloc.Topic      = data.topic;
         alloc.ProfCnt    = int.Parse(string.IsNullOrEmpty(data.profcnt) ? "0" : data.profcnt);
         alloc.AttendNum  = int.Parse(string.IsNullOrEmpty(data.attend) ? "0" :data.attend);
         alloc.ModifyDate = DateTime.Now.ToString("yyyy-MM-dd");
         alloc.CreateDate = DateTime.Parse(alloc.CreateDate == null ? DateTime.Now.ToString("yyyy-MM-dd") : alloc.CreateDate).ToString("yyyy-MM-dd");
         mysqlDBA.InsertOrUpdate(alloc);
         TempData["success"]      = "OK";
         TempData["parentreload"] = "OK";
         //alloc
     }
     catch (Exception ex)
     {
         Log.Error(ex + ex.StackTrace);
         TempData["action"] = "Function";
         TempData["error"]  = ex + ex.StackTrace;
         //tran.Rollback();
         return(RedirectToAction("Index", "CaseDiscussAdd", null));
     }
     return(RedirectToAction("Index", "CaseDiscussAdd"));
 }
示例#8
0
        private void SubscribeEvents()
        {
            _joinToken = EventAggregatorManager.Instance.EventAggregator.GetEvent <JoinMeetingEvent>().Subscribe((argument) =>
            {
                if (string.IsNullOrEmpty(MeetingNumber))
                {
                    JoinError = "请输入课堂号!";
                    return;
                }

                ulong uint_meeting_number;
                if (ulong.TryParse(MeetingNumber, out uint_meeting_number))
                {
                    SDKError joinError = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Join(new JoinParam()
                    {
                        userType    = SDKUserType.SDK_UT_APIUSER,
                        apiuserJoin = new JoinParam4APIUser()
                        {
                            userName           = "******",
                            meetingNumber      = uint_meeting_number,
                            psw                = string.Empty,
                            hDirectShareAppWnd = new HWNDDotNet()
                            {
                                value = 0
                            },
                            isAudioOff           = false,
                            isDirectShareDesktop = false,
                            isVideoOff           = false,
                            participantId        = string.Empty,
                            toke4enfrocelogin    = string.Empty,
                            webinarToken         = string.Empty,
                        }
                    });

                    if (joinError == SDKError.SDKERR_SUCCESS)
                    {
                        MeetingView meetingView = new MeetingView();
                        meetingView.Show();
                    }
                    else
                    {
                        MessageBox.Show(joinError.ToString());
                    }
                }
                else
                {
                    JoinError = "请输入有效的课堂号!";
                }
            }, Prism.Events.ThreadOption.PublisherThread, true, filter => { return(filter.Target == Target.JoinMeetingViewModel); });
        }
        public async Task <IActionResult> Edit(int id, [Bind("ID,Date,Conducting,OpeningHymn,Invocation,SacramentHymn,SacramentPrayer,ClosingHymn,Benediction,Speakers")] MeetingView meeting)
        {
            if (id != meeting.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    Meeting newMeeting = new Meeting {
                        ID = meeting.ID, Date = meeting.Date, Conducting = meeting.Conducting, OpeningHymn = meeting.OpeningHymn, Invocation = meeting.Invocation, SacramentHymn = meeting.SacramentHymn, SacramentPrayer = meeting.SacramentPrayer, ClosingHymn = meeting.ClosingHymn, Benediction = meeting.Benediction
                    };

                    _context.Update(newMeeting);
                    await _context.SaveChangesAsync();

                    //Remove Speakers
                    var removeSpeakers = _context.Speakers.Select(s => s).Where(s => s.MeetingID == id);
                    foreach (Speaker s in removeSpeakers)
                    {
                        _context.Remove(s);
                    }
                    await _context.SaveChangesAsync();

                    //Update Speakers
                    foreach (Speaker s in meeting.Speakers)
                    {
                        s.MeetingID = id;
                        _context.Speakers.Add(s);
                    }
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MeetingExists(meeting.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(meeting));
        }
        public void AddMeetingViewGossip(string topic, int version, string state, string extraInfo, List <string> client_list)
        {
            Tuple <string, int> gossip_tuple = new Tuple <string, int>(topic, version);

            if (!this.gossip_tuples.Contains(gossip_tuple))
            {
                this.gossip_tuples.Add(gossip_tuple);

                MeetingView meetingView;

                meetingView = new MeetingView(topic, version, state, extraInfo);

                this.client_library.AddMeetingView(meetingView);

                this.SendLogNMessages(topic, client_list);
            }
        }
示例#11
0
        private void InitData()
        {
            JoinCommand = new DelegateCommand <CourseModel>((course) =>
            {
                ulong uint_meeting_number;
                if (!ulong.TryParse(course.MeetingNumber, out uint_meeting_number))
                {
                    MessageBox.Show("无效的课堂号!");
                    return;
                }
                ;

                if (course.HostId == App.UserModel.UserName)
                {
                    CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onLoginRet((loginStatus, accountInfo) =>
                    {
                        switch (loginStatus)
                        {
                        case LOGINSTATUS.LOGIN_IDLE:
                            break;

                        case LOGINSTATUS.LOGIN_PROCESSING:
                            break;

                        case LOGINSTATUS.LOGIN_SUCCESS:

                            SDKError joinError = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Join(new JoinParam()
                            {
                                userType       = SDKUserType.SDK_UT_NORMALUSER,
                                normaluserJoin = new JoinParam4NormalUser()
                                {
                                    hDirectShareAppWnd = new HWNDDotNet()
                                    {
                                        value = 0
                                    },
                                    isAudioOff           = false,
                                    isDirectShareDesktop = false,
                                    isVideoOff           = false,
                                    meetingNumber        = uint_meeting_number,
                                    participantId        = string.Empty,
                                    psw          = string.Empty,
                                    userName     = "******",
                                    webinarToken = string.Empty,
                                }
                            });

                            if (joinError == SDKError.SDKERR_SUCCESS)
                            {
                                MeetingView meetingView = new MeetingView();
                                meetingView.Show();
                            }
                            else
                            {
                                MessageBox.Show(joinError.ToString());
                            }



                            break;

                        case LOGINSTATUS.LOGIN_FAILED:
                            break;

                        default:
                            break;
                        }
                    });

                    SDKError loginError = CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Login(new LoginParam()
                    {
                        loginType  = LoginType.LoginType_Email,
                        emailLogin = new LoginParam4Email()
                        {
                            bRememberMe = true,
                            password    = "******",
                            userName    = course.HostId,
                        }
                    });
                }
                else
                {
                    SDKError joinError = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Join(new JoinParam()
                    {
                        userType    = SDKUserType.SDK_UT_APIUSER,
                        apiuserJoin = new JoinParam4APIUser()
                        {
                            userName           = "******",
                            meetingNumber      = uint_meeting_number,
                            psw                = string.Empty,
                            hDirectShareAppWnd = new HWNDDotNet()
                            {
                                value = 0
                            },
                            isAudioOff           = false,
                            isDirectShareDesktop = false,
                            isVideoOff           = false,
                            participantId        = string.Empty,
                            toke4enfrocelogin    = string.Empty,
                            webinarToken         = string.Empty,
                        }
                    });

                    if (joinError == SDKError.SDKERR_SUCCESS)
                    {
                        MeetingView meetingView = new MeetingView();
                        meetingView.Show();
                    }
                    else
                    {
                        MessageBox.Show(joinError.ToString());
                    }
                }
            });

            CourseList = new ObservableCollection <CourseModel>();
            CourseList.Add(new CourseModel()
            {
                Duration      = "8:00 - 9:00",
                Name          = "语文",
                TeacherName   = "马云",
                MeetingNumber = "286683782",
                HostId        = "*****@*****.**",
                JoinCommand   = JoinCommand,
            });
            CourseList.Add(new CourseModel()
            {
                Duration      = "11:00 - 12:00",
                Name          = "数学",
                TeacherName   = "刘强东",
                MeetingNumber = "286683782",
                HostId        = "*****@*****.**",
                JoinCommand   = JoinCommand,
            });
            CourseList.Add(new CourseModel()
            {
                Duration      = "14:00 - 15:00",
                Name          = "生物",
                TeacherName   = "李海波",
                MeetingNumber = "286683782",
                HostId        = "*****@*****.**",
                JoinCommand   = JoinCommand,
            });
        }
示例#12
0
        private void SubscribeEvents()
        {
            _cardSelectedToken = EventAggregatorManager.Instance.EventAggregator.GetEvent <CardSelectedEvent>().Subscribe((argument) =>
            {
                switch (argument.Argument.Category)
                {
                case Category.MainCard:
                    IsMainCardSelected    = true;
                    IsHistoryCardSelected = false;
                    break;

                case Category.HistoryCard:
                    IsMainCardSelected    = false;
                    IsHistoryCardSelected = true;
                    break;
                }
            }, ThreadOption.PublisherThread, true, filter => { return(filter.Target == Target.MainViewModel); });


            _startClassToken = EventAggregatorManager.Instance.EventAggregator.GetEvent <StartClassEvent>().Subscribe((argument) =>
            {
                RegisterCallbacks();

                CustomMeetingUI();

                StartHook();


                StartParam startParam = new StartParam()
                {
                    userType = SDKUserType.SDK_UT_NORMALUSER,
                };

                //StartParam4APIUser apiuserStart = new StartParam4APIUser()
                //{
                //    userID = "704311",
                //    userToken = "Izi6atSDBiwtIqk3GQX9txjxjj8SZLIa6s7v",
                //    userName = "******",
                //    meetingNumber = 3398415968,

                //};

                StartParam4NormalUser normalUser = new StartParam4NormalUser()
                {
                    meetingNumber = 3398415968,
                };

                startParam.normaluserStart = normalUser;



                SDKError error = SdkWrap.Instacne.Start(startParam);

                if (error == SDKError.SDKERR_SUCCESS)
                {
                    EventAggregatorManager.Instance.EventAggregator.GetEvent <WindowHideEvent>().Publish(new EventArgument()
                    {
                        Target = Target.MainView,
                    });

                    _meetingView = new MeetingView();
                    _meetingView.Show();
                }
                else
                {
                    MessageBox.Show(error.ToString());
                }
            }, ThreadOption.PublisherThread, true, filter => { return(filter.Target == Target.MainViewModel); });
        }
示例#13
0
 private void buttonAddEvent_Click(object sender, EventArgs e)
 {
     _ = new MeetingView(this.userId).ShowDialog();
 }