예제 #1
0
        public void LoadCalls(int idCommunity, int pageIndex, int pageSize)
        {
            Int32      idUser = UserContext.CurrentUserID;
            litePerson person = GetCurrentUser(ref idUser);

            Boolean   fromAllcommunities = false;
            PagerBase pager = new PagerBase();

            pager.PageSize = pageSize;

            fromAllcommunities = (idCommunity == 0);
            pager.Count        = (int)Service.PublicCallCount(false, fromAllcommunities, (idCommunity == 0), idCommunity, CallStatusForSubmitters.SubmissionOpened) - 1;

            pager.PageIndex = pageIndex;// Me.View.CurrentPageIndex
            View.Pager      = pager;
            if (pager.Count < 0)
            {
                View.LoadCalls(new List <dtoRequestItemPermission>());
            }
            else
            {
                ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(idUser, idCommunity);
                View.LoadCalls(Service.GetRequests(module, CallStandardAction.List, fromAllcommunities, (idCommunity == 0), idCommunity, idUser, CallStatusForSubmitters.SubmissionOpened, FilterCallVisibility.OnlyVisible, pager.PageIndex, pageSize));
            }
        }
예제 #2
0
        public void InitView()
        {
            CallStandardAction action = View.PreloadAction;

            if (action != CallStandardAction.Manage)
            {
                action = CallStandardAction.List;
            }
            View.CurrentAction = action;

            int idCommunity = SetCallsCurrentCommunity();

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                Boolean allowView   = (module.ViewBaseForPapers || module.Administration || module.ManageBaseForPapers);
                Boolean allowManage = module.CreateBaseForPaper || module.Administration || module.ManageBaseForPapers || module.EditBaseForPaper;
                View.AllowSubmmissions = (action == CallStandardAction.List) && module.ViewBaseForPapers;


                if (allowView || allowManage)
                {
                    InitializeView(action, module, idCommunity, View.PreloadView, allowView, allowManage);
                    LoadCalls(module, action, idCommunity, View.CurrentView, 0, currentPageSize);
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                }
            }
        }
예제 #3
0
        private void LoadRevisions(ModuleRequestForMembership module, CallStandardAction action, int idCommunity, dtoRevisionFilters filters, int pageIndex, int pageSize)
        {
            liteCommunity community          = CurrentManager.GetLiteCommunity(idCommunity);
            litePerson    person             = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
            Boolean       fromAllcommunities = false;
            PagerBase     pager = new PagerBase();

            pager.PageSize = pageSize;

            if (action == CallStandardAction.Manage)
            {
                pager.Count = (int)Service.RevisionCount(fromAllcommunities, (idCommunity == 0), community, person, CallForPaperType.RequestForMembership, filters, RevisionType.Manager) - 1;
            }
            else
            {
                fromAllcommunities = (idCommunity == 0);
                pager.Count        = (int)Service.RevisionCount(fromAllcommunities, (idCommunity == 0), community, person, CallForPaperType.RequestForMembership, filters, RevisionType.UserRequired) - 1;
            }
            pager.PageIndex = pageIndex;// Me.View.CurrentPageIndex
            View.Pager      = pager;
            if (pager.Count < 0)
            {
                View.LoadNoRevisionsFound();
            }
            else
            {
                View.LoadRevisions(Service.GetRevisionList(module, action, fromAllcommunities, (idCommunity == 0), community, person, filters, pager.PageIndex, pageSize));
            }

            View.SendUserAction(View.IdCallCommunity, ServiceRequest.ServiceModuleID(), ModuleRequestForMembership.ActionType.LoadRevisionsList);
        }
예제 #4
0
 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);
     }
 }
예제 #5
0
        public void LoadCalls(ModuleRequestForMembership module, CallStandardAction action, int idCommunity, CallStatusForSubmitters view, int pageIndex, int pageSize)
        {
            Boolean   fromAllcommunities = false;
            PagerBase pager = new PagerBase();

            pager.PageSize = pageSize;
            if (action == CallStandardAction.Manage)
            {
                pager.Count = (int)Service.CallCount((idCommunity == 0), idCommunity, UserContext.CurrentUserID, CallForPaperType.RequestForMembership, view, View.CurrentFilter) - 1;
            }
            else
            {
                fromAllcommunities = (idCommunity == 0) && (view == CallStatusForSubmitters.SubmissionOpened || view == CallStatusForSubmitters.Submitted || view == CallStatusForSubmitters.ToEvaluate || view == CallStatusForSubmitters.Evaluated);
                pager.Count        = (int)Service.CallCountBySubmission(false, fromAllcommunities, (idCommunity == 0), idCommunity, UserContext.CurrentUserID, view) - 1;
            }
            pager.PageIndex = pageIndex;// Me.View.CurrentPageIndex
            View.Pager      = pager;
            if (pager.Count < 0)
            {
                View.LoadCalls(new List <dtoRequestItemPermission>());
            }
            else
            {
                View.LoadCalls(Service.GetRequests(module, action, fromAllcommunities, (idCommunity == 0), idCommunity, UserContext.CurrentUserID, view, View.CurrentFilter, pager.PageIndex, pageSize));
            }
        }
예제 #6
0
        public void LoadSubmissions(Int32 idCommunity, CallForPaperType type, dtoSubmissionFilters filters, int pageIndex, int pageSize)
        {
            Boolean allowManage = true;

            View.CurrentFilters = filters;
            switch (type)
            {
            case CallForPaperType.CallForBids:
                ModuleCallForPaper module = Service.CallForPaperServicePermission(UserContext.CurrentUserID, idCommunity);
                allowManage = (module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper);
                break;

            case CallForPaperType.RequestForMembership:
                ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                allowManage = (moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper);
                break;
            }
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else if (allowManage)
            {
                LoadSubmissions(allowManage, View.IdCall, type, filters, pageIndex, pageSize);
            }
            else
            {
                View.DisplayNoPermission(idCommunity, View.IdCallModule);
            }
        }
        public void LoadSkins(dtoBaseForPaper call)
        {
            if (call == null || !call.IsPublic)
            {
                View.HideSkinsInfo();
            }
            else
            {
                Int32 idModule    = 0;
                Int32 idCommunity = View.IdCommunity;
                switch (call.Type)
                {
                case CallForPaperType.CallForBids:
                    ModuleCallForPaper module = CallService.CallForPaperServicePermission(UserContext.CurrentUserID, idCommunity);
                    idModule = CallService.ServiceModuleID();
                    View.LoadSkinInfo(call.Id, typeof(CallForPaper).FullName, ModuleCallForPaper.ObjectType.CallForPaper, idModule, idCommunity, (module.Administration || module.ManageCallForPapers), (module.Administration || module.ManageCallForPapers) && View.AllowSave, (module.Administration || module.ManageCallForPapers));
                    break;

                case CallForPaperType.RequestForMembership:
                    ModuleRequestForMembership moduleR = CallService.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                    idModule = RequestService.ServiceModuleID();
                    View.LoadSkinInfo(call.Id, typeof(RequestForMembership).FullName, ModuleRequestForMembership.ObjectType.RequestForMembership, idModule, idCommunity, (moduleR.Administration || moduleR.ManageBaseForPapers), (moduleR.Administration || moduleR.ManageBaseForPapers) && View.AllowSave, (moduleR.Administration || moduleR.ManageBaseForPapers));
                    break;
                }
            }
        }
예제 #8
0
        private void LoadAttachments(long idCall, ModuleRequestForMembership module)
        {
            View.LoadSubmitterTypes(CallService.GetCallAvailableSubmittersType(idCall));

            List <dtoAttachmentFilePermission> items = CallService.GetCallAttachments(idCall, module, false);

            if (items.Count == 0)
            {
                View.DisplayNoAttachments();
            }
            else
            {
                View.LoadAttachments(items);
            }
        }
