예제 #1
0
        private void imgButtonView_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            string[] checkit = imgButtonView.ImageUrl.Split('/');
            Functions F = new Functions();
            Transitioning = true;
            switch(checkit[1])
            {
                case "Tab_B_ViewRec.jpg":
                    TreeNode XNode = tv.GetNodeFromIndex(tv.SelectedNodeIndex);

                    string seeText = XNode.Type;
                    if(XNode.Type != "Recording")
                    {
                        return;
                    }
                    if(XNode.Type == "Recording")
                    {
                        string[] sarray = XNode.NodeData.Split(':');
                        int RecordingId = Convert.ToInt32(sarray[0],10);
                        Recording Rec = F.GetRecording(RecordingId);
                        if(Rec.Description == "")
                        {
                            return;
                        }
                        VideoStorageServer VSS =  F.GetVideoStorageServer(Rec.VideoStorageServerID);
                        string sRecording = "";
                        VideoStorageServerType VST = VSS.CurrentVideoStorageServerType;
                        if(VSS.ControlAddress != "Not Assigned")
                        {
                            if(VST.Description == "Windows Media Server")
                                sRecording = VST.StreamHeader + VSS.ControlAddress + "/" + VSS.StorageDirectory + "/" + Rec.Description;
                            else
                                sRecording = VST.StreamHeader + VSS.ControlAddress + "/" + Rec.Description;
                        }
                        else
                            sRecording = Rec.Description;
                        string NodeData = Rec.ID + "~" + sRecording + "~" + Rec.DisplayName + "~" + "RECORDING";
                        txtRecording.Value = NodeData;
                    }

                    break;

                case "Tab_B_ViewSes.jpg":
                    TreeNode XNode2 = tv.GetNodeFromIndex(tv.SelectedNodeIndex);

                    string seeText2 = XNode2.Type;
                    if(XNode2.Type != "RecordingSession")
                    {
                        return;
                    }

                    string[] sarray2 = XNode2.NodeData.Split(':');

                    string SessionId = Convert.ToString(sarray2[0]);

                    string[] sRecordingIds = new string[XNode2.Nodes.Count];
                    int nCount = 0;
                    while(nCount < XNode2.Nodes.Count)
                    {

                        TreeNode YNode = XNode2.Nodes[nCount];

                        if(YNode.Type != "Recording")
                            goto SkipIt;
                        else if (YNode == null)
                            break;

                        sRecordingIds[nCount] = YNode.NodeData;
                        nCount++;

                    SkipIt:{}
                    }

                    // Recordings AR = F.GetSessionById(SessionId);
                    Recordings AR = new Recordings();
                    for(int p=0; p<nCount;p++)
                    {
                        string[] sarray3 = sRecordingIds[p].Split(':');
                        int RecordingId = Convert.ToInt32(sarray3[0],10);
                        Recording Rec = F.GetRecording(RecordingId);
                        AR.Add(Rec);
                    }
                    int GlobalPlayers = Convert.ToInt32(NumPlayers.Value);

                    if((6 - GlobalPlayers) < AR.Count)
                    {
                        txtAlert.Value = "Action Aborted: Not enough Players to view all Session's Recordings. You must remove some of the current view windows before viewing this entire session.";
                        return;
                    }
                    else if(AR.Count > 6)
                    {
                        txtAlert.Value = "Action Aborted: Not enough Players to view all Session's Recordings. You must manually add the recordings you wish to view from this session.";
                        return;
                    }
                    string NodeData2 = "";
                    bool DidOnce = false;
                    foreach(Recording r in AR)
                    {
                        if(DidOnce == false)
                        {
                            DidOnce=true;
                        }
                        else
                            NodeData2 += "~";
                        VideoStorageServer VSS =  F.GetVideoStorageServer(r.VideoStorageServerID);
                        string sRecording = "";
                        if(VSS.ControlAddress != "Not Assigned")
                        {
                            if(VSS.StorageDirectory != "")
                                sRecording = "mms://" + VSS.ControlAddress + "/" + VSS.StorageDirectory + "/" + r.Description;
                            else
                                sRecording = "mms://" + VSS.ControlAddress + "/" + r.Description;
                        }
                        else
                            sRecording = r.Description;
                        NodeData2 += r.ID + "*" + sRecording + "*" + r.DisplayName + "*" + "*" + "SESSION";

                    }
                    if(NodeData2 != "")
                        txtRecording.Value = NodeData2;

                    break;
                case "Tab_B_ViewCam.jpg":
                    TreeNode NCam = CTV.GetNodeFromIndex(CTV.SelectedNodeIndex);

                    string seeText3 = NCam.Type;
                    if(NCam.Type != "Camera")
                    {
                        return;
                    }
                    int EncoderId = 0;
                    try
                    {
                        EncoderId = Convert.ToInt32(NCam.NodeData,10);
                    }
                    catch(Exception Err)
                    {
                        txtAlert.Value = "Unable to aquire Encoder Identification";
                        return;
                    }
                    OysterClassLibrary.StreamingEncoder SE = OSystem.GetStreamingEncoderById(EncoderId);
                    string sURL = "";

                switch(SE.CurrentStreamingEncoderType.Description)
                {
            //					case "":
            //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
            //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
            //						break;
            //					case "rstp://":
            //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
            //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
            //						break;
            //					case @"http://":
            //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
            //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
            //						break;
                    case "VBrick":
                        sURL = SE.StreamingHeader + "ip=" + SE.StreamingAddress + "&port=" + SE.StreamingPort;

                        break;
                    case "VBrick Sys":
                        sURL = SE.StreamingHeader + "ip=" + SE.StreamingAddress + "&port=" + SE.StreamingPort;
                        break;
                    case "Oyster Encoder":
                        //sURL = "Unreal`" + SE.ControlAddress + ":" + SE.StreamingPort + "`" + SE.StreamingAddress;
                        sURL = "Unreal`" + SE.StreamingAddress + ":" + "5119" + "`" + SE.ControlAddress;

                        break;
                    default:
                        string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                        sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                        break;
                }

                    string CameraData = SE.ID + "~" + sURL + "~" + SE.Description + "~" + "CAMERA";
                    txtRecording.Value = CameraData;
                    break;
                case "Tab_B_ViewSce.jpg":

                    TreeNode NScene = CTV.GetNodeFromIndex(CTV.SelectedNodeIndex);

                    string seeText4 = NScene.Type;
                    if(NScene.Type != "Scene")
                    {
                        return;
                    }
                    int GroupId = 0;
                    int SceneId = 0;
                    string SceneData = "";
                    try
                    {
                        SceneData = NScene.NodeData;
                    }
                    catch(Exception Err)
                    {
                        txtAlert.Value = "Unable to aquire Scene Identification";
                        return;
                    }
                    string[] ScenePacket = SceneData.Split('~');
                    try
                    {
                        GroupId = Convert.ToInt32(ScenePacket[0],10);
                        SceneId = Convert.ToInt32(ScenePacket[1],10);
                    }
                    catch(Exception Err)
                    {
                        txtAlert.Value = "Action Aborted: Error loading Scenes!";
                    }
                    OysterClassLibrary.Group CurGroup = null;
                    OysterClassLibrary.Room CurRoom = null;
                    OysterClassLibrary.Groups AllGroups = OSystem.GetALLGroups(false);
                    foreach(OysterClassLibrary.Group G in AllGroups)
                    {
                        if(G.ID == GroupId)
                        {
                            CurGroup = G;
                            break;
                        }
                    }
                    foreach(OysterClassLibrary.Room CRM in CurGroup.CurrentRooms)
                    {
                        if(CRM.ID == SceneId)
                        {
                            CurRoom = CRM;
                            break;
                        }
                    }

                    string sURL2 = "";
                    bool DidOnce2 = false;
                    string CameraData2 = "";
                    int NumberCamerasCount = 0;
                    if(CurGroup.IsPublicAccess)
                    {
                        foreach(OysterClassLibrary.StreamingEncoder SE2 in CurGroup.CurrentStreamingEncoders)
                        {
                            bool CanContinue = false;

                            if(SE2.CurrentRoom.ID == SceneId)
                            {
                                CanContinue = true;

                            }

                            if(CanContinue == false)
                            {
                                continue;
                            }
                            if(DidOnce2 == false)
                            {
                                DidOnce2=true;
                            }
                            else
                                CameraData2 += "~";
                            NumberCamerasCount++;
                            //switch(SE2.StreamingHeader)
                            switch(SE2.CurrentStreamingEncoderType.Description)
                            {
                                    //					case "":
                                    //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                    //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                                    //						break;
                                    //					case "rstp://":
                                    //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                    //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                                    //						break;
                                    //					case @"http://":
                                    //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                    //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                                    //						break;
                                case "VBrick":
                                    sURL2 = SE2.StreamingHeader + "ip=" + SE2.StreamingAddress + "&port=" + SE2.StreamingPort;
                                    break;
                                case "VBrick Sys":
                                    sURL2 = SE2.StreamingHeader + "ip=" + SE2.StreamingAddress + "&port=" + SE2.StreamingPort;
                                    break;
                                case "Oyster Encoder":
                                    //sURL2 = "Unreal`" + SE2.ControlAddress + ":" + SE2.StreamingPort + "`" + SE2.StreamingAddress;
                                    sURL2 = "Unreal`" + SE2.StreamingAddress + ":" + "5119" + "`" + SE2.ControlAddress;

                                    break;
                                default:
                                    string VSSAddress = SE2.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                    sURL2 = SE2.StreamingHeader + VSSAddress + @"/"+ SE2.ControlAddress;
                                    break;
                            }

                            CameraData2 += SE2.ID + "*" + sURL2 + "*" + SE2.Description + "*" + "CAMERA";
                        }
                    }
                    else
                    {
                        foreach(OysterClassLibrary.StreamingEncoder SE2 in CurRoom.AllCurrentStreamingEncoders)
                        {
                            if(SE2.RoomID == SceneId)
                            {
                                if(DidOnce2 == false)
                                {
                                    DidOnce2=true;
                                }
                                else
                                    CameraData2 += "~";
                                NumberCamerasCount++;
                                //switch(SE2.StreamingHeader)
                                switch(SE2.CurrentStreamingEncoderType.Description)
                                {
                                        //					case "":
                                        //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                        //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                                        //						break;
                                        //					case "rstp://":
                                        //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                        //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                                        //						break;
                                        //					case @"http://":
                                        //						string VSSAddress = SE.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                        //						sURL = SE.StreamingHeader + VSSAddress + @"/"+ SE.ControlAddress;
                                        //						break;
                                    case "VBrick":
                                        sURL2 = SE2.StreamingHeader + "ip=" + SE2.StreamingAddress + "&port=" + SE2.StreamingPort;

                                        break;
                                    case "VBrick Sys":
                                        sURL2= SE2.StreamingHeader + "ip=" + SE2.StreamingAddress + "&port=" + SE2.StreamingPort;
                                        break;
                                    case "Oyster Encoder":
                                        //sURL2 = "Unreal`" + SE2.StreamingAddress + ":" + 5119 + "`" + SE2.ControlAddress;
                                        sURL2 = "Unreal`" + SE2.StreamingAddress + ":" + "5119" + "`" + SE2.ControlAddress;
                                        break;
                                    default:
                                        string VSSAddress = SE2.CurrentMediaBufferServer.CurrentForwardingServer.CurrentVideoStorageServer.ControlAddress;
                                        sURL2 = SE2.StreamingHeader + VSSAddress + @"/"+ SE2.ControlAddress;
                                        break;
                                }

                                CameraData2 += SE2.ID + "*" + sURL2 + "*" + SE2.Description + "*" + "CAMERA";
                            }
                        }
                    }
                    int GlobalPlayers2 = Convert.ToInt32(NumPlayers.Value);

                    if((6 - GlobalPlayers2) < NumberCamerasCount)
                    {
                        txtAlert.Value = "Action Aborted: Not enough Players to view all Scene's Cameras. You must remove some of the current view windows before viewing this entire scene.";
                        return;
                    }
                    else if(NumberCamerasCount > 6)
                    {
                        txtAlert.Value = "Action Aborted: Not enough Players to view all Scene's Cameras. You must manually add the recordings you wish to view from this scene.";
                        return;
                    }
                    txtRecording.Value = CameraData2;

                    break;
                case "Tab_B_NewNote.jpg":
                    //txtPausePlayers.Value = "Pause";
                    //dgNotes.Visible = false;
                    //lblSync.Visible = true;
                    //tbSync.Visible = true;
                    //taNote.Visible = true;
                    //lblNoNote.Visible = false;
                    LockAll.Value = "true";
                    //Response.Write("<script language=javascript> Temp1.taNote.Focus() </script>");
                    //txtFocus.Value = "taNote";
                    //string[] NodeData3 = txtNotes.Value.Split(' ');

                    if(txtTimeStamp.Value == "")
                        tbDialogData.Value = "00:00:00~Please type your Note description here.";
                    else
                        tbDialogData.Value = txtTimeStamp.Value + "*Type your Note description here.";
                    //                    if(txtTimeStamp.Value == "")
                    //                        tbDialogData.Value = "00:00:00~Please type your Note description here.";
                    //                    else
                    //                        tbDialogData.Value = txtTimeStamp.Value + "~Please type your Note description here.";

                    //TabStrip1.Enabled = false;
                    //imgButtonView.ImageUrl = "images/btnCancel.jpg";
                    //imgButtonRename.ImageUrl = "images/btnConfirm.jpg";
                    //imgButtonView.Visible=true;
                    //imgButtonRename.Visible=true;
                    //imgButtonMove.Visible=false;
                    //imgButtonMisc.Visible=false;
                    //Session["NoteAction"] = "New";
                    //tbSync.Disabled = false;

                    tbShowDialog.Value =  "NewNote";
                    break;
                case "btnCancel.jpg":
                    LockAll.Value = "false";

                    SwitchButtons(3);
                    //RefreshGrid();
                    TabStrip1.Enabled = true;
                    break;
            }
        }
