public void AddUserFromPortal()
        {
            long idCall = View.IdCall;

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                List <Int32> idCommunities = new List <Int32>();
                //CallService.GetIdCommunityAssignments(idCall);
                dtoBaseForPaper call = CallService.GetDtoBaseCall(idCall);
                if (call != null && call.Community != null)
                {
                    idCommunities.Add(call.Community.Id);
                }
                View.SelectedIdUsers = GetUpdatedUsersSelection();
                View.DisplayAddUsersFromPortal(CallService.GetIdUserAssignments(idCall));
            }
        }
        private void LoadSettings(dtoBaseForPaper call)
        {
            View.IsPublic  = call.IsPublic;
            View.ForPortal = call.IsPortal;

            LoadAvailableItemsToAdd(call);
            List <dtoCallAssignment> assignments = CallService.GetCallAssignments(call.Id, call.IsPortal, View.GetTranslatedProfileTypes(), View.GetTranslatedRoles());

            LoadSkins(call);
            if (call.IsPublic)
            {
                switch (call.Type)
                {
                case CallForPaperType.RequestForMembership:
                    View.DisplayPublicUrls(call.Type, RootObject.StartNewSubmission(call.Type, call.Id, true, false, CallStatusForSubmitters.None, -1), RootObject.PublicCollectorCalls(call.Type, call.Id, (call.IsPortal) ? 0 : View.IdCommunity));
                    break;

                default:
                    View.DisplayPublicUrl(call.Type, RootObject.StartNewSubmission(call.Type, call.Id, true, false, CallStatusForSubmitters.None, -1));
                    break;
                }
            }
            else
            {
                View.HidePublicUrl();
            }

            if (assignments.Count == 0 && !call.IsPublic && !call.ForSubscribedUsers)
            {
                View.SelectedIdUsers = new List <Int32>();
                View.LoadAssignments(TranslateAndReorderAssignments(CallService.GetDefaultAssignmentSettings(call.Id, call.IsPortal, call.IsPublic)));
            }
            else
            {
                List <dtoCallAssignment> items = TranslateAndReorderAssignments(assignments);
                View.SelectedIdUsers = assignments.Where(a => a.Type == CallAssignmentType.Person).Select(a => ((dtoCallPersonAssignment)a).IdPerson).ToList();
                View.LoadAssignments(items);
            }
        }
Exemple #3
0
        private int GetCurrentCommunity(dtoBaseForPaper call)
        {
            int       idCommunity      = 0;
            Community currentCommunity = CurrentManager.GetCommunity(this.UserContext.CurrentCommunityID);
            Community community        = null;

            if (call != null)
            {
                idCommunity = (call.IsPortal) ? 0 : (call.Community != null) ? call.Community.Id : 0;
            }
            community = CurrentManager.GetCommunity(idCommunity);

            if (community == null && currentCommunity != null && !call.IsPortal)
            {
                idCommunity = this.UserContext.CurrentCommunityID;
            }
            else if (community == null)
            {
                idCommunity = 0;
            }
            View.IdCallCommunity = idCommunity;
            return(idCommunity);
        }
Exemple #4
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));
                    }
                }
            }
        }
Exemple #5
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);
                }
            }
        }
Exemple #6
0
        private void LoadSubmission(dtoBaseForPaper call, dtoSubmissionRevision subRev, int idUser, Boolean allowAdmin)
        {
            if (!allowAdmin)
            {
                switch (call.Type)
                {
                case CallForPaperType.CallForBids:
                    dtoCall dtoC = ServiceCall.GetDtoCall(call.Id);
                    View.LoadCallInfo(dtoC);
                    break;

                case CallForPaperType.RequestForMembership:
                    dtoRequest dtoR = ServiceRequest.GetDtoRequest(call.Id);
                    View.LoadCallInfo(dtoR);
                    break;
                }
                View.LoadAttachments(ServiceCall.GetAvailableCallAttachments(call.Id, subRev.Type.Id));
            }
            View.IdSubmitterType = (subRev == null) ? 0 : subRev.Type.Id;
            String owner       = "";
            String submittedBy = "";

            if (subRev.Owner == null || subRev.Owner.TypeID == (int)UserTypeStandard.Guest)
            {
                owner = View.AnonymousOwnerName;
            }
            else
            {
                owner = subRev.Owner.SurnameAndName;
            }

            if (subRev.SubmittedBy == null || subRev.SubmittedBy.TypeID == (int)UserTypeStandard.Guest)
            {
                submittedBy = View.AnonymousOwnerName;
            }
            else
            {
                submittedBy = subRev.SubmittedBy.SurnameAndName;
            }

            if (subRev.Deleted != BaseStatusDeleted.None)
            {
                View.LoadSubmissionInfo(subRev.Type.Name, owner, SubmissionStatus.deleted);
            }
            else if (!subRev.SubmittedOn.HasValue)
            {
                View.LoadSubmissionInfo(subRev.Type.Name, owner, subRev.Status);
            }
            else if (subRev.IdPerson == subRev.IdSubmittedBy)
            {
                View.LoadSubmissionInfo(subRev.Type.Name, owner, subRev.Status, subRev.SubmittedOn.Value);
            }
            else
            {
                View.LoadSubmissionInfo(subRev.Type.Name, owner, subRev.Status, subRev.SubmittedOn.Value, submittedBy);
            }

            LoadSections(call, subRev, allowAdmin);


            //Gestione firme
            if (!call.AttachSign)
            {
                View.HideSignSubmission();
            }
            else
            {
                ModuleLink mLink = ServiceCall.GetSignModuleLink(call.Id, (View.IdRevision > 0) ? View.IdRevision : View.PreloadedIdRevision);

                if (mLink != null)
                {
                    View.InitializeDownloadSign(mLink);
                }
                else
                {
                    if (UserContext.CurrentUserID == subRev.IdSubmittedBy)
                    {
                        //dtoSubmissionRevision subRev = Service.GetSubmissionWithRevisions(idSubmission, true);

                        View.InitSignSubmission((call.Community != null) ? call.Community.Id : 0);
                    }
                    else
                    {
                        View.ShowSignNotSubmitted();
                    }
                }
            }
        }
        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);
                }
            }
        }
        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);
                    }
                }
            }
        }
