コード例 #1
0
 public void InitView(long idActivity, String unknownUser, List <dtoLiteMapActivity> activities)
 {
     View.IdActivity = idActivity;
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         View.Activities = activities;
         litePmActivity      activity = Service.GetLiteActivity(idActivity);
         liteProjectSettings project  = Service.GetProjectSettings((activity != null) ? activity.IdProject :0);
         if (activity == null || project == null)
         {
             View.DisplayUnknownActivity();
         }
         else
         {
             View.IdProject = activity.IdProject;
             dtoActivity dto = GetActivity(project, activity, activities, true);
             View.isCompleted = dto.IsCompleted;
             View.LoadSettings(dto, project.AllowEstimatedDuration, project.AllowMilestones);
             List <dtoResource> resources = project.Resources.Select(r => new dtoResource(r, unknownUser)).ToList();
             View.LoadResources(dto.Permission.SetResources, resources, dto.IdResources);
             LoadAssignments(project, dto, resources);
         }
     }
 }
コード例 #2
0
        public void SaveActivity(long idProject, long idActivity, dtoActivity activity, List <long> idResources, List <dtoActivityLink> links, List <dtoActivityCompletion> assignments, Boolean isCompleted, DateTime?prStartDate = null, DateTime?prEndDate = null, DateTime?prDeadline = null)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                dtoField <DateTime?> startDate = new dtoField <DateTime?>()
                {
                    Init = prStartDate
                };
                dtoField <DateTime?> endDate = new dtoField <DateTime?>()
                {
                    Init = prEndDate
                };
                dtoField <DateTime?> deadLine = new dtoField <DateTime?>()
                {
                    Init = prDeadline
                };

                ActivityEditingErrors errors = Service.SaveActivity(idProject, idActivity, activity, idResources, links, assignments, isCompleted, ref startDate, ref endDate, ref deadLine);
                if (errors == ActivityEditingErrors.None)
                {
                    View.SendUserAction(View.ProjectIdCommunity, CurrentIdModule, idProject, ModuleProjectManagement.ActionType.ActivitySaved);
                    View.DisplayActivitySaved(idActivity, startDate, endDate, deadLine);
                }
                else
                {
                    View.DisplayUnableToSaveActivity();
                    View.SendUserAction(View.ProjectIdCommunity, CurrentIdModule, idProject, ModuleProjectManagement.ActionType.ActivityUnableToSave);
                }
            }
        }
コード例 #3
0
 private void LoadAssignments(liteProjectSettings project, dtoActivity dto, List <dtoResource> resources)
 {
     if (dto.IsSummary)
     {
         View.LoadSummaryCompletion(dto.Completeness, dto.IsCompleted, dto.Permission);
     }
     else
     {
         List <dtoActivityCompletion> assignments = new List <dtoActivityCompletion>();
         foreach (dtoResource resource in resources.OrderBy(r => r.LongName))
         {
             dtoActivityCompletion assignment = dto.Assignments.Where(a => a.IdResource == resource.IdResource).FirstOrDefault();
             if (assignment == null)
             {
                 assignment              = new dtoActivityCompletion();
                 assignment.IdResource   = resource.IdResource;
                 assignment.Completeness = (dto.IsCompleted) ? 100 :0;
                 assignment.IsApproved   = (dto.IsCompleted) ? true : !project.ConfirmCompletion;
                 assignment.Deleted      = true;
             }
             assignment.IdPerson    = resource.IdPerson;
             assignment.DisplayName = resource.LongName;
             assignment.AllowEdit   = dto.Permission.SetCompleteness || dto.Permission.SetOthersCompletion || (dto.Permission.SetMyCompletion && resource.IdPerson == UserContext.CurrentUserID);
             assignments.Add(assignment);
         }
         View.LoaderAssignments = assignments;
         View.LoadCompletion(dto.Completeness, dto.IsCompleted, assignments, dto.Permission);
     }
 }