예제 #2
0
        /// <summary>
        /// Returns all Recordings currently in a given Section
        /// </summary>
        /// <param name="SectionID"></param>
        /// <returns></returns>
        public Recordings ALLRecordings(int SectionID)
        {
            try
            {
                Recordings X = new Recordings();

                string sSQL = "SELECT DISTINCT * FROM tblRecording LEFT OUTER JOIN " +
                    " tblUserRecordingSectionRel ON tblUserRecordingSectionRel.RecordingId = tblRecording.Id" +
                    " WHERE tblUserRecordingSectionRel.SectionId = " + SectionID +
                    " ORDER BY tblRecording.DisplayName";

                DataTable DT = GetDataTable(sSQL);
                foreach(DataRow R in DT.Rows)
                {
                    //Recording Rec = null;
                    int RecId = Convert.ToInt32((object)R[0]);
                    if(RecId != 0)
                    {
                        string sSQL2 = "SELECT * FROM tblUserRecordingSectionRel WHERE SectionId = " + SectionID +
                            " AND RecordingId = "  + RecId;
                        DataTable DT2 = GetDataTable(sSQL2);
                        foreach(DataRow R2 in DT2.Rows)
                        {
                            Recording Rec = GetRecording(RecId);
                            if(Rec != null)
                            {
                                Rec.mvarCurrentSectionID = SectionID;
                                Rec.mvarCurrentUserID = Convert.ToInt32(R2[0]);

                                X.Add(Rec);
                            }
                        }
                        DT2.Dispose();
                    }
                }
                DT.Dispose();
                return X;
            }
            catch(Exception Err)
            {
                throw new ApplicationException(Err.Message);
            }
        }