Exemple #9
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;

            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;

            if (isAnonymousUser)
            {
                View.DisplaySessionTimeout();
            }
            else if (submission == null)
            {
                View.DisplayRevisionUnknown();
                if (View.PreloadFromManagement)
                {
                    View.SetActionUrl(RootObject.ViewSubmissions(type, idCall, idSubmission, idRevision, View.PreloadView, View.PreloadFilterSubmission, View.PreloadOrderSubmission, View.PreloadAscending, View.PreloadPageIndex, View.PreloadPageSize));
                }
                else
                {
                    View.SetActionUrl(RootObject.ViewRevisions(idRevision, type, View.PreloadAction, idCommunity, View.PreloadView));
                }
            }
            else if (submission != null && (idRevision == 0))
            {
                View.DisplayRevisionUnavailable();
                View.SetActionUrl(RootObject.ViewRevisions(idRevision, type, View.PreloadAction, idCommunity, View.PreloadView));
            }
            else
            {
                int        idUser     = UserContext.CurrentUserID;
                litePerson currenUser = GetCurrentUser(ref idUser);
                Boolean    allowView  = false;

                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;

                if (idRevision == 0)
                {
                    idRevision = submission.GetIdLastActiveRevision();
                }
                dtoRevisionRequest rev = Service.GetRevisionRequest(idRevision, true);
                if (rev == null)
                {
                    View.DisplayRevisionUnknown();
                }
                else if (allowView)
                {
                    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;
                    }
                    LoadSubmission(call, submission, rev);
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
                if (allowView)
                {
                    if (View.PreloadFromManagement)
                    {
                        View.SetActionUrl(RootObject.ViewSubmissions(type, idCall, idSubmission, idRevision, View.PreloadView, View.PreloadFilterSubmission, View.PreloadOrderSubmission, View.PreloadAscending, View.PreloadPageIndex, View.PreloadPageSize));
                    }
                    else
                    {
                        View.SetActionUrl(RootObject.ViewRevisions(idRevision, type, View.PreloadAction, idCommunity, View.PreloadView));
                    }
                }
            }
        }