예제 #9
0
        public void LoadRevisions(dtoRevisionFilters filters, int pageIndex, int pageSize)
        {
            View.CurrentFilters = filters;
            switch (View.CallType)
            {
            case CallForPaperType.CallForBids:
                ModuleCallForPaper module = Service.CallForPaperServicePermission(UserContext.CurrentUserID, View.IdCallCommunity);
                LoadRevisions(module, View.CurrentAction, View.IdCallCommunity, filters, pageIndex, pageSize);
                break;

            case CallForPaperType.RequestForMembership:
                ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, View.IdCallCommunity);
                LoadRevisions(moduleR, View.CurrentAction, View.IdCallCommunity, filters, pageIndex, pageSize);
                break;
            }
        }
예제 #10
0
        public void PhisicalDeleteSubmission(long idSubmission, String baseFilePath, CallForPaperType type, dtoSubmissionFilters filters, int pageIndex, int pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Boolean allowManage = false;
                Int32   idCommunity = View.IdCallCommunity;
                switch (View.CallType)
                {
                case CallForPaperType.CallForBids:
                    ModuleCallForPaper module = Service.CallForPaperServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowManage = (module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper);
                    break;

                case CallForPaperType.RequestForMembership:
                    ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowManage = (moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper);
                    break;
                }
                if (allowManage)
                {
                    Service.PhisicalDeleteSubmission(idSubmission, baseFilePath);



                    switch (View.CallType)
                    {
                    case CallForPaperType.CallForBids:
                        View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idSubmission, ModuleCallForPaper.ActionType.VirtualDeleteSubmission);
                        break;

                    case CallForPaperType.RequestForMembership:
                        View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idSubmission, ModuleRequestForMembership.ActionType.VirtualDeleteSubmission);
                        break;
                    }
                    View.GotoUrl(RootObject.ViewSubmissions(type, View.IdCall, 0, 0, View.PreloadView, filters.Status, filters.OrderBy, filters.Ascending, pageIndex, pageSize));
                }
                else
                {
                    LoadSubmissions(View.IdCallCommunity, type, filters, pageIndex, pageSize);
                }
            }
        }
예제 #11
0
        private void LoadSubmitters(long idCall)
        {
            switch (View.CallType)
            {
            case CallForPaperType.CallForBids:
                ModuleCallForPaper module = CallService.CallForPaperServicePermission(UserContext.CurrentUserID, View.IdCommunity);
                LoadSubmitters(idCall, module, CallForPaperType.CallForBids, View.IdCommunity);
                break;

            case CallForPaperType.RequestForMembership:
                ModuleRequestForMembership moduleR = CallService.RequestForMembershipServicePermission(UserContext.CurrentUserID, View.IdCommunity);
                LoadSubmitters(idCall, moduleR, CallForPaperType.RequestForMembership, View.IdCommunity);
                break;

            default:
                break;
            }
        }
예제 #12
0
        public String ExportSubmissionsData(lm.Comol.Core.DomainModel.Helpers.Export.ExportFileType exportType, dtoSubmissionFilters filters, Dictionary <SubmissionsListTranslations, string> translations, Dictionary <SubmissionStatus, String> status, Dictionary <RevisionStatus, string> revisions)
        {
            Boolean allowManage = false;

            switch (View.CallType)
            {
            case CallForPaperType.CallForBids:
                ModuleCallForPaper module = Service.CallForPaperServicePermission(UserContext.CurrentUserID, View.IdCallCommunity);
                allowManage = (module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper);
                break;

            case CallForPaperType.RequestForMembership:
                ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, View.IdCallCommunity);
                allowManage = (moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper);
                break;
            }
            return(Service.ExportSubmissionsData(exportType, allowManage, View.IdCall, filters, translations, status, revisions));
        }
예제 #13
0
        private void LoadRequiredFiles(long idCall)
        {
            switch (View.CallType)
            {
            case CallForPaperType.CallForBids:
                ModuleCallForPaper module = CallService.CallForPaperServicePermission(UserContext.CurrentUserID, View.IdCommunity);
                LoadRequiredFiles(idCall, CallService.GetPermissionForEditor(idCall, module));
                break;

            case CallForPaperType.RequestForMembership:
                ModuleRequestForMembership moduleR = CallService.RequestForMembershipServicePermission(UserContext.CurrentUserID, View.IdCommunity);
                LoadRequiredFiles(idCall, CallService.GetPermissionForEditor(idCall, moduleR));
                break;

            default:
                break;
            }
        }
예제 #14
0
        private void InitializeView(CallStandardAction action, ModuleRequestForMembership module, int idCommunity, CallStatusForSubmitters preloadView, Boolean allowView, Boolean allowManage)
        {
            List <CallStatusForSubmitters> views = Service.GetAvailableViews(action, (module.ManageBaseForPapers || module.Administration), (action == CallStandardAction.List && idCommunity == 0), (idCommunity == 0), idCommunity, UserContext.CurrentUserID, CallForPaperType.RequestForMembership);

            if (!views.Contains(preloadView) && views.Count == 0)
            {
                preloadView = CallStatusForSubmitters.SubmissionOpened;
                views.Add(CallStatusForSubmitters.SubmissionOpened);
            }
            else if (!views.Contains(preloadView))
            {
                preloadView = views[0];
            }

            View.LoadAvailableView(idCommunity, views);
            View.CurrentView = preloadView;
            switch (action)
            {
            case CallStandardAction.List:
                View.AllowManage = allowManage;
                if (allowManage)
                {
                    View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(CallForPaperType.RequestForMembership, CallStandardAction.Manage, idCommunity, preloadView));
                }
                break;

            case CallStandardAction.Manage:
                if (module.CreateBaseForPaper || module.Administration)
                {
                    View.SetActionUrl(CallStandardAction.Add, RootObject.AddCall(CallForPaperType.RequestForMembership, idCommunity, View.CurrentView));
                }
                View.AllowView = allowView;
                if (allowView)
                {
                    View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(CallForPaperType.RequestForMembership, CallStandardAction.List, idCommunity, preloadView));
                }
                break;
            }
            if (action == CallStandardAction.Manage)
            {
                List <FilterCallVisibility> filters = Service.GetCallVisibilityFilters(module, (idCommunity == 0), idCommunity, UserContext.CurrentUserID, preloadView);
                View.LoadAvailableFilters(filters, (filters.Count == 0) ? FilterCallVisibility.OnlyVisible : filters[0]);
            }
        }
예제 #15
0
        private void LoadSubmitters(long idCall, ModuleRequestForMembership module, CallForPaperType type, Int32 idCommunity)
        {
            List <dtoSubmitterTypePermission> submitters = CallService.GetCallSubmittersType(idCall, module, false);

            if (submitters.Count == 0)
            {
                View.DisplayNoSubmitters();
            }
            else
            {
                View.LoadSubmitters(submitters);
            }
            List <lm.Comol.Core.Wizard.NavigableWizardItem <WizardCallStep> > steps = CallService.GetAvailableSteps(idCall, WizardCallStep.SubmittersType, type);

            View.LoadWizardSteps(idCall, type, idCommunity, steps);
            if (steps.Where(s => (s.Id != WizardCallStep.CallAvailability) && submitters.Count > 0 && (s.Status == Core.Wizard.WizardItemStatus.valid || s.Status == Core.Wizard.WizardItemStatus.warning)).Any())
            {
                View.SetActionUrl(CallStandardAction.PreviewCall, RootObject.PreviewCall(type, idCall, idCommunity, View.PreloadView));
            }
        }
예제 #16
0
 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());
         }
     }
 }
