예제 #1
0
        public async Task <IActionResult> GeneratePhaseView(int phaseId, int projectId)
        {
            PhaseViewModel viewModel = new PhaseViewModel();
            PhaseModel     phase     = await EzTask.Phase.GetPhaseById(phaseId);

            if (phase == null)
            {
                phase = new PhaseModel();
            }

            viewModel.Status    = phase.Status.ToInt16 <PhaseStatus>();
            viewModel.PhaseId   = phaseId;
            viewModel.ProjectId = projectId;
            viewModel.IsDefault = phase.IsDefault;
            viewModel.PhaseName = phase.PhaseName;
            viewModel.PhaseGoal = phase.PhaseGoal;

            if (!viewModel.IsDefault)
            {
                viewModel.StartDate = phase.StartDate.Value.ToString("dd/MM/yyyy");
                viewModel.EndDate   = phase.EndDate.Value.ToString("dd/MM/yyyy");
            }

            viewModel.StatusList = StaticResources.BuildPhaseStatusSelectList(viewModel.Status);

            return(PartialView("_CreateOrUpdatePhase", viewModel));
        }
예제 #2
0
        public async Task <IActionResult> Post([FromBody] PhaseViewModel phase)
        {
            //var dbPhase = new Phase();

            var result = await _service.CreateAsync(phase);

            return(Ok());
        }
예제 #3
0
 public static Phase FromPhaseViewModel(PhaseViewModel viewModel)
 {
     return(new Phase()
     {
         PlanningWizardPhaseID = viewModel.PhaseId,
         IsSelected = viewModel.Selected,
         Steps = viewModel.Steps.Select(FromStepViewModel).ToList()
     });
 }
예제 #4
0
        public async Task <IActionResult> EditPhaseModal(int id)
        {
            var phase = await _taskPhaseAppService.Get(new EntityDto <int> {
                Id = id
            });

            var vmModel = new PhaseViewModel
            {
                Phase = phase
            };

            return(View("_EditPhaseModal", vmModel));
        }
예제 #5
0
        public static PhaseViewModel ToWorkflowPhaseViewModel(Phase phase)
        {
            var viewModel = new PhaseViewModel()
            {
                PhaseId   = phase.PlanningWizardPhaseID,
                Name      = phase.NameHtml,
                Selected  = phase.IsSelected,
                SortOrder = phase.SortOrder
            };

            viewModel.Steps.AddRange(phase.Steps.Select(ToWorkflowStepViewModel));

            if (!viewModel.Steps.Any(s => s.Selected))
            {
                viewModel.Steps.First().Selected = true;
            }

            return(viewModel);
        }
예제 #6
0
        public PhaseViewModel CreatePhaseViewModel(bool ishorizontal, string content, double angle)
        {
            PhaseViewModel nn1 = new PhaseViewModel()
            {
                Header = new SwimlaneHeaderViewModel()
                {
                    Annotation = new AnnotationEditorViewModel()
                    {
                        RotateAngle = angle, Content = content, Offset = new Point(0.5, 0.5)
                    }
                },
            };

            if (ishorizontal)
            {
                (nn1.Header as SwimlaneHeaderViewModel).UnitHeight = 30;
            }
            else
            {
                (nn1.Header as SwimlaneHeaderViewModel).UnitWidth = 50;
            }
            return(nn1);
        }
예제 #7
0
        public async Task <IActionResult> CreateOrUpdatePhase(PhaseViewModel viewmodel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(Context.GetStringResource("CreatePhaseError", StringResourceType.TaskPage)));
            }

            PhaseModel model = new PhaseModel()
            {
                StartDate = DateTimeUtilities.ParseFromString(viewmodel.StartDate),
                EndDate   = DateTimeUtilities.ParseFromString(viewmodel.EndDate),
                Id        = viewmodel.PhaseId,
                PhaseName = viewmodel.PhaseName,
                ProjectId = viewmodel.ProjectId,
                IsDefault = viewmodel.IsDefault,
                PhaseGoal = viewmodel.PhaseGoal,
                Status    = viewmodel.Status.ToEnum <PhaseStatus>()
            };

            if (model.EndDate < model.StartDate)
            {
                return(BadRequest(Context.GetStringResource("DateRange", StringResourceType.Error)));
            }

            ResultModel <PhaseModel> iResult = await EzTask.Phase.Save(model);

            if (iResult.Status == ActionStatus.Ok)
            {
                return(await LoadPhaseListAsync(model.ProjectId));
            }

            if (model.Id > 0)
            {
                return(BadRequest(Context.GetStringResource("UpdatePhaseError", StringResourceType.TaskPage)));
            }
            return(BadRequest(Context.GetStringResource("CreatePhaseError", StringResourceType.TaskPage)));
        }