Exemple #10
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;
                Boolean allowEvaluate = false;

                Int32 idCallModule = Service.ServiceModuleID();
                switch (type)
                {
                case CallForPaperType.CallForBids:
                    //ToDo: add permission on Advance

                    Advanced.SubmissionListPermission advPermission = Service.SubmissionCanList(idCall);

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

                    if ((advPermission & Advanced.SubmissionListPermission.Evaluate) == Advanced.SubmissionListPermission.Evaluate)
                    {
                        allowManage = true;
                    }

                    ModuleCallForPaper module = Service.CallForPaperServicePermission(idUser, idCommunity);
                    allowView         = allowView || (module.ViewCallForPapers || module.Administration || module.ManageCallForPapers);
                    allowManage       = allowManage || (module.CreateCallForPaper || module.Administration || module.ManageCallForPapers || module.EditCallForPaper);
                    View.HasSignature = (call != null) && call.AttachSign;

                    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();
                    View.HasSignature = false;
                    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 if (allowView)
                {
                    View.AllowExport = false;
                    View.SetContainerName(call.Name, call.Edition, call.Type);
                    InitializeView(false, idCall, type, View.PreloadFilters);
                }
                else //ToDo: verificare la possibilità di visualizzare le sottomissioni!!!
                {
                    View.SetContainerName(call.Name, call.Edition, call.Type);
                    View.DisplayNoPermission(idCommunity, idCallModule);
                }
            }
        }
        public void SaveSettings(dtoBaseForPaper dto, String submitterName, Boolean allowUseOfDss, Boolean validateStatus)
        {
            int idCommunity = View.IdCommunity;

            try
            {
                int idModule = (dto.Type == CallForPaperType.CallForBids) ? CallService.ServiceModuleID() : RequestService.ServiceModuleID();

                if (dto.Type == CallForPaperType.RequestForMembership && dto.EndDate.HasValue && dto.StartDate >= dto.EndDate.Value)
                {
                    View.DisplayDateError(dto.StartDate, dto.EndDate.Value);
                }
                else if (dto.Type == CallForPaperType.CallForBids && dto.EndDate.HasValue && dto.StartDate >= dto.EndDate.Value && ((dtoCall)dto).EndEvaluationOn.HasValue && dto.EndDate.Value >= ((dtoCall)dto).EndEvaluationOn.Value)
                {
                    View.DisplayDateError(CallForPaperType.CallForBids);
                }
                else if (dto.Type == CallForPaperType.CallForBids && dto.EndDate.HasValue && dto.StartDate >= dto.EndDate.Value)
                {
                    View.DisplayDateError(dto.StartDate, dto.EndDate.Value);
                }
                else if (dto.Type == CallForPaperType.CallForBids && dto.EndDate.HasValue && ((dtoCall)dto).EndEvaluationOn.HasValue && dto.EndDate.Value >= ((dtoCall)dto).EndEvaluationOn.Value)
                {
                    View.DisplayEvaluationDateError(dto.EndDate.Value, ((dtoCall)dto).EndEvaluationOn.Value);
                }
                else
                {
                    Boolean stepsToComplete = false;
                    List <lm.Comol.Core.Wizard.NavigableWizardItem <WizardCallStep> > wizardSteps = null;
                    BaseForPaper          call        = null;
                    List <WizardCallStep> skipedSteps = new List <WizardCallStep>();;
                    long    idCall        = dto.Id;
                    Boolean hasSubmission = false;
                    if (idCall > 0)
                    {
                        hasSubmission = CallService.CallHasSubmissions(idCall);
                    }
                    if (dto.Status > CallForPaperStatus.Draft && idCall == 0)
                    {
                        dto.Status         = CallForPaperStatus.Draft;
                        stepsToComplete    = true;
                        View.CurrentStatus = dto.Status;
                    }
                    else if (dto.Status > CallForPaperStatus.Draft && idCall > 0)
                    {
                        wizardSteps = CallService.GetAvailableSteps(idCall, WizardCallStep.GeneralSettings, View.CallType);
                        skipedSteps = CallService.GetSkippedSteps(wizardSteps, idCall, View.CallType);

                        stepsToComplete = (skipedSteps.Count > 0);

                        if (stepsToComplete && !hasSubmission)
                        {
                            dto.Status         = CallForPaperStatus.Draft;
                            View.CurrentStatus = dto.Status;
                        }
                    }


                    if (dto.Type == CallForPaperType.CallForBids)
                    {
                        call = CallService.SaveCallSettings((dtoCall)dto, idCommunity, validateStatus);
                    }
                    else
                    {
                        call = RequestService.SaveCallSettings((dtoRequest)dto, idCommunity, validateStatus, submitterName);
                    }
                    if (call != null)
                    {
                        idCall = call.Id;
                        RefreshCallName(View.CurrentAction, dto.Name, idCommunity);
                    }
                    View.IdCall = idCall;
                    if (dto.Type == CallForPaperType.CallForBids)
                    {
                        View.SendUserAction(idCommunity, idModule, idCall, (View.CurrentAction == CallStandardAction.Add) ? ModuleCallForPaper.ActionType.AddCallSettings : ModuleCallForPaper.ActionType.SaveCallSettings);
                    }
                    else
                    {
                        View.SendUserAction(idCommunity, idModule, idCall, (View.CurrentAction == CallStandardAction.Add) ? ModuleRequestForMembership.ActionType.AddCallSettings : ModuleRequestForMembership.ActionType.SaveCallSettings);
                    }
                    if (wizardSteps == null)
                    {
                        wizardSteps = CallService.GetAvailableSteps(idCall, WizardCallStep.GeneralSettings, call.Type);
                    }

                    if (stepsToComplete && skipedSteps.Count > 0)
                    {
                        View.DisplaySkippedRequiredSteps(skipedSteps);
                    }
                    else if (stepsToComplete && wizardSteps.Count > 0)
                    {
                        View.DisplaySkippedRequiredSteps(wizardSteps.Where(ws => ws.Status == Core.Wizard.WizardItemStatus.error || ws.Status == Core.Wizard.WizardItemStatus.disabled).Select(ws => ws.Id).ToList());
                    }
                    else if (call != null)
                    {
                        View.DisplaySettingsSaved();
                    }
                    if (View.InvalidStatusFound)
                    {
                        View.InvalidStatusFound = false;
                        View.LoadStatus(CallService.GetAvailableStatus(idCall), dto.Status);
                        dto = CallService.GetDtoBaseCall(idCall);
                        View.LoadCall(dto);
                        if (dto.Type == CallForPaperType.CallForBids)
                        {
                            View.LoadEvaluationSettings(CallService.GetEvaluationSettings(idCall, allowUseOfDss));
                        }
                    }
                    else
                    {
                        View.LoadStatus(CallService.GetAvailableStatus(idCall), dto.Status);
                    }

                    View.LoadWizardSteps(idCall, dto.Type, idCommunity, wizardSteps);
                }
            }
            catch (SkipRequiredSteps exc) {
                View.DisplaySkippedRequiredSteps(exc.Steps);
            }
            catch (CallForPaperInvalidStatus ex)
            {
                View.InvalidStatusFound = true;
                switch (dto.Status)
                {
                case CallForPaperStatus.Draft:
                    if (dto.StartDate >= DateTime.Now)
                    {
                        View.CurrentStatus = (!dto.EndDate.HasValue || (dto.EndDate.HasValue && dto.EndDate.Value <= DateTime.Now)) ? CallForPaperStatus.SubmissionOpened: CallForPaperStatus.SubmissionClosed;
                    }
                    else
                    {
                        View.CurrentStatus = CallForPaperStatus.SubmissionOpened;
                    }
                    break;
                }
                View.LoadInvalidStatus(dto.Status, dto.EndDate);
                RefreshCallName(View.CurrentAction, dto.Name, idCommunity);
            }
        }
        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);
                }
            }
        }