예제 #17
0
        public void InitView()
        {
            long idCall = View.PreloadIdCall;

            dtoRequest       call = null;
            CallForPaperType type = Service.GetCallType(idCall);

            call = Service.GetDtoRequest(idCall);

            View.CallType = type;
            int idCommunity = SetCallCurrentCommunity(call);

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                litePerson currenUser             = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
                ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);

                int idModule = Service.ServiceModuleID();
                View.IdCallModule = idModule;
                if (call == null)
                {
                    View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                }
                else if (module.Administration || module.ManageBaseForPapers)
                {
                    View.IdCall = idCall;
                    LoadCall(call);
                    View.SendUserAction(idCommunity, idModule, idCall, ModuleRequestForMembership.ActionType.ViewPreviewRequest);
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
            }
        }
예제 #18
0
 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);
     }
 }
예제 #19
0
        private void LoadRequiredFiles(long idCall, ModuleRequestForMembership module)
        {
            dtoGenericPermission permission = CallService.GetPermissionForEditor(idCall, module);

            LoadRequiredFiles(idCall, permission);
        }
예제 #20
0
        public void InitView()
        {
            CallForPaperType type = View.PreloadCallType;

            View.CallType = type;
            CallStandardAction action = View.PreloadAction;

            if (action != CallStandardAction.Manage)
            {
                action = CallStandardAction.List;
            }
            View.CurrentAction = action;

            int idCommunity = SetCallsCurrentCommunity();

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Int32   idUser      = UserContext.CurrentUserID;
                Boolean allowView   = false;
                Boolean allowManage = false;

                dtoRevisionFilters filters = View.PreloadFilters;
                View.CurrentFilters = filters;
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    ModuleCallForPaper module = Service.CallForPaperServicePermission(idUser, idCommunity);
                    allowView   = (module.ViewCallForPapers || module.Administration || module.ManageCallForPapers);
                    allowManage = (module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper);

                    if (allowView || allowManage)
                    {
                        InitializeView(action, allowManage, idCommunity, View.PreloadView, type, filters.Status);
                        LoadRevisions(module, action, idCommunity, filters, View.PreloadPageIndex, View.PreloadPageSize);
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                    }
                    break;

                case CallForPaperType.RequestForMembership:
                    ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(idUser, idCommunity);
                    allowView   = (moduleR.ViewBaseForPapers || moduleR.Administration || moduleR.ManageBaseForPapers);
                    allowManage = (moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper);
                    if (allowView || allowManage)
                    {
                        InitializeView(action, allowManage, idCommunity, View.PreloadView, type, filters.Status);
                        LoadRevisions(moduleR, action, idCommunity, filters, View.PreloadPageIndex, View.PreloadPageSize);
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                    }
                    break;
                }
                switch (action)
                {
                case CallStandardAction.List:
                    View.AllowManage = allowManage;
                    if (allowManage)
                    {
                        View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(CallForPaperType.CallForBids, CallStandardAction.Manage, idCommunity, View.CurrentView));
                    }
                    break;

                case CallStandardAction.Manage:
                    View.AllowView = allowView;
                    if (allowView)
                    {
                        View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(CallForPaperType.CallForBids, CallStandardAction.List, idCommunity, View.CurrentView));
                    }
                    break;
                }
            }
        }
예제 #21
0
        public void InitView()
        {
            long idCall = View.PreloadIdCall;

            CallForPaperType type = RequestService.GetCallType(idCall);

            if (type != CallForPaperType.RequestForMembership)
            {
                View.DisplayInvalidType();
            }
            else
            {
                dtoRequest call = RequestService.GetRequestMessages(idCall);

                View.CallType = type;

                int idCommunity = SetCallCurrentCommunity(call);
                if (UserContext.isAnonymous)
                {
                    View.DisplaySessionTimeout();
                }
                else
                {
                    litePerson currenUser              = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
                    Boolean    allowManage             = false;
                    Boolean    allowView               = false;
                    Boolean    allowSave               = false;
                    ModuleRequestForMembership moduleR = RequestService.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (moduleR.ViewBaseForPapers || moduleR.Administration || moduleR.ManageBaseForPapers);
                    allowManage = moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper;
                    allowSave   = (moduleR.Administration || moduleR.ManageBaseForPapers || (moduleR.CreateBaseForPaper && idCall == 0) || (call != null && moduleR.EditBaseForPaper && currenUser == call.Owner));


                    int idModule = RequestService.ServiceModuleID();
                    View.IdCallModule = idModule;
                    if (call == null)
                    {
                        View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                    }
                    else if (allowManage || allowSave)
                    {
                        View.AllowSave = allowSave;
                        View.IdCall    = idCall;
                        View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(idCall, type, CallStandardAction.Manage, idCommunity, View.PreloadView));
                        List <lm.Comol.Core.Wizard.NavigableWizardItem <WizardCallStep> > steps = RequestService.GetAvailableSteps(idCall, WizardCallStep.RequestMessages, type);
                        View.LoadWizardSteps(idCall, type, idCommunity, steps);
                        View.StartMessage = call.StartMessage;
                        View.EndMessage   = call.EndMessage;
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleRequestForMembership.ActionType.ViewCallMessages);
                        if (steps.Where(s => s.Id == WizardCallStep.SubmittersType && (s.Status == Core.Wizard.WizardItemStatus.valid || s.Status == Core.Wizard.WizardItemStatus.warning)).Any())
                        {
                            View.SetActionUrl(CallStandardAction.PreviewCall, RootObject.PreviewCall(call.Type, call.Id, View.IdCommunity, View.PreloadView));
                        }
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, idModule);
                    }
                }
            }
        }
