コード例 #1
0
        public int CreateScreenShareConnection(int requestID, int userID)
        {
            ScreenShareRequest request = screenShareManager.GetScreenShareRequest(requestID);
            User currentUser           = userManager.GetUser(userID);

            Connection newConnection = new Connection();

            newConnection.ConnectionName = request.NewConnection.ConnectionName.Contains("Repeat") ? request.NewConnection.ConnectionName : request.NewConnection.ConnectionName + " (Repeat)";
            newConnection.Lesson         = request.NewConnection.Lesson;
            newConnection.ConnectionDate = DateTime.Now;

            request.NewConnection.Lesson.Connections.Add(newConnection);

            newConnection.Sharer = request.RequesterRequestType == RequestType.Sharer ? request.Requester : request.RequestTo;
            newConnection.Viewer = request.RequesterRequestType == RequestType.Sharer ? request.Requester : request.RequestTo;


            newConnection.Sharer.ConnectionsAsSharer.Add(newConnection);
            newConnection.Viewer.ConnectionsAsViewer.Add(newConnection);


            request.NewConnection = newConnection;

            connectionManager.AddConnection(newConnection);

            uow.Save();

            return(newConnection.ID);
        }
コード例 #2
0
        public int AcceptScreenShareRequest(int screenShareID, int userID)
        {
            ScreenShareRequest request = screenShareManager.GetScreenShareRequest(screenShareID);

            request.IsAccepted = true;

            uow.Save();
            return(request.ID);
        }
コード例 #3
0
        public TransactionObject EstablishPreviousConnection(int ID, string status, int userID)
        {
            TransactionObject response = new TransactionObject();

            User currentUser = userManager.GetUser(userID);

            //currentUser.PendingStatus = "Sharer";
            if (!currentUser.SentScreenShareRequests.Where(w => w.IsAccepted == false && w.NewConnection.IsConnectionEnded == false).Any())
            {
                Connection conn = connectionManager.GetConnection(ID);

                User partnerUser = conn.ViewerID == currentUser.ID ? conn.Sharer : conn.Viewer;

                ScreenShareRequest ssRequest = new ScreenShareRequest();
                ssRequest.Requester = currentUser;
                ssRequest.RequestTo = partnerUser;

                currentUser.SentScreenShareRequests.Add(ssRequest);
                partnerUser.ReceivedScreenShareRequests.Add(ssRequest);

                ssRequest.RequesterRequestType = status == "Sharer" ? RequestType.Sharer : RequestType.Viewer;

                ssRequest.RequestToRequestType = ssRequest.RequesterRequestType == RequestType.Sharer ? RequestType.Viewer : RequestType.Sharer;

                ssRequest.NewConnection = conn;

                screenShareManager.AddScreenShareRequest(ssRequest);

                try
                {
                    uow.Save();
                    response.IsSuccess = true;
                }
                catch (Exception ex)
                {
                    response.IsSuccess   = false;
                    response.Explanation = base.GetExceptionMessage(ex);
                }
            }
            else
            {
                response.IsSuccess   = false;
                response.Explanation = "You already have an existing connection pending!";
            }
            return(response);
        }
コード例 #4
0
 public void DeleteConnection(ScreenShareRequest connection)
 {
     screenShareRequestRepository.Delete(connection);
 }
コード例 #5
0
 public void AddScreenShareRequest(ScreenShareRequest screenShareRequest)
 {
     screenShareRequestRepository.Add(screenShareRequest);
 }