Exemple #13
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);
                }
            }
        }
Exemple #14
0
        public void InitView(Boolean forPublicCall)
        {
            Boolean isAnonymousUser = UserContext.isAnonymous;
            long    idCall          = View.PreloadIdCall;
            long    idEvaluation    = View.PreloadedIdEvaluation;
            Int32   idUser          = UserContext.CurrentUserID;

            lm.Comol.Modules.CallForPapers.Domain.CallForPaperType type = ServiceCall.GetCallType(idCall);
            int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

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


            View.IdCall          = idCall;
            View.IdCallModule    = idModule;
            View.IdCallCommunity = idCommunity;
            View.IdEvaluation    = idEvaluation;
            View.CallType        = type;



            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.EvaluateSubmission(idCall, View.PreloadIdCommunity, View.PreloadedIdEvaluation));
            }
            if (call == null)
            {
                View.DisplayUnknownCall(idCommunity, idModule, idCall, type);
            }
            else if (type == CallForPaperType.RequestForMembership)
            {
                View.DisplayEvaluationUnavailable();
            }
            else
            {
                bool canEvaluate = true;
                //Evantualmente aggiungere i tag anche sulle vecchie commissioni...
                string tags = (call.AdvacedEvaluation) ?
                              ServiceCall.TagGetForEvaluation(idEvaluation, idCall, ref canEvaluate) :
                              call.Tags;

                if (call.AdvacedEvaluation && !canEvaluate)
                {
                    View.DisplayEvaluationUnavailable();
                }

                View.BindTag(tags);

                ModuleCallForPaper module        = ServiceCall.CallForPaperServicePermission(idUser, idCommunity);
                Boolean            allowEvaluate = false;
                Boolean            allowAdmin    = ((module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)));

                Boolean isEvaluator =
                    (call.AdvacedEvaluation) ?
                    ServiceCall.isEvaluationOwner(idEvaluation, UserContext.CurrentUserID) :
                    Service.isEvaluationOwner(idEvaluation, UserContext.CurrentUserID);

                allowEvaluate = isEvaluator; //(isEvaluator || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser));

                if (!allowEvaluate)
                {
                    View.DisplayEvaluationUnavailable();
                }
                else
                {
                    lm.Comol.Modules.CallForPapers.Domain.Evaluation.dtoEvaluation evaluation =
                        (call.AdvacedEvaluation) ?
                        ServiceCall.GetFullEvaluation(idEvaluation, View.AnonymousOwnerName, View.UnknownDisplayname):
                        Service.GetFullEvaluation(idEvaluation, View.AnonymousOwnerName, View.UnknownDisplayname);
                    if (evaluation == null)
                    {
                        View.DisplayUnknownEvaluation(idCommunity, idModule, idEvaluation);
                    }
                    else
                    {
                        View.IdEvaluator = evaluation.IdEvaluator;
                        dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(evaluation.IdSubmission, true);
                        if (submission == null)
                        {
                            View.DisplayUnknownSubmission(idCommunity, idModule, evaluation.IdSubmission, type);
                        }
                        else
                        {
                            LoadData(idCall, evaluation, submission);
                        }
                    }
                }
            }
        }