コード例 #4
0
        //public void VirtualDeleteLink(long idProject,long idActivity, long idLink, List<dtoLiteMapActivity> activities)
        //{
        //    if (UserContext.isAnonymous)
        //        View.DisplaySessionTimeout();
        //    else {
        //        if (Service.SetPredecessorVirtualDelete(idActivity, idLink, true))
        //        {
        //            View.DisplayLinkRemoved();
        //            ReloadData(idProject, idActivity,activities, true);
        //        }
        //        else
        //            View.DisplayUnableToRemoveLink();
        //    }
        //}
        //public void AddLink(long idProject, long idActivity, List<long> idPredecessors, List<dtoLiteMapActivity> activities)
        //{
        //    if (UserContext.isAnonymous)
        //        View.DisplaySessionTimeout();
        //    else
        //    {
        //        if (idPredecessors.Any()){
        //            List<PmActivityLink> links = Service.AddPredecessors(idActivity, idPredecessors, activities);
        //            if (links !=null )
        //            {
        //                View.DisplayLinkRemoved();
        //                ReloadData(idProject, idActivity, activities,true);
        //            }
        //            else
        //                View.DisplayUnableToAddLink();
        //        }
        //    }
        //}

        //public void SaveLinks(long idProject, long idActivity, List<dtoActivityLink> links, List<dtoLiteMapActivity> activities)
        //{
        //    if (UserContext.isAnonymous)
        //        View.DisplaySessionTimeout();
        //    else
        //    {
        //        if (links.Any())
        //        {
        //            if (Service.SaveActivityPredecessors(idActivity, links))
        //            {
        //                View.DisplayLinksSaved();
        //                ReloadData(idProject, idActivity, activities, true);
        //            }
        //            else
        //                View.DisplayLinksUnsaved();
        //        }
        //    }
        //}

        private void ReloadPredecessorsData(long idProject, long idActivity, List <dtoActivityLink> links, List <dtoLiteMapActivity> activities)
        {
            litePmActivity      activity = Service.GetLiteActivity(idActivity);
            liteProjectSettings project  = Service.GetProjectSettings((activity != null) ? activity.IdProject : 0);

            if (activity != null && project != null)
            {
                dtoActivity dto = GetActivity(project, activity, activities);
                dto.Links = links.Where(l => !l.Deleted && !l.InCycles).ToList();
                List <long> idPredecessors = Service.GetAvailableIdPredecessors(dto, activities).Where(id => !dto.Links.Where(l => l.IdTarget == id).Any()).ToList();
                View.LoadAvailableLinks(activities.Where(a => idPredecessors.Contains(a.IdActivity)).ToDictionary(a => a.IdActivity, act => act.RowNumber + " - " + (String.IsNullOrEmpty(act.Current.Name) ? act.Previous.Name : act.Current.Name)), dto.Links.ToList());
            }
        }
コード例 #5
0
        private void ReloadData(long idProject, long idActivity, List <dtoLiteMapActivity> activities, Boolean reloadSettings = false)
        {
            litePmActivity      activity = Service.GetLiteActivity(idActivity);
            liteProjectSettings project  = Service.GetProjectSettings((activity != null) ? activity.IdProject : 0);

            if (activity == null || project == null)
            {
                View.DisplayUnknownActivity();
            }
            else
            {
                dtoActivity dto = GetActivity(project, activity, activities);
                if (reloadSettings)
                {
                    View.ReloadSettings(dto, project.AllowEstimatedDuration, project.AllowMilestones);
                }
            }
        }
コード例 #6
0
        private dtoActivity GetActivity(liteProjectSettings project, litePmActivity activity, List <dtoLiteMapActivity> activities, Boolean firstLoad = false)
        {
            Person p = CurrentManager.GetPerson(UserContext.CurrentUserID);
            ModuleProjectManagement mPermission  = (project.isPortal) ? ModuleProjectManagement.CreatePortalmodule((p == null) ? (Int32)UserTypeStandard.Guest : p.TypeID) : new ModuleProjectManagement(CurrentManager.GetModulePermission(UserContext.CurrentUserID, project.IdCommunity, CurrentIdModule));
            PmActivityPermission    pPermissions = Service.GetProjectPermission(activity.IdProject, UserContext.CurrentUserID);

            dtoActivity dto         = new dtoActivity(activity);
            Boolean     allowEdit   = (mPermission.Administration && !project.isPersonal) || pPermissions.HasFlag(PmActivityPermission.ManageProject);
            Boolean     allowDelete = (mPermission.Administration && !project.isPersonal) || pPermissions.HasFlag(PmActivityPermission.ManageProject);

            dto.Permission = new dtoActivityPermission(pPermissions, allowEdit, allowDelete, project.AllowSummary, project.DateCalculationByCpm);
            dto.Permission.ViewPredecessors = dto.Permission.ViewPredecessors && !dto.IsSummary;
            dto.Permission.SetPredecessors  = (allowEdit || pPermissions.HasFlag(PmActivityPermission.ManageLinks)) && project.DateCalculationByCpm && !dto.IsSummary;
            dto.Permission.SetDuration      = dto.Permission.SetDuration && !dto.IsSummary;
            dto.Permission.SetResources     = dto.Permission.SetResources && !dto.IsSummary;
            View.AllowDelete = allowDelete;
            View.AllowEdit   = allowEdit;
            LoadLinks(dto, activities, firstLoad);

            return(dto);
        }
コード例 #7
0
        private void LoadLinks(dtoActivity dto, List <dtoLiteMapActivity> activities, Boolean firstLoad = false)
        {
            foreach (dtoActivityLink l in dto.Links)
            {
                dtoLiteMapActivity act = activities.Where(a => a.IdActivity == l.IdTarget).FirstOrDefault();
                if (act != null)
                {
                    l.Name        = (String.IsNullOrEmpty(act.Current.Name) ? act.Previous.Name : act.Current.Name);
                    l.RowNumber   = act.RowNumber;
                    l.AllowDelete = dto.Permission.SetPredecessors;
                }
                else
                {
                    l.Id = 0;
                }
            }
            List <long> idPredecessors = Service.GetAvailableIdPredecessors(dto, activities).Where(id => !dto.Links.Where(l => l.IdTarget == id).Any()).ToList();

            if (firstLoad)
            {
                View.LoaderLinks = dto.Links;
            }
            View.LoadAvailableLinks(activities.Where(a => idPredecessors.Contains(a.IdActivity)).ToDictionary(a => a.IdActivity, act => act.RowNumber + " - " + (String.IsNullOrEmpty(act.Current.Name) ? act.Previous.Name : act.Current.Name)), dto.Links.Where(l => l.Id > 0).ToList());
        }