예제 #22
0
        public void InitView()
        {
            Boolean isAnonymousUser = UserContext.isAnonymous;
            long    idCall          = View.PreloadIdCall;

            CallForPaperType type         = Service.GetCallType(idCall);
            long             idSubmission = View.PreloadedIdSubmission;
            long             idRevision   = View.PreloadedIdRevision;
            Guid             uniqueId     = View.PreloadedUniqueID;

            dtoSubmissionRevision submission = Service.GetSubmissionWithRevisions(idSubmission, true);
            int idModule = (type == CallForPaperType.CallForBids) ? Service.ServiceModuleID() : ServiceRequest.ServiceModuleID();

            View.CallType = type;

            dtoBaseForPaper call        = Service.GetDtoBaseCall(idCall);
            int             idCommunity = SetCallCurrentCommunity(call);

            View.IdCall          = idCall;
            View.IdCallModule    = idModule;
            View.IdCallCommunity = idCommunity;

            View.IdSubmission = idSubmission;
            if (submission != null && (idRevision == 0 && submission.Revisions.Where(r => r.Id == idRevision && r.AllowSave).Any()))
            {
                idRevision = submission.GetIdWorkingRevision();
            }
            View.IdRevision = idRevision;
            Int32 containerIdCommunity = (View.PreloadIdOtherCommunity != -1) ? View.PreloadIdOtherCommunity : idCommunity;

            if (isAnonymousUser)
            {
                View.DisplaySessionTimeout();
            }
            else if (submission == null)
            {
                View.DisplayRevisionUnknown();
                View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(type, CallStandardAction.List, containerIdCommunity, CallStatusForSubmitters.Revisions));
            }
            else if (submission != null && (idRevision == 0 || submission.IsAnonymous || submission.IdPerson != UserContext.CurrentUserID))
            {
                if (idRevision == 0)
                {
                    View.DisplayRevisionUnavailable();
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
                View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(type, CallStandardAction.List, containerIdCommunity, CallStatusForSubmitters.Revisions));
            }
            else
            {
                int        idUser     = UserContext.CurrentUserID;
                litePerson currenUser = GetCurrentUser(ref idUser);
                Boolean    allowView  = false;
                View.CallRepository = call.GetRepositoryIdentifier();
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    ModuleCallForPaper module = Service.CallForPaperServicePermission(idUser, idCommunity);
                    allowView = (submission.Owner.Id == idUser || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser));
                    break;

                case CallForPaperType.RequestForMembership:
                    ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(idUser, idCommunity);
                    allowView = (submission.Owner.Id == idUser || moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser));
                    break;
                }
                View.IdSubmission    = idSubmission;
                View.IdSubmitterType = submission.Type.Id;
                View.TryToComplete   = false;

                dtoRevisionRequest rev = submission.GetWorkingRevision();

                View.InitializeView(Service.RevisionWithFileToUpload(idRevision));
                DateTime InitTime                = DateTime.Now;
                Boolean  allowTimeRevision       = rev.AllowSubmission(InitTime);
                Boolean  allowSave               = false;
                Boolean  allowCompleteSubmission = false;


                if (!allowTimeRevision && (rev.Status == RevisionStatus.Request || rev.Status == RevisionStatus.RequestAccepted || rev.Status == RevisionStatus.Required))
                {
                    View.DisplayRevisionTimeExpired();
                    switch (type)
                    {
                    case CallForPaperType.CallForBids:
                        View.SendUserAction(idCommunity, idModule, idRevision, ModuleCallForPaper.ActionType.ViewRevision);
                        break;

                    case CallForPaperType.RequestForMembership:
                        View.SendUserAction(idCommunity, idModule, idRevision, ModuleRequestForMembership.ActionType.ViewRevision);
                        break;
                    }
                }
                else
                {
                    idSubmission = (submission == null) ? 0 : submission.Id;
                    View.AllowDeleteSubmission = false;
                    //View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft);
                    allowCompleteSubmission = allowTimeRevision && (rev != null && rev.Deleted == BaseStatusDeleted.None && rev.AllowSave);
                    allowSave = allowCompleteSubmission;
                    View.InitSubmissionTime = InitTime;

                    switch (type)
                    {
                    case CallForPaperType.CallForBids:
                        View.SendUserAction(idCommunity, idModule, idRevision, ModuleCallForPaper.ActionType.ViewRevision);
                        break;

                    case CallForPaperType.RequestForMembership:
                        View.SendUserAction(idCommunity, idModule, idRevision, ModuleRequestForMembership.ActionType.ViewRevision);
                        break;
                    }
                }
                View.AllowSave = allowSave;
                View.AllowCompleteSubmission = allowCompleteSubmission;
                LoadRevision(call, submission, rev);
                if (allowView)
                {
                    if (View.PreloadView == CallStatusForSubmitters.Revisions)
                    {
                        View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(type, CallStandardAction.List, containerIdCommunity, CallStatusForSubmitters.Revisions));
                    }
                    else
                    {
                        View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, type, CallStandardAction.List, containerIdCommunity, View.PreloadView));
                    }
                }
            }
        }