Exemple #15
0
        public void InitView()
        {
            Boolean isAnonymousUser = UserContext.isAnonymous;
            long    idCall          = View.PreloadIdCall;
            long    idEvaluation    = View.PreloadIdEvaluation;
            long    idSubmission    = View.PreloadIdSubmission;
            long    idEvaluator     = View.PreloadIdEvaluator;
            Int32   idUser          = UserContext.CurrentUserID;

            lm.Comol.Modules.CallForPapers.Domain.CallForPaperType type = ServiceCall.GetCallType(idCall);
            int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

            dtoBaseForPaper baseCall    = ServiceCall.GetDtoBaseCall(idCall);
            int             idCommunity = GetCurrentCommunity(baseCall);


            View.IdCall          = idCall;
            View.IdCallModule    = idModule;
            View.IdCallCommunity = idCommunity;
            View.IdEvaluation    = idEvaluation;
            View.IdSubmission    = idSubmission;
            View.IdEvaluator     = idEvaluator;
            View.CallType        = type;
            DisplayEvaluations dEvaluation = DisplayEvaluations.None;

            if (idEvaluation > 0)
            {
                dEvaluation = DisplayEvaluations.Single;
            }
            else if (idEvaluator > 0)
            {
                dEvaluation = DisplayEvaluations.ForUser;
            }
            else if (idSubmission > 0)
            {
                dEvaluation = DisplayEvaluations.ForSubmission;
            }

            if (UserContext.isAnonymous)
            {
                switch (dEvaluation)
                {
                case DisplayEvaluations.Single:
                    View.DisplaySessionTimeout(RootObject.ViewSingleEvaluation(idEvaluation, idSubmission, idCall, idCommunity, View.AdvCommId));
                    break;

                case DisplayEvaluations.ForUser:
                    View.DisplaySessionTimeout(RootObject.ViewUserEvaluations(idEvaluator, idSubmission, idCall, idCommunity, View.AdvCommId));
                    break;

                default:
                    View.DisplaySessionTimeout(RootObject.ViewSubmissionEvaluations(idSubmission, idCall, idCommunity, View.AdvCommId));
                    break;
                }
            }
            else
            {
                if (baseCall == null)
                {
                    View.DisplayUnknownCall(idCommunity, idModule, idCall, type);
                }
                else if (type == CallForPaperType.RequestForMembership)
                {
                    View.DisplayEvaluationUnavailable();
                }
                else if (dEvaluation == DisplayEvaluations.None)
                {
                    View.DisplayNoEvaluationsToView();
                }
                else
                {
                    ModuleCallForPaper module     = ServiceCall.CallForPaperServicePermission(idUser, idCommunity);
                    Boolean            allowAdmin = ((module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && baseCall.Owner.Id == idUser)));

                    if (!allowAdmin && !Service.isEvaluationOwner(idEvaluator, idEvaluation, idSubmission, dEvaluation, UserContext.CurrentUserID))
                    {
                        View.DisplayNoPermissionToView();
                    }
                    else
                    {
                        dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, false);
                        if (submission == null)
                        {
                            View.DisplayUnknownSubmission(idCommunity, idModule, idSubmission, type);
                        }
                        else
                        {
                            dtoCall call = ServiceCall.GetDtoCall(idCall);
                            if (call != null)
                            {
                                View.CurrentEvaluationType = call.EvaluationType;
                                if (call.EvaluationType == EvaluationType.Dss)
                                {
                                    InitializeDssInfo(idCall);
                                }
                                else
                                {
                                    View.HideDssWarning();
                                }
                                LoadData(dEvaluation, idCommunity, call, submission, idEvaluation, idEvaluator);
                            }
                            else
                            {
                                View.DisplayUnknownCall(idCommunity, idModule, idCall, type);
                            }
                        }
                    }
                }
            }
        }
Exemple #16
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);
                }
            }
        }