예제 #3
0
        /// <summary>
        /// Returns all Record currently owned by a particular User
        /// </summary>
        /// <param name="UserID"></param>
        /// <param name="SectionID"></param>
        /// <returns></returns>
        public Recordings ALLRecordingsByUser(int UserID)
        {
            //int UserID = Convert.ToInt32(dUserID);
            try
            {
                Recordings X = new Recordings();
                string sSQL = "SELECT DISTINCT tblRecording.* FROM tblRecording LEFT OUTER JOIN " +
                    " tblUserRecordingSectionRel ON tblUserRecordingSectionRel.RecordingId = tblRecording.Id" +
                    " WHERE tblUserRecordingSectionRel.UserId = " + UserID +
                    " ORDER BY tblRecording.DisplayName";
                DataTable DT = GetDataTable(sSQL);
                foreach(DataRow R in DT.Rows)
                {
                    Recording Rec = null;
                    Rec = FillRecording(R);
                    Rec.mvarCurrentUserID = UserID;
                    Rec.mvarCurrentSectionID = Convert.ToInt32(R[2]);

                    if(Rec != null)
                        X.Add(Rec);
                }
                DT.Dispose();
                return X;
            }
            catch(Exception Err)
            {
                throw new ApplicationException(Err.Message);
            }
        }