예제 #23
0
        public void InitView(Boolean forPublicCall)
        {
            Boolean          allowAdmin      = false;
            Boolean          isAnonymousUser = UserContext.isAnonymous;
            long             idCall          = View.PreloadIdCall;
            CallForPaperType type            = ServiceCall.GetCallType(idCall);
            long             idSubmission    = View.PreloadedIdSubmission;
            long             idRevision      = View.PreloadedIdRevision;
            Guid             uniqueId        = View.PreloadedUniqueID;


            View.IsAdvance = ServiceCall.CallIsAdvanced(idCall);


            dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, true);
            int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

            dtoBaseForPaper call        = ServiceCall.GetDtoBaseCall(idCall);
            int             idCommunity = SetCallCurrentCommunity(call);

            View.isAnonymousSubmission = forPublicCall;
            View.IdCall          = idCall;
            View.IdCallModule    = idModule;
            View.IdCallCommunity = idCommunity;
            View.CallType        = type;
            View.IdSubmission    = idSubmission;
            if (idRevision == 0 && submission != null)
            {
                idRevision = submission.GetIdLastActiveRevision();
            }
            View.IdRevision = idRevision;
            if (submission == null || submission.Owner == null)
            {
                View.DisplayUnknownSubmission(idCommunity, idModule, idSubmission, type);
            }
            else
            {
                if (idCall != submission.IdCall)
                {
                    idCall      = submission.IdCall;
                    call        = ServiceCall.GetDtoBaseCall(idCall);
                    idCommunity = SetCallCurrentCommunity(call);
                    type        = (call != null) ? call.Type : type;
                    idModule    = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

                    View.IdCall          = idCall;
                    View.IdCallModule    = idModule;
                    View.IdCallCommunity = idCommunity;
                    View.CallType        = type;
                }
                if (call == null)
                {
                    View.DisplayUnknownCall(idCommunity, idModule, idCall, type);
                    if (!isAnonymousUser)
                    {
                        View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, View.PreloadIdOtherCommunity, View.PreloadView));
                    }
                }
                else if (isAnonymousUser && !forPublicCall)
                {
                    if (call.IsPublic && submission.IsAnonymous)
                    {
                        View.GoToUrl(RootObject.ViewSubmission(type, idCall, idSubmission, idRevision, uniqueId, true, false, View.PreloadView, View.PreloadIdOtherCommunity, 0));
                    }
                    else
                    {
                        View.DisplaySessionTimeout();
                    }
                }
                else if (isAnonymousUser && forPublicCall && !call.IsPublic)
                {
                    View.DisplayCallUnavailableForPublic();
                }
                else
                {
                    int        idUser     = UserContext.CurrentUserID;
                    litePerson currenUser = GetCurrentUser(ref idUser);
                    Boolean    allowView  = false;
                    View.CallRepository = call.GetRepositoryIdentifier();
                    switch (type)
                    {
                    case CallForPaperType.CallForBids:
                        ModuleCallForPaper module = ServiceCall.CallForPaperServicePermission(idUser, idCommunity);
                        allowView  = (submission.Owner.Id == idUser || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser));
                        allowAdmin = (View.PreloadFromManagement && (module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)));
                        break;

                    case CallForPaperType.RequestForMembership:
                        ModuleRequestForMembership moduleR = ServiceCall.RequestForMembershipServicePermission(idUser, idCommunity);
                        allowView  = (submission.Owner.Id == idUser || moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser));
                        allowAdmin = (View.PreloadFromManagement && (moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser)));
                        break;
                    }

                    if (View.IsAdvance)
                    {
                        Advanced.SubmissionListPermission permission = ServiceCall.SubmissionCanList(idCall);

                        if ((permission & Advanced.SubmissionListPermission.View) == Advanced.SubmissionListPermission.View)
                        {
                            allowView = true;
                        }

                        if ((permission & Advanced.SubmissionListPermission.Manage) == Advanced.SubmissionListPermission.Manage)
                        {
                            allowAdmin = true;
                        }
                    }


                    View.ShowAdministrationTools = allowAdmin;
                    CallStatusForSubmitters fromView = View.PreloadView;
                    if (fromView == CallStatusForSubmitters.None)
                    {
                        fromView = (allowAdmin) ? CallStatusForSubmitters.SubmissionClosed : CallStatusForSubmitters.Submitted;
                    }

                    if (!allowAdmin && allowView)
                    {
                        View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, View.PreloadIdOtherCommunity, fromView));
                    }
                    else if (allowAdmin)
                    {
                        View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewSubmissions(type, idCall, idSubmission, idRevision, fromView, View.PreloadFilterSubmission, View.PreloadOrderSubmission, View.PreloadAscending, View.PreloadPageIndex, View.PreloadPageSize));
                    }

                    if (submission.Deleted != BaseStatusDeleted.None && !allowAdmin)
                    {
                        View.DisplaySubmissionUnavailable();
                    }
                    else if (allowAdmin || allowView || (isAnonymousUser && submission.IsAnonymous && submission.UniqueId == View.PreloadedUniqueID))
                    {
                        LoadSubmission(call, submission, idUser, allowAdmin);
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, idModule);
                    }
                }
            }

            bool ShowSendIntegration = false;

            if (call.AdvacedEvaluation)
            {
                ShowSendIntegration = ServiceCall.ShowSendIntegration(idSubmission, View.CommissionId);
            }

            View.ShowHideSendIntegration(ShowSendIntegration);

            if (View.IsAdvance)
            {
                if (!ServiceCall.SignSubmissionIsNotExpired(idSubmission, idRevision, DateTime.Now, DateTime.Now))
                {
                    bool ShowMessage = (submission.Status == SubmissionStatus.waitforsignature);
                    View.DisplayOutOfTime("Expired", ShowMessage, false);
                }
            }
        }
        public void InitView(Boolean forPublicCall)
        {
            long             idCall          = View.PreloadIdCall;
            Boolean          skinInitialized = false;
            dtoRequest       call            = null;
            CallForPaperType type            = Service.GetCallType(idCall);

            call = Service.GetDtoRequest(idCall);
            if (type == CallForPaperType.None || call == null)
            {
                type = CallForPaperType.RequestForMembership;
            }
            View.CallType = type;
            int idCommunity = SetCallCurrentCommunity(call);
            int idModule    = Service.ServiceModuleID();

            Boolean hasPermissionToSubmit = Service.IsCallAvailableByUser(idCall, UserContext.CurrentUserID);

            if (call == null)
            {
                View.LoadUnknowCall(idCommunity, idModule, idCall, type);
            }
            else if (UserContext.isAnonymous && !forPublicCall)
            {
                if (call.IsPublic)
                {
                    View.GoToUrl(RootObject.SubmitToCallBySubmitterType(type, idCall, call.IsPublic, View.PreloadedIdSubmission, View.PreloadedIdSubmitter, View.FromPublicList, View.PreloadView, View.PreloadIdOtherCommunity));
                }
                else
                {
                    View.DisplaySessionTimeout();
                }
            }
            else if (UserContext.isAnonymous && forPublicCall && !call.IsPublic)
            {
                View.DisplayCallUnavailableForPublic();
            }
            else if (!hasPermissionToSubmit && call.IsPublic && forPublicCall == false)
            {
                View.GoToUrl(RootObject.SubmitToCallBySubmitterType(type, idCall, call.IsPublic, View.IdSubmission, View.PreloadedIdSubmitter, View.FromPublicList, View.PreloadView, View.PreloadIdOtherCommunity));
            }
            else
            {
                int        idUser     = UserContext.CurrentUserID;
                litePerson currenUser = GetCurrentUser(ref idUser);

                View.isAnonymousSubmission = forPublicCall;
                View.TryToComplete         = false;
                ModuleRequestForMembership module = Service.RequestForMembershipServicePermission(idUser, idCommunity);

                View.IdCallModule = idModule;
                if (call == null)
                {
                    View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                    if (module.ViewBaseForPapers)
                    {
                        if (View.FromPublicList)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.PublicCollectorCalls(CallForPaperType.RequestForMembership, idCall, View.PreloadIdCommunity));
                        }
                        else if (!UserContext.isAnonymous)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, CallForPaperType.RequestForMembership, CallStandardAction.List, (module.ViewBaseForPapers) ? idCommunity : View.PreloadIdOtherCommunity, View.PreloadView));
                        }
                    }
                }
                else if (call.Status <= CallForPaperStatus.Published || call.Status == CallForPaperStatus.SubmissionClosed || call.Status == CallForPaperStatus.SubmissionsLimitReached)
                {
                    View.DisplayCallUnavailable(call.Status);
                    if (module.ViewBaseForPapers)
                    {
                        if (View.FromPublicList)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.PublicCollectorCalls(CallForPaperType.RequestForMembership, idCall, View.PreloadIdCommunity));
                        }
                        else if (!UserContext.isAnonymous)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, CallForPaperType.RequestForMembership, CallStandardAction.List, (module.ViewBaseForPapers) ? idCommunity : View.PreloadIdOtherCommunity, View.PreloadView));
                        }
                    }
                    if (forPublicCall)
                    {
                        View.InitializeView(Service.GetExternalContext(idCall), Service.CallWithFileToUpload(idCall, 0));
                        skinInitialized = true;
                    }
                }
                else if (module.ViewBaseForPapers || call.IsPublic || hasPermissionToSubmit)
                {
                    long idSubmission = View.PreloadedIdSubmission;
                    View.IdCall         = idCall;
                    View.CallRepository = call.GetRepositoryIdentifier();
                    if (module.ViewBaseForPapers || hasPermissionToSubmit)
                    {
                        if (View.FromPublicList)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.PublicCollectorCalls(CallForPaperType.RequestForMembership, idCall, View.PreloadIdCommunity));
                        }
                        else if (!UserContext.isAnonymous)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, CallForPaperType.RequestForMembership, CallStandardAction.List, (module.ViewBaseForPapers) ? idCommunity : View.PreloadIdOtherCommunity, View.PreloadView));
                        }
                    }

                    // Find active submission
                    dtoSubmissionRevision submission = null;
                    if (forPublicCall && UserContext.isAnonymous)
                    {
                        submission = Service.GetActiveUserSubmission(idCall, UserContext.CurrentUserID, idSubmission, View.PreloadedUniqueID);
                        if (submission != null && submission.Owner.Id != idUser)
                        {
                            submission = null;
                        }
                    }
                    else
                    {
                        submission = Service.GetActiveUserSubmission(idCall, UserContext.CurrentUserID, idSubmission);
                    }


                    if (forPublicCall)
                    {
                        View.InitializeView(Service.GetExternalContext(idCall), Service.CallWithFileToUpload(idCall, 0));
                        skinInitialized = true;
                    }
                    else
                    {
                        SubmitterType submitter = null;
                        if (submission != null)
                        {
                            submitter = Service.GetSubmitterType(submission.Type.Id);
                        }
                        else
                        {
                            submitter = Service.GetSubmitterType(View.PreloadedIdSubmitter);
                        }

                        if (idSubmission == 0 && submitter != null && submitter.AllowMultipleSubmissions && Service.GetSubmissionCountBySubmitter(idCall, UserContext.CurrentUserID, submitter.Id) < submitter.MaxMultipleSubmissions)
                        {
                            submission = null;
                        }
                        View.InitializeView(Service.CallWithFileToUpload(idCall, (submission == null) ? 0 : submission.Type.Id));
                    }

                    DateTime InitTime = DateTime.Now;
                    if (call.StartDate > InitTime)
                    {
                        View.DisplaySubmissionTimeBefore(call.StartDate);
                    }
                    else if ((submission == null && !call.AllowSubmission(InitTime)) || (submission != null && submission.ExtensionDate.HasValue && call.AllowLateSubmission(InitTime, submission.ExtensionDate.Value)))
                    {
                        View.DisplaySubmissionTimeAfter(call.EndDate);
                    }
                    else if (submission != null && (submission.Deleted != BaseStatusDeleted.None || (submission.Status != SubmissionStatus.none && submission.Status != SubmissionStatus.draft)))
                    {
                        if (forPublicCall)
                        {
                            View.GoToUrl(RootObject.ViewSubmission(call.Type, call.Id, submission.Id, submission.UniqueId, true, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0));
                        }
                        else if (!UserContext.isAnonymous)
                        {
                            View.GoToUrl(RootObject.ViewSubmission(call.Type, call.Id, submission.Id, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0));
                        }
                    }
                    else if (submission != null && submission.Revisions.Where(r => r.Type != RevisionType.Original).Any())
                    {
                        if (!forPublicCall || (forPublicCall && !UserContext.isAnonymous))
                        {
                            View.GoToUrl(RootObject.UserReviewCall(call.Type, call.Id, submission.Id, submission.GetIdWorkingRevision(), CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity));
                        }
                        else
                        {
                            View.DisplayCallUnavailableForPublic();
                        }
                    }
                    else
                    {
                        idSubmission = (submission == null) ? 0 : submission.Id;
                        long idRevision = (submission == null) ? 0 : submission.GetIdOriginal();
                        View.IdRevision   = idRevision;
                        View.IdSubmission = idSubmission;

                        View.AllowDeleteSubmission = false;
                        Boolean allowSave = false;
                        Boolean allowCompleteSubmission = false;
                        LoadCall(call, submission);

                        View.AllowSubmitterChange = false;
                        if (module.AddSubmission || call.IsPublic || hasPermissionToSubmit)
                        {
                            View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft);
                            allowCompleteSubmission    = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft);
                            allowSave      = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft);
                            View.AllowSave = allowSave;
                            View.AllowCompleteSubmission = allowCompleteSubmission;
                            if (submission == null)
                            {
                                View.IdSubmission         = 0;
                                View.AllowSubmitterChange = true;
                                View.SendStartSubmission(idCommunity, idModule, idCall, ModuleRequestForMembership.ActionType.StartSubmission);
                            }
                            else
                            {
                                View.InitSubmissionTime = InitTime;
                                //if (submission.Status >= SubmissionStatus.submitted && viewList == CallStatusForSubmitters.SubmissionOpened)
                                //    viewList = CallStatusForSubmitters.Submitted;
                                View.AllowSubmitterSelection = false;
                                View.IdSubmission            = submission.Id;
                                LoadSections(idCall, submission.Type.Id, submission.Id, idRevision);
                                View.SendUserAction(idCommunity, idModule, submission.Id, ModuleRequestForMembership.ActionType.ViewSubmission);
                            }
                        }
                        else
                        {
                            View.AllowSave = allowSave;
                            View.AllowCompleteSubmission = allowCompleteSubmission;
                            if (idSubmission == 0)
                            {
                                View.DisableSubmitterTypesSelection();
                            }
                        }
                    }
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
            }
            if (forPublicCall && !skinInitialized)
            {
                View.InitializeEmptyView();
            }
        }