Exemple #17
0
        public String ExportTo(
            SummaryType summaryType,
            long idCall,
            long idSubmission,
            long idCommittee,
            ExportData exportData,
            lm.Comol.Core.DomainModel.Helpers.Export.ExportFileType fileType,
            Dictionary <lm.Comol.Modules.CallForPapers.Domain.Evaluation.EvaluationTranslations, String> translations,
            Dictionary <lm.Comol.Modules.CallForPapers.Domain.Evaluation.EvaluationStatus, String> status)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.ViewSubmissionTableEvaluations(idSubmission, idCall, View.IdCallCommunity));
                return("");
            }

            dtoBaseForPaper call = ServiceCall.GetDtoBaseCall(idCall);

            dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, false);

            List <dtoCommitteeEvaluationInfo> committees = new List <dtoCommitteeEvaluationInfo>();



            EvaluationType evalType = View.CurrentEvaluationType;

            bool isAdvance = ServiceCall.CallIsAdvanced(idCall);

            List <dtoSubmissionCommitteeItem> evaluations = new List <dtoSubmissionCommitteeItem>();

            if (isAdvance)
            {
                evaluations = ServiceCall.GetSubmissionEvaluations(idCall, idSubmission, idCommittee, View.UnknownDisplayname);
                committees  = ServiceCall.GetCommitteesInfoForSubmission(submission.Id, call.Id, View.AdvCommissionId);
            }
            else
            {
                evaluations = Service.GetSubmissionEvaluations(idCall, idSubmission, idCommittee, View.UnknownDisplayname);
                committees  = Service.GetCommitteesInfoForSubmission(submission.Id, call.Id);
            }



            String export = "";

            //INTESTAZIONE GENERICA

            export += string.Format(translations[EvaluationTranslations.CallTitle], call.Name) + ";";
            export += "\r\n";

            export += translations[EvaluationTranslations.CellTitleSubmissionOwner] + " ";
            export += submission.Owner.SurnameAndName + ";";
            export += "\r\n";

            if (submission.SubmittedOn != null)
            {
                DateTime submitOn = (DateTime)submission.SubmittedOn;

                export += string.Format(translations[EvaluationTranslations.SubmittedOn],
                                        submitOn.ToString("dd MM yyyy"),
                                        submitOn.ToString("h:mm:ss")
                                        ) + ";";

                export += "\r\n";
            }

            export += translations[EvaluationTranslations.CellTitleCommittee] + ";";

            if (committees != null && committees.Any())
            {
                export += committees.FirstOrDefault().Name;
            }
            else
            {
                export += "--";
            }


            export += "\r\n";
            export += "\r\n";


            if (exportData == ExportData.Fulldata)
            {
                //INTESTAZIONE ESPORTAZIONE

                export += translations[EvaluationTranslations.CellTitleEvaluator] + ";";
                export += translations[EvaluationTranslations.CellTitleGenericCriterion] + ";";
                export += "Tipo criterio;";
                export += translations[EvaluationTranslations.CellTitleGenericCriterionUserValue] + ";";

                //export += ((evalType == EvaluationType.Average) ?
                //    translations[Domain.Evaluation.EvaluationTranslations.CellTitleAverage] :
                //    translations[Domain.Evaluation.EvaluationTranslations.CellTitleSum])
                //    + ";";

                export += translations[EvaluationTranslations.CellTitleGenericCriterionComment] + ";";
                export += "Commento complessivo;";

                export += "\r\n";

                //DATA
                foreach (dtoEvaluatorDisplayItem evaluator in evaluations.FirstOrDefault().Evaluators)
                {
                    foreach (dtoCriterionEvaluated criterion in evaluator.Values)
                    {
                        export += evaluator.EvaluatorName + ";";
                        export += criterion.Criterion.Name + ";";



                        switch (criterion.Criterion.Type)
                        {
                        case CriterionType.Boolean:
                            export += "Boolean;";
                            export += (criterion.DecimalValue > 0) ? "1;" : "0;";
                            break;

                        case CriterionType.IntegerRange:
                            export += "Interi;";
                            export += criterion.DecimalValue.ToString("F0") + ";";
                            break;

                        case CriterionType.DecimalRange:
                            export += "Decimale;";
                            export += criterion.DecimalValue + ";";
                            break;

                        case CriterionType.StringRange:
                            export += "Qualitativo;";
                            export += criterion.StringValue + ";";
                            break;
                        }

                        export += criterion.Comment + ";";
                        export += evaluator.Comment + ";";
                        export += "\r\n";
                    }
                }
            }
            else
            {
                //INTESTAZIONE ESPORTAZIONE

                //export += translations[EvaluationTranslations.CellTitleEvaluator] + ";";
                //export += translations[EvaluationTranslations.CellTitleGenericCriterion] + ";";
                //export += "Tipo criterio;";
                //export += translations[EvaluationTranslations.CellTitleGenericCriterionUserValue] + ";";

                ////export += ((evalType == EvaluationType.Average) ?
                ////    translations[Domain.Evaluation.EvaluationTranslations.CellTitleAverage] :
                ////    translations[Domain.Evaluation.EvaluationTranslations.CellTitleSum])
                ////    + ";";

                //export += translations[EvaluationTranslations.CellTitleGenericCriterionComment] + ";";
                //export += "Commento complessivo;";

                //export += "\r\n";

                //DATA
                foreach (dtoEvaluatorDisplayItem evaluator in evaluations.FirstOrDefault().Evaluators)
                {
                    export += evaluator.EvaluatorName + ";";

                    foreach (dtoCriterionEvaluated criterion in evaluator.Values)
                    {
                        export += criterion.Criterion.Name + ";";


                        switch (criterion.Criterion.Type)
                        {
                        case CriterionType.Boolean:
                            export += "Boolean;";
                            export += (criterion.DecimalValue > 0) ? "Approvato;" : "Non approvato;";
                            break;

                        case CriterionType.IntegerRange:
                            export += "Interi;";
                            export += criterion.DecimalValue.ToString("F0") + ";";
                            break;

                        case CriterionType.DecimalRange:
                            export += "Decimale;";
                            export += criterion.DecimalValue + ";";
                            break;

                        case CriterionType.StringRange:
                            export += "Qualitativo;";
                            export += criterion.StringValue + ";";
                            break;
                        }

                        export += criterion.Comment + ";";
                    }

                    export += evaluator.Comment + ";";

                    export += "\r\n";
                }
            }

            return(export);


            //return Service.ExportSummaryStatistics(summaryType, ServiceCall.GetDtoCall(idCall), ServiceCall.GetSubmissionWithRevisions(idSubmission, false), idSubmission, idCommittee, View.AnonymousDisplayName, View.UnknownDisplayname, exportData, fileType, translations, status);
        }
        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);
                    }
                }
            }
        }
