private void VirtualDelete(long idCall, Boolean delete)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         int          idCommunity = 0;
         BaseForPaper call        = Service.VirtualDeleteCall(idCall, UserContext.CurrentUserID, delete);
         if (call != null)
         {
             if (!call.IsPortal && call.Community != null)
             {
                 idCommunity = call.Community.Id;
             }
             View.SendUserAction(idCommunity, Service.ServiceModuleID(), idCall, (delete) ? ModuleRequestForMembership.ActionType.VirtualDeleteRequest : ModuleRequestForMembership.ActionType.VirtualUndeleteRequest);
         }
         idCommunity = View.IdCallCommunity;
         CallStandardAction         action = View.CurrentAction;
         ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
         FilterCallVisibility       filter = View.CurrentFilter;
         InitializeView(action, module, idCommunity, View.CurrentView);
         View.CurrentFilter = filter;
         LoadCalls(module, action, idCommunity, View.CurrentView, View.Pager.PageIndex, currentPageSize);
     }
 }
 public void CloneCall(long idCall, String prefix, String filePath, String thumbnailPath)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         int idCommunity = View.IdCallCommunity;
         int idUser      = UserContext.CurrentUserID;
         CallStandardAction         action = View.CurrentAction;
         ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(idUser, idCommunity);
         if (module.CreateBaseForPaper || module.Administration || module.ManageBaseForPapers || module.EditBaseForPaper)
         {
             Boolean      reloadPage = (View.CurrentView == CallStatusForSubmitters.Draft);
             BaseForPaper call       = Service.CloneCall(idCall, idUser, idCommunity, prefix, filePath, thumbnailPath);
             if (call != null)
             {
                 View.SendUserAction(idCommunity, Service.ServiceModuleID(), idCall, ModuleRequestForMembership.ActionType.CloneRequest);
                 View.CloneSkinAssociation(idUser, Service.ServiceModuleID(), ((call.IsPortal || call.Community == null) ? 0 : call.Community.Id), idCall, call.Id, (Int32)ModuleRequestForMembership.ObjectType.RequestForMembership, typeof(RequestForMembership).FullName);
             }
             if (reloadPage || call == null)
             {
                 FilterCallVisibility filter = View.CurrentFilter;
                 InitializeView(action, module, idCommunity, View.CurrentView);
                 View.CurrentFilter = filter;
                 LoadCalls(module, action, idCommunity, View.CurrentView, View.Pager.PageIndex, currentPageSize);
             }
             else
             {
                 View.GotoUrl(RootObject.ViewCalls(call.Id, CallForPaperType.RequestForMembership, View.CurrentAction, idCommunity, CallStatusForSubmitters.Draft));
             }
         }
         else
         {
             View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
         }
     }
 }
 public void Delete(long idCall, String baseFilePath, String baseThumbnailPath)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         int idCommunity = View.IdCallCommunity;
         int idUser      = UserContext.CurrentUserID;
         CallStandardAction         action = View.CurrentAction;
         ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(idUser, idCommunity);
         BaseForPaper call = Service.GetCall(idCall);
         if (call == null)
         {
             View.DisplayUnableToDeleteUnknownCall();
         }
         else if (module.Administration || module.ManageBaseForPapers || (module.DeleteOwnBaseForPaper && call.CreatedBy != null && call.CreatedBy.Id == idUser))
         {
             idCommunity = ((call.IsPortal || call.Community == null) ? 0 : call.Community.Id);
             if (Service.DeleteCall(idCall, baseFilePath, baseThumbnailPath))
             {
                 View.SendUserAction(idCommunity, Service.ServiceModuleID(), idCall, ModuleRequestForMembership.ActionType.DeleteRequest);
                 View.RemoveSkinAssociation(idUser, Service.ServiceModuleID(), idCommunity, idCall, (Int32)ModuleRequestForMembership.ObjectType.RequestForMembership, typeof(RequestForMembership).FullName);
             }
             else
             {
                 View.DisplayUnableToDeleteCall();
             }
         }
         FilterCallVisibility filter = View.CurrentFilter;
         InitializeView(action, module, idCommunity, View.CurrentView);
         View.CurrentFilter = filter;
         LoadCalls(module, action, idCommunity, View.CurrentView, View.Pager.PageIndex, currentPageSize);
     }
 }