예제 #8
0
        private void InitializeDiagram()
        {
            SwimlaneViewModel swimLane = new SwimlaneViewModel();

            swimLane.Orientation = Orientation.Horizontal;
            swimLane.OffsetX     = 400;
            swimLane.OffsetY     = 300;
            swimLane.UnitWidth   = 650;
            swimLane.UnitHeight  = 500;

            swimLane.Header = new SwimlaneHeaderViewModel()
            {
                UnitHeight = 50,
                Annotation = new AnnotationEditorViewModel()
                {
                    Content = "SALES PROCESS FLOW CHART"
                },
            };
            PhaseViewModel nn1 = CreatePhaseViewModel(true, "Phase1", 0);

            nn1.UnitWidth = 760;

            swimLane.Phases = new ObservableCollection <PhaseViewModel>()
            {
                nn1
            };

            LaneViewModel ll1 = CreateLaneViewModel(true, "Consumer", 270);
            NodeViewModel n1  = ChildElement(ll1, "Rectangle", "Consumer learns of product", 130, 55);
            NodeViewModel n2  = ChildElement(ll1, "Decision", "Does Consumer \n want the product", 320, 55);
            NodeViewModel n3  = ChildElement(ll1, "Flow", "No sales lead", 520, 55);
            NodeViewModel n4  = ChildElement(ll1, "Rectangle", "Sell to consumer", 680, 55);


            LaneViewModel ll2 = CreateLaneViewModel(true, "Marketing", 270);
            NodeViewModel n5  = ChildElement(ll2, "Rectangle", "Create marketing campaigns", 130, 55);
            NodeViewModel n6  = ChildElement(ll2, "Rectangle", "Marketing finds sales leads", 320, 55);


            LaneViewModel ll3 = CreateLaneViewModel(true, "Sales", 270);
            NodeViewModel n7  = ChildElement(ll3, "Rectangle", "Sales receives lead", 320, 60);

            LaneViewModel ll4 = CreateLaneViewModel(true, "Success", 270);
            NodeViewModel n8  = ChildElement(ll4, "Rectangle", "Success helps retain consumer as a customer", 680, 55);

            ll1.UnitHeight = 115;
            ll2.UnitHeight = 115;
            ll3.UnitHeight = 115;
            ll4.UnitHeight = 115;
            swimLane.Lanes = new ObservableCollection <LaneViewModel>()
            {
                ll1, ll2, ll3, ll4
            };

            (this.Swimlanes as ObservableCollection <SwimlaneViewModel>).Add(swimLane);



            CreateConnection(n1, n2);
            ConnectorViewModel noconnector = CreateConnection(n2, n3);

            noconnector.Annotations = new ObservableCollection <IAnnotation>()
            {
                new AnnotationEditorViewModel()
                {
                    Content = "No"
                }
            };
            CreateConnection(n4, n8);
            ConnectorViewModel yesconnector = CreateConnection(n2, n6);

            yesconnector.Annotations = new ObservableCollection <IAnnotation>()
            {
                new AnnotationEditorViewModel()
                {
                    Content = "Yes", RotationReference = RotationReference.Page, Length = 0.4
                }
            };
            CreateConnection(n5, n1);
            CreateConnection(n6, n7);
            ConnectorViewModel con   = CreateConnection(n4, n7);
            NodePortViewModel  port  = CreatePort(n4, 0, 0.5);
            NodePortViewModel  port1 = CreatePort(n7, 1, 0.5);

            con.SourcePort = port;
            con.TargetPort = port1;
        }
예제 #9
0
        public async Task <IActionResult> Put(int id, [FromBody] PhaseViewModel phase)
        {
            await _service.UpdateAsync(id, phase);

            return(Ok());
        }