Exemple #19
0
        public void InitView(Boolean allowUseOfDss)
        {
            long idCall = View.PreloadIdCall;

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

            call = CallService.GetDtoBaseCall(idCall);

            int idCommunity = SetCallCurrentCommunity(call);

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

                int idModule = CallService.ServiceModuleID();
                View.IdCallModule = idModule;
                if (call == null)
                {
                    View.LoadUnknowCall(idCommunity, idModule, idCall, type);
                }
                else if (call.Type != CallForPaperType.CallForBids)
                {
                    View.RedirectToUrl(RootObject.ViewCalls(idCall, type, CallStandardAction.List, idCommunity, View.PreloadView));
                }
                else if (allowManage || allowSave)
                {
                    View.AllowSave = true;
                    dtoEvaluationSettings settings = CallService.GetEvaluationSettings(idCall, allowUseOfDss);


                    View.EndEvaluationOn = (settings == null) ? null : settings.EndEvaluationOn;
                    View.IdCall          = idCall;
                    View.SetActionUrl(RootObject.ViewCalls(type, CallStandardAction.Manage, idCommunity, View.PreloadView));

                    if (Service.CallHasEvaluation(idCall))
                    {
                        InitializeBy(idCall, idCommunity);
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleCallForPaper.ActionType.ManageEvaluators);
                    }
                    else
                    {
                        View.DisplayNoEvaluations(false, false, false);
                    }
                    View.SetActionUrl(RootObject.ViewCalls(idCall, type, CallStandardAction.Manage, idCommunity, View.PreloadView));
                }

                else if (allowView)
                {
                    View.RedirectToUrl(RootObject.ViewCalls(idCall, type, CallStandardAction.List, idCommunity, View.PreloadView));
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, idModule);
                }
            }
        }
Exemple #20
0
        private void LoadData(
            Int32 idCommunity,
            dtoBaseForPaper call,
            EvaluationType type,
            dtoSubmissionRevision submission)
        {
            List <dtoCommitteeEvaluationInfo> committees =
                call.AdvacedEvaluation ?
                ServiceCall.GetCommitteesInfoForSubmission(submission.Id, call.Id, View.AdvCommissionId) :
                Service.GetCommitteesInfoForSubmission(submission.Id, call.Id);

            if (call.AdvacedEvaluation)
            {
                //EvaluationType oldEvtype = ServiceCall.CommissionGetEvalType(View.AdvCommissionId);
                EvaluationType oldEvtype = EvaluationType.Average;

                Advanced.dto.dtoCommEvalInfo evinfo = ServiceCall.CommissionEvalTypeGet(View.AdvCommissionId);

                switch (evinfo.Type)
                {
                case Advanced.EvalType.Average:
                    oldEvtype = EvaluationType.Average;
                    break;

                case Advanced.EvalType.Sum:
                    oldEvtype = EvaluationType.Sum;
                    break;
                }

                View.CurrentEvaluationType = oldEvtype;
            }
            else
            {
                View.CurrentEvaluationType = type;
            }


            View.CommitteesCount = committees.Count;
            String     owner       = (submission == null || (submission != null && (submission.IsAnonymous))) ? View.AnonymousDisplayName : ((submission.Owner != null) ? submission.Owner.SurnameAndName : View.UnknownDisplayname);
            litePerson submitter   = CurrentManager.GetLitePerson(submission.IdSubmittedBy);
            String     submittedBy = (submission.IdPerson == submission.IdSubmittedBy) ? "" : (submitter == null || submitter.TypeID == (int)UserTypeStandard.Guest) ? View.AnonymousDisplayName : submitter.SurnameAndName;

            View.SetViewEvaluationsUrl(RootObject.ViewSubmissionEvaluations(submission.Id, call.Id, idCommunity, View.AdvCommissionId));
            // View.SetViewSubmissionUrl(RootObject.ViewSubmissionAsManager(
            bool isPresident = false;

            if (call.AdvacedEvaluation)
            {
                isPresident = ServiceCall.CommissionUserIsPresident(View.AdvCommissionId, UserContext.CurrentUserID);
            }
            int minscore = (!call.AdvacedEvaluation) ? 0 :
                           (committees == null || !committees.Any()) ? 0 :
                           committees[0].MinValue;


            View.LoadSubmissionInfo(
                call.Name,
                owner,
                submission.SubmittedOn,
                submittedBy,
                committees,
                (committees == null || !committees.Any()) ? 0 : committees[0].IdCommittee,
                isPresident,
                minscore);

            if (type == EvaluationType.Dss)
            {
                InitializeDssInfo(call.Id);
            }
            LoadEvaluations(submission.Id, call.Id, type, View.IdCurrentCommittee, committees.Count);
        }
        public void LoadSkins(long idCall)
        {
            dtoBaseForPaper call = CallService.GetDtoBaseCall(idCall);

            LoadSkins(call);
        }