예제 #25
0
        public void InitView()
        {
            CallStandardAction action = View.PreloadAction;

            if (action != CallStandardAction.Manage)
            {
                action = CallStandardAction.List;
            }
            View.CurrentAction = action;

            CallForPaperType type   = View.PreloadCallType;
            long             idCall = View.PreloadIdCall;
            dtoBaseForPaper  call   = Service.GetDtoBaseCall(idCall);
            int idCommunity         = 0;

            if (call != null)
            {
                type = call.Type;
                if (call.IsPortal)
                {
                    idCommunity = 0;
                }
                else if (call.Community != null)
                {
                    idCommunity = call.Community.Id;
                }
                else
                {
                    idCommunity = View.PreloadIdCommunity;
                }
                View.IdCallCommunity = idCommunity;
            }
            else
            {
                idCommunity = SetCallsCurrentCommunity();
            }
            View.CallType    = type;
            View.IdCall      = idCall;
            View.CurrentView = View.PreloadView;
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Int32   idUser       = UserContext.CurrentUserID;
                Boolean allowView    = false;
                Boolean allowManage  = false;
                Int32   idCallModule = Service.ServiceModuleID();
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    ModuleCallForPaper module = Service.CallForPaperServicePermission(idUser, idCommunity);
                    allowView   = (module.ViewCallForPapers || module.Administration || module.ManageCallForPapers);
                    allowManage = (module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper);
                    break;

                case CallForPaperType.RequestForMembership:
                    ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(idUser, idCommunity);
                    allowView    = (moduleR.ViewBaseForPapers || moduleR.Administration || moduleR.ManageBaseForPapers);
                    allowManage  = (moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper);
                    idCallModule = ServiceRequest.ServiceModuleID();
                    break;
                }

                switch (action)
                {
                case CallStandardAction.List:
                    View.AllowManage = allowManage;
                    if (allowManage)
                    {
                        View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(idCall, type, CallStandardAction.Manage, idCommunity, View.PreloadView));
                    }
                    break;

                case CallStandardAction.Manage:
                    View.AllowView = true;
                    View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, type, CallStandardAction.List, idCommunity, View.PreloadView));
                    break;
                }
                View.IdCallModule = idCallModule;
                if (call == null)
                {
                    View.DisplayUnknownCall();
                }
                else if (allowManage)
                {
                    View.AllowExport = true;
                    View.SetContainerName(call.Name, call.Edition, call.Type);
                    InitializeView(allowManage, idCall, type, View.PreloadFilters);
                }
                else
                {
                    View.SetContainerName(call.Name, call.Edition, call.Type);
                    View.DisplayNoPermission(idCommunity, idCallModule);
                }
            }
        }