예제 #4
0
 /// <summary>
 /// Returns all Recordings currently in the System
 /// </summary>
 /// <returns></returns>
 public Recordings ALLRecordings()
 {
     try
     {
         Recordings X = new Recordings();
         string sSQL = "Select * FROM tblRecording ORDER BY DisplayName";
         DataTable DT = GetDataTable(sSQL);
         foreach(DataRow R in DT.Rows)
         {
             Recording Rec = null;
             Rec = FillRecording(R);
             if(Rec != null)
                 X.Add(Rec);
         }
         DT.Dispose();
         return X;
     }
     catch(Exception Err)
     {
         throw new ApplicationException(Err.Message);
     }
 }
예제 #5
0
        public void MoveSession(int UserId, int SectionId, string SessionId, int TargetUserId, int TargetSectionId)
        {
            //Aquire all the session's recordings which are in this section currently assigned to this User
            Recordings ARecs = ALLRecordings(UserId,SectionId);
            Recordings CurrentRecordings = new Recordings();
            foreach(Recording Rec in ARecs)
            {
                if(Rec.SessionID == SessionId)
                {
                    CurrentRecordings.Add(Rec);
                }
            }

            //Move each of these recordings to the new User and Section
            foreach(Recording Rec in CurrentRecordings)
            {
                MoveRecording(Rec.ID,TargetUserId,TargetSectionId,UserId,SectionId);
            }
        }
