public void InitView() { Boolean allowAdmin = false; Boolean isAnonymousUser = UserContext.isAnonymous; long idCall = View.PreloadIdCall; CallForPaperType type = ServiceCall.GetCallType(idCall); long idSubmission = View.PreloadedIdSubmission; long idRevision = View.PreloadedIdRevision; Guid uniqueId = View.PreloadedUniqueID; dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, true); int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID(); dtoBaseForPaper call = ServiceCall.GetDtoBaseCall(idCall); int idCommunity = SetCallCurrentCommunity(call); View.isAnonymousSubmission = true; View.IdCall = idCall; View.IdCallModule = idModule; View.IdCallCommunity = idCommunity; View.CallType = type; View.IdSubmission = idSubmission; if (idRevision == 0 && submission != null) { idRevision = submission.GetIdLastActiveRevision(); } View.IdRevision = idRevision; if (submission == null || submission.Owner == null || (submission != null && submission.UniqueId != uniqueId)) { View.DisplayUnknownSubmission(idCommunity, idModule, idSubmission, type); } else { if (idCall != submission.IdCall) { idCall = submission.IdCall; call = ServiceCall.GetDtoBaseCall(idCall); idCommunity = SetCallCurrentCommunity(call); type = (call != null) ? call.Type : type; idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID(); View.IdCall = idCall; View.IdCallModule = idModule; View.IdCallCommunity = idCommunity; View.CallType = type; } if (call == null) { View.DisplayUnknownCall(idCommunity, idModule, idCall, type); if (!isAnonymousUser) { View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, idCommunity, View.PreloadView)); } } else if (isAnonymousUser && !submission.IsAnonymous) { View.DisplaySessionTimeout(); } else if (isAnonymousUser && !call.IsPublic) { View.DisplayCallUnavailableForPublic(); } else { int idUser = UserContext.CurrentUserID; litePerson currenUser = GetCurrentUser(ref idUser); Boolean allowView = false; View.CallRepository = call.GetRepositoryIdentifier(); switch (type) { case CallForPaperType.CallForBids: ModuleCallForPaper module = ServiceCall.CallForPaperServicePermission(idUser, idCommunity); allowView = (submission.Owner.Id == idUser || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)); allowAdmin = (module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)); break; case CallForPaperType.RequestForMembership: ModuleRequestForMembership moduleR = ServiceCall.RequestForMembershipServicePermission(idUser, idCommunity); allowView = (submission.Owner.Id == idUser || moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser)); allowAdmin = (moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser)); break; } View.InitializeView(ServiceCall.GetExternalContext(idCall)); CallStatusForSubmitters fromView = View.PreloadView; if (fromView == CallStatusForSubmitters.None) { fromView = (allowAdmin) ? CallStatusForSubmitters.SubmissionClosed : CallStatusForSubmitters.Submitted; } if (allowView) { if (!isAnonymousUser) { View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, idCommunity, fromView)); } else if (View.FromPublicList) { View.SetActionUrl(CallStandardAction.List, RootObject.PublicCollectorCalls(type, idCall, idCommunity)); } } if (submission.Deleted != BaseStatusDeleted.None && !allowAdmin) { View.DisplaySubmissionUnavailable(); } else if (allowAdmin || allowView || (isAnonymousUser && submission.IsAnonymous && submission.UniqueId == View.PreloadedUniqueID)) { LoadSubmission(call, submission, idUser, allowAdmin); } else { View.DisplayNoPermission(idCommunity, idModule); } } } }
public void InitView(Boolean forPublicCall) { Boolean allowAdmin = false; Boolean isAnonymousUser = UserContext.isAnonymous; long idCall = View.PreloadIdCall; CallForPaperType type = ServiceCall.GetCallType(idCall); long idSubmission = View.PreloadedIdSubmission; long idRevision = View.PreloadedIdRevision; Guid uniqueId = View.PreloadedUniqueID; View.IsAdvance = ServiceCall.CallIsAdvanced(idCall); dtoSubmissionRevision submission = ServiceCall.GetSubmissionWithRevisions(idSubmission, true); int idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID(); dtoBaseForPaper call = ServiceCall.GetDtoBaseCall(idCall); int idCommunity = SetCallCurrentCommunity(call); View.isAnonymousSubmission = forPublicCall; View.IdCall = idCall; View.IdCallModule = idModule; View.IdCallCommunity = idCommunity; View.CallType = type; View.IdSubmission = idSubmission; if (idRevision == 0 && submission != null) { idRevision = submission.GetIdLastActiveRevision(); } View.IdRevision = idRevision; if (submission == null || submission.Owner == null) { View.DisplayUnknownSubmission(idCommunity, idModule, idSubmission, type); } else { if (idCall != submission.IdCall) { idCall = submission.IdCall; call = ServiceCall.GetDtoBaseCall(idCall); idCommunity = SetCallCurrentCommunity(call); type = (call != null) ? call.Type : type; idModule = (type == CallForPaperType.CallForBids) ? ServiceCall.ServiceModuleID() : ServiceRequest.ServiceModuleID(); View.IdCall = idCall; View.IdCallModule = idModule; View.IdCallCommunity = idCommunity; View.CallType = type; } if (call == null) { View.DisplayUnknownCall(idCommunity, idModule, idCall, type); if (!isAnonymousUser) { View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, View.PreloadIdOtherCommunity, View.PreloadView)); } } else if (isAnonymousUser && !forPublicCall) { if (call.IsPublic && submission.IsAnonymous) { View.GoToUrl(RootObject.ViewSubmission(type, idCall, idSubmission, idRevision, uniqueId, true, false, View.PreloadView, View.PreloadIdOtherCommunity, 0)); } else { View.DisplaySessionTimeout(); } } else if (isAnonymousUser && forPublicCall && !call.IsPublic) { View.DisplayCallUnavailableForPublic(); } else { int idUser = UserContext.CurrentUserID; litePerson currenUser = GetCurrentUser(ref idUser); Boolean allowView = false; View.CallRepository = call.GetRepositoryIdentifier(); switch (type) { case CallForPaperType.CallForBids: ModuleCallForPaper module = ServiceCall.CallForPaperServicePermission(idUser, idCommunity); allowView = (submission.Owner.Id == idUser || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)); allowAdmin = (View.PreloadFromManagement && (module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser))); break; case CallForPaperType.RequestForMembership: ModuleRequestForMembership moduleR = ServiceCall.RequestForMembershipServicePermission(idUser, idCommunity); allowView = (submission.Owner.Id == idUser || moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser)); allowAdmin = (View.PreloadFromManagement && (moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser))); break; } if (View.IsAdvance) { Advanced.SubmissionListPermission permission = ServiceCall.SubmissionCanList(idCall); if ((permission & Advanced.SubmissionListPermission.View) == Advanced.SubmissionListPermission.View) { allowView = true; } if ((permission & Advanced.SubmissionListPermission.Manage) == Advanced.SubmissionListPermission.Manage) { allowAdmin = true; } } View.ShowAdministrationTools = allowAdmin; CallStatusForSubmitters fromView = View.PreloadView; if (fromView == CallStatusForSubmitters.None) { fromView = (allowAdmin) ? CallStatusForSubmitters.SubmissionClosed : CallStatusForSubmitters.Submitted; } if (!allowAdmin && allowView) { View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(type, CallStandardAction.List, View.PreloadIdOtherCommunity, fromView)); } else if (allowAdmin) { View.SetActionUrl(CallStandardAction.Manage, RootObject.ViewSubmissions(type, idCall, idSubmission, idRevision, fromView, View.PreloadFilterSubmission, View.PreloadOrderSubmission, View.PreloadAscending, View.PreloadPageIndex, View.PreloadPageSize)); } if (submission.Deleted != BaseStatusDeleted.None && !allowAdmin) { View.DisplaySubmissionUnavailable(); } else if (allowAdmin || allowView || (isAnonymousUser && submission.IsAnonymous && submission.UniqueId == View.PreloadedUniqueID)) { LoadSubmission(call, submission, idUser, allowAdmin); } else { View.DisplayNoPermission(idCommunity, idModule); } } } bool ShowSendIntegration = false; if (call.AdvacedEvaluation) { ShowSendIntegration = ServiceCall.ShowSendIntegration(idSubmission, View.CommissionId); } View.ShowHideSendIntegration(ShowSendIntegration); if (View.IsAdvance) { if (!ServiceCall.SignSubmissionIsNotExpired(idSubmission, idRevision, DateTime.Now, DateTime.Now)) { bool ShowMessage = (submission.Status == SubmissionStatus.waitforsignature); View.DisplayOutOfTime("Expired", ShowMessage, false); } } }
public void InitView() { Boolean 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)); } } } }
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); } } }