예제 #26
0
        public void InitView()
        {
            long idCall = View.PreloadIdCall;

            dtoBaseForPaper  call = null;
            CallForPaperType type = CallService.GetCallType(idCall);

            if (type == CallForPaperType.None)
            {
                type = View.PreloadType;
            }
            call = CallService.GetDtoBaseCall(idCall);

            View.CallType = type;
            int idCommunity = SetCallCurrentCommunity(call);

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                litePerson                 currenUser  = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
                Boolean                    allowManage = false;
                Boolean                    allowView   = false;
                Boolean                    allowSave   = false;
                ModuleCallForPaper         module      = null;
                ModuleRequestForMembership moduleR     = null;
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    module      = CallService.CallForPaperServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (module.ViewCallForPapers || module.Administration || module.ManageCallForPapers);
                    allowManage = module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper;
                    allowSave   = (module.Administration || module.ManageCallForPapers || (module.CreateCallForPaper && idCall == 0) || (call != null && module.EditCallForPaper && currenUser == call.Owner));
                    break;

                case CallForPaperType.RequestForMembership:
                    moduleR     = CallService.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (moduleR.ViewBaseForPapers || moduleR.Administration || moduleR.ManageBaseForPapers);
                    allowManage = moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper;
                    allowSave   = (moduleR.Administration || moduleR.ManageBaseForPapers || (moduleR.CreateBaseForPaper && idCall == 0) || (call != null && moduleR.EditBaseForPaper && currenUser == call.Owner));
                    break;

                default:
                    break;
                }

                int idModule = (type == CallForPaperType.CallForBids) ? CallService.ServiceModuleID() : RequestService.ServiceModuleID();
                View.IdCallModule = idModule;
                if (call == null)
                {
                    View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                }
                else if (allowManage || allowSave)
                {
                    View.AllowSave = allowSave && (!CallService.CallHasSubmissions(idCall));
                    View.IdCall    = idCall;
                    View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(type, CallStandardAction.Manage, idCommunity, View.PreloadView));
                    if (type == CallForPaperType.CallForBids)
                    {
                        LoadRequiredFiles(idCall, module);
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleCallForPaper.ActionType.ViewRequestedFiles);
                    }
                    else
                    {
                        LoadRequiredFiles(idCall, moduleR);
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleRequestForMembership.ActionType.ViewRequestedFiles);
                    }

                    View.SetActionUrl(CallStandardAction.PreviewCall, RootObject.PreviewCall(type, idCall, idCommunity, View.PreloadView));
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
            }
        }
        public void InitView(Boolean forPublicCall)
        {
            long idSubmission = View.PreloadedIdSubmission;
            long idRevision   = View.PreloadedIdRevision;

            System.Guid      uniqueID = View.PreloadedUniqueID;
            long             idCall   = View.PreloadIdCall;
            dtoBaseForPaper  call     = null;
            CallForPaperType type     = Service.GetCallType(idCall);

            call          = Service.GetDtoBaseCall(idCall);
            View.CallType = type;
            int idCommunity = SetCallCurrentCommunity(call);
            int idModule    = Service.ServiceModuleID();

            Boolean isAnonymous = UserContext.isAnonymous;

            if (call == null)
            {
                View.LoadUnknowCall(idCommunity, idModule, idCall, type);
            }
            else if (isAnonymous && !forPublicCall)
            {
                if (call.IsPublic)
                {
                    View.GoToUrl(RootObject.FinalMessage(type, idCall, idSubmission, idRevision, uniqueID, true, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity));
                }
                else
                {
                    View.DisplaySessionTimeout();
                }
            }
            else
            {
                int        idUser     = UserContext.CurrentUserID;
                litePerson currenUser = GetCurrentUser(ref idUser);

                View.IdCallModule          = idModule;
                View.isAnonymousSubmission = forPublicCall;
                dtoLazySubmission submission = Service.GetSubmission(idCall, idSubmission, uniqueID);

                Boolean allowSeeList          = false;
                Boolean hasPermissionToSubmit = false;
                Int32   containerIdCommunity  = View.PreloadIdOtherCommunity;
                if (!isAnonymous && !forPublicCall)
                {
                    hasPermissionToSubmit = Service.IsCallAvailableByUser(idCall, UserContext.CurrentUserID);
                    switch (type)
                    {
                    case CallForPaperType.CallForBids:
                        ModuleCallForPaper module = Service.CallForPaperServicePermission(idUser, idCommunity);
                        allowSeeList = (module.ViewCallForPapers || module.ManageCallForPapers || module.Administration);
                        break;

                    case CallForPaperType.RequestForMembership:
                        ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(idUser, idCommunity);
                        allowSeeList = (moduleR.ViewBaseForPapers || moduleR.ManageBaseForPapers || moduleR.Administration);
                        break;
                    }
                }

                if (forPublicCall)
                {
                    View.InitializeView(Service.GetExternalContext(idCall));
                }

                if (allowSeeList || hasPermissionToSubmit)
                {
                    View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, type, CallStandardAction.List, (hasPermissionToSubmit && idCommunity > 0 && containerIdCommunity > 0 && idCommunity != containerIdCommunity) ? containerIdCommunity : idCommunity, CallStatusForSubmitters.Submitted));
                }

                if (submission == null)
                {
                    View.LoadUnknowSubmission(idCommunity, idModule, idSubmission, type);
                }
                else if (!forPublicCall && submission.Owner.Id != idUser)
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
                else
                {
                    if (submission.Owner.Id == idUser || forPublicCall)
                    {
                        if (idRevision >= 1)
                        {
                            Revision rev = Service.GetRevision(idRevision);
                            if (rev == null || (rev != null && (rev.Type == RevisionType.Original || rev.Status == RevisionStatus.Approved)))
                            {
                                View.SetActionUrl(CallStandardAction.ViewOwnSubmission, RootObject.ViewSubmission(
                                                      type,
                                                      idCall,
                                                      idSubmission,
                                                      idRevision,
                                                      uniqueID,
                                                      call.IsPublic && submission.IsAnonymous,
                                                      View.FromPublicList,
                                                      CallStatusForSubmitters.Submitted,
                                                      (hasPermissionToSubmit && idCommunity > 0 && containerIdCommunity > 0 && idCommunity != containerIdCommunity) ? containerIdCommunity : idCommunity
                                                      , 0));
                            }
                            else
                            {
                                View.SetActionUrl(CallStandardAction.ViewOwnSubmission, RootObject.UserReviewCall(type, idCall, idSubmission, idRevision, CallStatusForSubmitters.Submitted, (hasPermissionToSubmit && idCommunity > 0 && containerIdCommunity > 0 && idCommunity != containerIdCommunity) ? containerIdCommunity : idCommunity));
                            }
                        }
                        else
                        {
                            View.SetActionUrl(CallStandardAction.ViewOwnSubmission,
                                              RootObject.ViewSubmission(
                                                  type,
                                                  idCall,
                                                  idSubmission,
                                                  idRevision,
                                                  uniqueID,
                                                  call.IsPublic && submission.IsAnonymous,
                                                  View.FromPublicList,
                                                  CallStatusForSubmitters.Submitted,
                                                  (hasPermissionToSubmit && idCommunity > 0 && containerIdCommunity > 0 && idCommunity != containerIdCommunity) ? containerIdCommunity : idCommunity
                                                  , 0)
                                              );
                        }
                        switch (type)
                        {
                        case CallForPaperType.CallForBids:
                            View.LoadDefaultMessage();
                            break;

                        case CallForPaperType.RequestForMembership:
                            dtoRequest request = RequestService.GetRequestMessages(idCall);

                            View.LoadMessage((request == null) ? "" : request.EndMessage);
                            break;
                        }
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, idModule);
                    }
                }
            }
        }
        public void InitView(Boolean allowUseOfDss)
        {
            CallStandardAction action = View.PreloadAction;
            long idCall = View.PreloadIdCall;

            dtoBaseForPaper  call = null;
            CallForPaperType type = View.PreloadType;

            if (idCall == 0)
            {
                action = CallStandardAction.Add;
            }
            else
            {
                type   = CallService.GetCallType(idCall);
                call   = CallService.GetDtoBaseCall(idCall);
                action = CallStandardAction.Edit;
            }

            View.CallType      = type;
            View.CurrentAction = action;

            int idCommunity = SetCallCurrentCommunity(action, call);

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                litePerson currenUser  = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
                Boolean    allowManage = false;
                Boolean    allowView   = false;
                Boolean    allowSave   = false;
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    ModuleCallForPaper module = CallService.CallForPaperServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (module.ViewCallForPapers || module.Administration || module.ManageCallForPapers);
                    allowManage = module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper;
                    allowSave   = (module.Administration || module.ManageCallForPapers || (module.CreateCallForPaper && idCall == 0) || (call != null && module.EditCallForPaper && currenUser == call.Owner));
                    break;

                case CallForPaperType.RequestForMembership:
                    ModuleRequestForMembership moduleR = CallService.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (moduleR.ViewBaseForPapers || moduleR.Administration || moduleR.ManageBaseForPapers);
                    allowManage = moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper;
                    allowSave   = (moduleR.Administration || moduleR.ManageBaseForPapers || (moduleR.CreateBaseForPaper && idCall == 0) || (call != null && moduleR.EditBaseForPaper && currenUser == call.Owner));
                    break;

                default:

                    break;
                }

                int idModule = (type == CallForPaperType.CallForBids) ? CallService.ServiceModuleID() : RequestService.ServiceModuleID();
                View.IdCallModule = idModule;
                if (call == null && action == CallStandardAction.Edit)
                {
                    View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                }
                else if (allowManage || allowSave)
                {
                    View.AllowSave = allowSave;
                    View.IdCall    = idCall;
                    LoadCallStatus(idCall, call);
                    if (action == CallStandardAction.Add)
                    {
                        View.LoadEmptyCall();
                        View.AllowStatusEdit = false;
                        View.ForPortal       = (idCommunity == 0);
                    }
                    else
                    {
                        View.ForPortal       = (call != null && call.IsPortal);
                        View.AllowStatusEdit = AllowStatusEdit(idCall, type, call, allowSave);
                        View.LoadCall(call);
                    }
                    List <lm.Comol.Core.Wizard.NavigableWizardItem <WizardCallStep> > steps = CallService.GetAvailableSteps(idCall, WizardCallStep.GeneralSettings, type);
                    View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(idCall, type, CallStandardAction.Manage, idCommunity, View.PreloadView));
                    View.LoadWizardSteps(idCall, type, idCommunity, steps);
                    if (type == CallForPaperType.CallForBids)
                    {
                        View.LoadEvaluationSettings(CallService.GetEvaluationSettings(idCall, allowUseOfDss));
                        View.SendUserAction(idCommunity, idModule, idCall, (action == CallStandardAction.Add) ? ModuleCallForPaper.ActionType.StartCallCreation : ModuleCallForPaper.ActionType.StartCallEdit);
                    }
                    else
                    {
                        View.SendUserAction(idCommunity, idModule, idCall, (action == CallStandardAction.Add) ? ModuleRequestForMembership.ActionType.StartRequestCreation : ModuleRequestForMembership.ActionType.StartRequestEdit);
                    }

                    if (steps.Where(s => s.Id == WizardCallStep.SubmittersType && (s.Status == Core.Wizard.WizardItemStatus.valid || s.Status == Core.Wizard.WizardItemStatus.warning)).Any())
                    {
                        View.SetActionUrl(CallStandardAction.PreviewCall, RootObject.PreviewCall(type, idCall, idCommunity, View.PreloadView));
                    }
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
            }
        }
        public void InitView()
        {
            Boolean          allowAdmin      = false;
            Boolean          isAnonymousUser = UserContext.isAnonymous;
            long             idCall          = View.PreloadIdCall;
            CallForPaperType type            = ServiceCall.GetCallType(idCall);
            long             idSubmission    = View.PreloadedIdSubmission;
            long             idRevision      = View.PreloadedIdRevision;
            Guid             uniqueId        = View.PreloadedUniqueID;

            dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, true);
            int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

            dtoBaseForPaper call        = ServiceCall.GetDtoBaseCall(idCall);
            int             idCommunity = SetCallCurrentCommunity(call);

            View.isAnonymousSubmission = true;
            View.IdCall          = idCall;
            View.IdCallModule    = idModule;
            View.IdCallCommunity = idCommunity;
            View.CallType        = type;
            View.IdSubmission    = idSubmission;
            if (idRevision == 0 && submission != null)
            {
                idRevision = submission.GetIdLastActiveRevision();
            }
            View.IdRevision = idRevision;
            if (submission == null || submission.Owner == null || (submission != null && submission.UniqueId != uniqueId))
            {
                View.DisplayUnknownSubmission(idCommunity, idModule, idSubmission, type);
            }
            else
            {
                if (idCall != submission.IdCall)
                {
                    idCall      = submission.IdCall;
                    call        = ServiceCall.GetDtoBaseCall(idCall);
                    idCommunity = SetCallCurrentCommunity(call);
                    type        = (call != null) ? call.Type : type;
                    idModule    = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

                    View.IdCall          = idCall;
                    View.IdCallModule    = idModule;
                    View.IdCallCommunity = idCommunity;
                    View.CallType        = type;
                }
                if (call == null)
                {
                    View.DisplayUnknownCall(idCommunity, idModule, idCall, type);
                    if (!isAnonymousUser)
                    {
                        View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, idCommunity, View.PreloadView));
                    }
                }
                else if (isAnonymousUser && !submission.IsAnonymous)
                {
                    View.DisplaySessionTimeout();
                }
                else if (isAnonymousUser && !call.IsPublic)
                {
                    View.DisplayCallUnavailableForPublic();
                }
                else
                {
                    int        idUser     = UserContext.CurrentUserID;
                    litePerson currenUser = GetCurrentUser(ref idUser);
                    Boolean    allowView  = false;
                    View.CallRepository = call.GetRepositoryIdentifier();
                    switch (type)
                    {
                    case CallForPaperType.CallForBids:
                        ModuleCallForPaper module = ServiceCall.CallForPaperServicePermission(idUser, idCommunity);
                        allowView  = (submission.Owner.Id == idUser || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser));
                        allowAdmin = (module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser));
                        break;

                    case CallForPaperType.RequestForMembership:
                        ModuleRequestForMembership moduleR = ServiceCall.RequestForMembershipServicePermission(idUser, idCommunity);
                        allowView  = (submission.Owner.Id == idUser || moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser));
                        allowAdmin = (moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser));
                        break;
                    }
                    View.InitializeView(ServiceCall.GetExternalContext(idCall));
                    CallStatusForSubmitters fromView = View.PreloadView;
                    if (fromView == CallStatusForSubmitters.None)
                    {
                        fromView = (allowAdmin) ? CallStatusForSubmitters.SubmissionClosed : CallStatusForSubmitters.Submitted;
                    }

                    if (allowView)
                    {
                        if (!isAnonymousUser)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, idCommunity, fromView));
                        }
                        else if (View.FromPublicList)
                        {
                            View.SetActionUrl(CallStandardAction.List, RootObject.PublicCollectorCalls(type, idCall, idCommunity));
                        }
                    }
                    if (submission.Deleted != BaseStatusDeleted.None && !allowAdmin)
                    {
                        View.DisplaySubmissionUnavailable();
                    }
                    else if (allowAdmin || allowView || (isAnonymousUser && submission.IsAnonymous && submission.UniqueId == View.PreloadedUniqueID))
                    {
                        LoadSubmission(call, submission, idUser, allowAdmin);
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, idModule);
                    }
                }
            }
        }
        public void InitView()
        {
            long idCall = View.PreloadIdCall;

            dtoBaseForPaper  call = null;
            CallForPaperType type = CallService.GetCallType(idCall);

            if (type == CallForPaperType.None)
            {
                type = View.PreloadType;
            }
            call = CallService.GetDtoBaseCall(idCall);

            View.CallType = type;
            int idCommunity = SetCallCurrentCommunity(call);

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                litePerson                 currenUser  = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
                Boolean                    allowManage = false;
                Boolean                    allowView   = false;
                Boolean                    allowSave   = false;
                ModuleCallForPaper         module      = null;
                ModuleRequestForMembership moduleR     = null;
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    module      = CallService.CallForPaperServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (module.ViewCallForPapers || module.Administration || module.ManageCallForPapers);
                    allowManage = module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper;
                    allowSave   = (module.Administration || module.ManageCallForPapers || (module.CreateCallForPaper && idCall == 0) || (call != null && module.EditCallForPaper && currenUser == call.Owner));
                    break;

                case CallForPaperType.RequestForMembership:
                    moduleR     = CallService.RequestForMembershipServicePermission(UserContext.CurrentUserID, idCommunity);
                    allowView   = (moduleR.ViewBaseForPapers || moduleR.Administration || moduleR.ManageBaseForPapers);
                    allowManage = moduleR.CreateBaseForPaper || moduleR.Administration || moduleR.ManageBaseForPapers || moduleR.EditBaseForPaper;
                    allowSave   = (moduleR.Administration || moduleR.ManageBaseForPapers || (moduleR.CreateBaseForPaper && idCall == 0) || (call != null && moduleR.EditBaseForPaper && currenUser == call.Owner));
                    break;

                default:
                    break;
                }
                int idModule = (type == CallForPaperType.CallForBids) ? CallService.ServiceModuleID() : RequestService.ServiceModuleID();
                View.IdCallModule = idModule;
                if (call == null)
                {
                    View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                }
                else if (allowManage || allowSave)
                {
                    View.AllowSave = allowSave;
                    View.IdCall    = idCall;
                    View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(idCall, type, CallStandardAction.Manage, idCommunity, View.PreloadView));

                    List <lm.Comol.Core.Wizard.NavigableWizardItem <WizardCallStep> > steps = CallService.GetAvailableSteps(idCall, WizardCallStep.NotificationTemplateMail, type);
                    View.LoadWizardSteps(idCall, type, idCommunity, steps);

                    LoadTemplate(idCall);
                    if (type == CallForPaperType.CallForBids)
                    {
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleCallForPaper.ActionType.EditManagerTemplate);
                    }
                    else
                    {
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleRequestForMembership.ActionType.EditManagerTemplate);
                    }
                    if (steps.Where(s => s.Id == WizardCallStep.SubmittersType && (s.Status == Core.Wizard.WizardItemStatus.valid || s.Status == Core.Wizard.WizardItemStatus.warning)).Any())
                    {
                        View.SetActionUrl(CallStandardAction.PreviewCall, RootObject.PreviewCall(type, idCall, idCommunity, View.PreloadView));
                    }
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
            }
        }