Пример #1
0
        public void InitView()
        {
            long idProject             = View.PreloadIdProject;
            dtoProjectContext cContext = new dtoProjectContext()
            {
                IdCommunity = View.PreloadIdCommunity, isPersonal = View.PreloadIsPersonal, isForPortal = View.PreloadForPortal
            };
            dtoProject project = InitializeContext(idProject, ref cContext);

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Person p = CurrentManager.GetPerson(UserContext.CurrentUserID);
                SetBackUrls(View.PreloadFromPage, View.PreloadIdContainerCommunity, project, cContext);

                List <lm.Comol.Core.Wizard.NavigableWizardItem <dtoProjectManagementStep> > steps = Service.GetAvailableSteps(WizardProjectStep.Settings, idProject);
                View.LoadWizardSteps(idProject, cContext.IdCommunity, cContext.isPersonal, cContext.isForPortal, steps);
                if (project == null)
                {
                    View.DisplayUnknownProject();
                    View.SendUserAction(UserContext.CurrentCommunityID, CurrentIdModule, idProject, ModuleProjectManagement.ActionType.ProjectUnknown);
                }
                else
                {
                    ModuleProjectManagement mPermission  = (project.isPortal) ? ModuleProjectManagement.CreatePortalmodule((p == null) ? (Int32)UserTypeStandard.Guest : p.TypeID) : new ModuleProjectManagement(CurrentManager.GetModulePermission(UserContext.CurrentUserID, cContext.IdCommunity, CurrentIdModule));
                    PmActivityPermission    pPermissions = Service.GetProjectPermission(idProject, UserContext.CurrentUserID);

                    List <ProjectAvailability> availabilities = new List <ProjectAvailability>();
                    ProjectAvailability        cAvailability  = project.Availability;
                    Boolean hasActivities = Service.HasTasks(project.Id);
                    if (project.Availability == ProjectAvailability.Draft)
                    {
                        availabilities.Add(ProjectAvailability.Draft);
                    }
                    if (hasActivities)
                    {
                        availabilities.Add(ProjectAvailability.Active);
                        availabilities.Add(ProjectAvailability.Closed);
                        availabilities.Add(ProjectAvailability.Suspended);
                    }

                    Boolean allowChangeOwner              = false;
                    Boolean allowChangeOwnerFromResource  = false;
                    Boolean allowChangeOwnerFromCommunity = false;
                    if ((mPermission.Administration && !project.isPersonal) || (pPermissions & PmActivityPermission.ManageProject) == PmActivityPermission.ManageProject)
                    {
                        View.AllowSave = true;
                        View.SendUserAction(cContext.IdCommunity, CurrentIdModule, idProject, ModuleProjectManagement.ActionType.ProjectStartEditing);
                        if (View.PreloadAddedProject)
                        {
                            View.DisplayAddedInfo(View.PreloadRequiredActions, View.PreloadAddedActions);
                        }

                        allowChangeOwner              = (mPermission.Administration && !project.isPersonal) || ((pPermissions & PmActivityPermission.ChangeOwner) == PmActivityPermission.ChangeOwner);
                        allowChangeOwnerFromResource  = (project.Resources.Count > 1);
                        allowChangeOwnerFromCommunity = (project.IdCommunity > 0);
                        View.InitializeProject(project, hasActivities, project.Resources.Where(r => r.ProjectRole == ActivityRole.ProjectOwner).FirstOrDefault(), availabilities, cAvailability, allowChangeOwner, allowChangeOwnerFromResource, allowChangeOwnerFromCommunity);
                    }
                    else
                    {
                        ProjectResource resource = Service.GetResource(idProject, UserContext.CurrentUserID);
                        if (resource != null && resource.Visibility == ProjectVisibility.Full)
                        {
                            View.InitializeProject(project, hasActivities, project.Resources.Where(r => r.ProjectRole == ActivityRole.ProjectOwner).FirstOrDefault(), availabilities, cAvailability, allowChangeOwner, allowChangeOwnerFromResource, allowChangeOwnerFromCommunity);
                            View.SendUserAction(cContext.IdCommunity, CurrentIdModule, idProject, ModuleProjectManagement.ActionType.ProjectViewSettings);
                        }
                        else
                        {
                            View.DisplayNoPermission(cContext.IdCommunity, CurrentIdModule);
                        }
                    }
                }
            }
        }
 public dtoSettingsStep(WizardProjectStep type, Project project)
     : base(type)
 {
     Availability = (project == null) ? ProjectAvailability.Draft : project.Availability;
 }