Exemple #22
0
        public void InitView()
        {
            Boolean isAnonymousUser = UserContext.isAnonymous;
            long    idCall          = View.PreloadIdCall;
            long    idSubmission    = View.PreloadIdSubmission;
            Int32   idUser          = UserContext.CurrentUserID;

            lm.Comol.Modules.CallForPapers.Domain.CallForPaperType type = ServiceCall.GetCallType(idCall);
            int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID();

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

            View.IdCall          = idCall;
            View.IdCallModule    = idModule;
            View.IdCallCommunity = idCommunity;
            View.IdSubmission    = idSubmission;
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.ViewSubmissionTableEvaluations(idSubmission, idCall, idCommunity));
            }
            else
            {
                if (call == null)
                {
                    View.DisplayUnknownCall(idCommunity, idModule, idCall, type);
                }
                else if (type == CallForPaperType.RequestForMembership)
                {
                    View.DisplayEvaluationUnavailable();
                }
                else
                {
                    ModuleCallForPaper module         = ServiceCall.CallForPaperServicePermission(idUser, idCommunity);
                    Boolean            allowAdmin     = ((module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)));
                    EvaluationType     evaluationType = ServiceCall.GetEvaluationType(idCall);

                    if (call.AdvacedEvaluation)
                    {
                        bool isPresident = ServiceCall.CommissionUserIsPresident(View.AdvCommissionId, idUser);
                        bool isSecretary = ServiceCall.CommissionUserIsSecretary(View.AdvCommissionId, idUser);

                        allowAdmin |= isPresident | isSecretary;
                    }


                    //View.CurrentEvaluationType = evaluationType;
                    if (!allowAdmin)
                    {
                        View.DisplayNoPermissionToView();
                    }
                    else
                    {
                        dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, false);
                        if (submission == null)
                        {
                            View.DisplayUnknownSubmission(idCommunity, idModule, idSubmission, type);
                        }
                        else
                        {
                            LoadData(idCommunity, call, evaluationType, submission);
                        }
                    }
                }
            }
        }
Exemple #23
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)
                {
                    allowSave      = allowSave && (type == CallForPaperType.RequestForMembership || (type != CallForPaperType.RequestForMembership && (!CallService.CallHasSubmissions(idCall))));
                    View.AllowSave = allowSave;
                    View.IdCall    = idCall;
                    List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> availableActions = new List <Core.DomainModel.Repository.RepositoryAttachmentUploadActions>()
                    {
                        Core.DomainModel.Repository.RepositoryAttachmentUploadActions.uploadtomoduleitem
                    };
                    lm.Comol.Core.FileRepository.Domain.RepositoryIdentifier rIdentifier = call.GetRepositoryIdentifier();
                    if (!(rIdentifier.Type == Core.FileRepository.Domain.RepositoryType.Community && rIdentifier.IdCommunity == 0))
                    {
                        View.InitializeAttachmentsControl(idCall, type, rIdentifier, availableActions, Core.DomainModel.Repository.RepositoryAttachmentUploadActions.uploadtomoduleitem);
                    }

                    List <lm.Comol.Core.Wizard.NavigableWizardItem <WizardCallStep> > steps = CallService.GetAvailableSteps(idCall, WizardCallStep.Attachments, type);
                    View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewCalls(type, CallStandardAction.Manage, idCommunity, View.PreloadView));
                    View.LoadWizardSteps(idCall, type, idCommunity, steps);

                    if (type == CallForPaperType.CallForBids)
                    {
                        LoadAttachments(idCall, module);
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleCallForPaper.ActionType.EditAttachments);
                    }
                    else
                    {
                        LoadAttachments(idCall, moduleR);
                        View.SendUserAction(idCommunity, idModule, idCall, ModuleRequestForMembership.ActionType.EditAttachments);
                    }
                    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);
                }
            }
        }