예제 #6
0
        public Recordings GetDeletedRecordingsByPageNumber(int PageSize, int PageNumber)
        {
            /// TEMPLATE CODE FOR PAGING ////////////////////////////////////////////////////////////////
            /// /////////////////////////////////////////////////////////////////////////////////////////
            /// SELECT TOP PAGESIZE * FROM TABLENAME
            /// WHERE PRIMARYKEY NOT IN ( SELECT TOP (PAGE NUMBER – 1) * PAGESIZE
            /// PRIMARYKEY FROM TABLENAME)
            /// //////////////////////////////////////////////////////////////////////////////////////////
            //			string sSQL = "SELECT TOP " + PageSize + " * FROM tblRecording " +
            //						  " WHERE tblRecording.Id NOT IN ( SELECT TOP (" + PageNumber + " - 1) * " + PageSize +
            //						  " tblRecording.Id FROM tblRecording)";

            string sSQL = "SELECT TOP " + PageSize + " *" +
                " FROM tblRecording" +
                " WHERE (Id NOT IN " +
                " (SELECT TOP " + Convert.ToInt32((PageNumber - 1)* PageSize) + " ID" +
                " FROM tblRecording WHERE IsMarkedForDeletion <> 0 ORDER BY DisplayName)) AND (IsMarkedForDeletion <> 0) ORDER BY DisplayName";
            DataTable DT = GetDataTable(sSQL);
            Recordings X = new Recordings();

            foreach(DataRow r in DT.Rows)
            {
                Recording Rec = FillRecording(r);
                X.Add(Rec);
            }
            return X;
        }
예제 #7
0
 public Recordings GetAllRecordingsMarkedForDeletion()
 {
     try
     {
         Recordings X = new Recordings();
         string sSQL = "Select * FROM tblRecording WHERE IsMarkedForDeletion <> 0";
         DataTable DT = GetDataTable(sSQL);
         foreach(DataRow r in DT.Rows)
         {
             //int RecordingId = Convert.ToInt32(r[0]);
             Recording Rec = FillRecording(r);
             X.Add(Rec);
         }
         if(X.Count == 0)
             X = null;
         return X;
     }
     catch(Exception Err)
     {
         throw new ApplicationException(Err.Message);
     }
 }
예제 #8
0
 public Recordings ALL_Recordings(int GroupId)
 {
     try
     {
         Recordings X = new Recordings();
         string sSQL = "SELECT RecordingId FROM tblGroupRecordingRel WHERE GroupId = " + GroupId;
         DataTable DT = GetDataTable(sSQL);
         foreach(DataRow R in DT.Rows)
         {
             Recording Rec = null;
             Rec = GetRecording(Convert.ToInt32((object)R[0]));
             if(Rec != null)
                 X.Add(Rec);
         }
         DT.Dispose();
         return X;
     }
     catch(Exception Err)
     {
         throw new ApplicationException(Err.Message);
     }
 }