Пример #1
0
        private bool CanInsertState(PlanningApp planningApp, int GeneratorOrder, StateInitialiserState stateInitialiserState)
        {
            if (planningApp.CurrentPlanningStatus != statusList.Where(s => s.Name == StatusList.AppInProgress).SingleOrDefault())
            {
                return(false);
            }

            var currentState = planningApp.Current();

            if (currentState == null)
            {
                return(true);  //New Application Being Created
            }
            else
            {
                if (GeneratorOrder == currentState.GeneratorOrder && stateInitialiserState.OrderId > currentState.state.OrderId)
                {
                    return(true);
                }
                else if (GeneratorOrder > currentState.GeneratorOrder)
                {
                    return(true);
                }
            }

            return(false);
        }
        public static StateInitialiserState createGeneratorState(string name, int stateNo, int noOfDays, int alertDays)
        {
            var GNS = new StateInitialiserState();

            GNS.Name                  = name + ":State" + stateNo;
            GNS.OrderId               = stateNo;
            GNS.CompletionTime        = noOfDays;
            GNS.AlertToCompletionTime = alertDays;
            return(GNS);
        }
Пример #3
0
        public void AddAfter(StateInitialiserState stateInitialiserState, int sortOrderId)
        {
            var stateInitialiser = GetStateInitialiser(stateInitialiserState.StateInitialiserId);

            //increment order for all states after specified sort id
            stateInitialiser.States.Where(x => x.OrderId > sortOrderId)
            .ToList()
            .ForEach(s => s.OrderId += 1);

            stateInitialiserState.OrderId = sortOrderId + 1;
            //updates sort orders
            vegaDbContext.Update(stateInitialiser);
            //insert new state
            vegaDbContext.Add(stateInitialiserState);
        }
Пример #4
0
        private bool CanRemoveState(PlanningApp planningApp, int GeneratorOrder, StateInitialiserState stateInitialiserState)
        {
            if (planningApp.CurrentPlanningStatus != statusList.Where(s => s.Name == StatusList.AppInProgress).SingleOrDefault())
            {
                return(false);
            }
            var currentState = planningApp.Current();

            if (GeneratorOrder > currentState.GeneratorOrder)
            {
                return(true);
            }

            return(false);
        }
Пример #5
0
 public void RemovePlanningState(StateInitialiserState stateInitialiserState)
 {
     if (!Completed())
     {
         var currentState = Current();
         if (stateInitialiserState.OrderId > currentState.state.OrderId)
         {
             var planningStateToRemove = this.PlanningAppStates.Where(s => s.state.Id == stateInitialiserState.Id).SingleOrDefault();
             if (planningStateToRemove != null)
             {
                 this.PlanningAppStates.Remove(planningStateToRemove);
                 updateDueByDates();
             }
         }
     }
 }
Пример #6
0
        public void AddBeginning(StateInitialiserState stateInitialiserState)
        {
            var stateInitialiser = GetStateInitialiser(stateInitialiserState.StateInitialiserId);

            if (stateInitialiser.States.Count > 0)
            {
                stateInitialiserState.OrderId = stateInitialiser.States.Min(o => o.OrderId);
                //increment order for all states after
                stateInitialiser.States.ForEach(s => s.OrderId += 1);
                //updates sort orders
                vegaDbContext.Update(stateInitialiser);
            }
            else
            {
                stateInitialiserState.OrderId = 1;
            }
            //insert new state
            vegaDbContext.Add(stateInitialiserState);
        }
        public async Task <IActionResult> GetStateInitialiser(int id, [FromQuery] bool includeDeleted)
        {
            var stateInitialiser = await stateRepository.GetStateInitialiser(id, includeDeleted);

            //create beginning state so user can add new states afterwards : BIT HACKY!!!
            StateInitialiserState startState = new StateInitialiserState();

            startState.CompletionTime = 0;
            startState.OrderId        = 0;
            startState.Name           = "START";
            stateInitialiser.States.Insert(0, startState);

            if (stateInitialiser == null)
            {
                return(NotFound());
            }

            var result = mapper.Map <StateInitialiser, StateInitialiserResource>(stateInitialiser);

            return(Ok(result));
        }
Пример #8
0
        public PlanningApp InsertNewPlanningState(StateInitialiserState newStateInitialiser, IEnumerable <StateStatus> stateStatus)
        {
            if (!Completed())
            {
                var currentState = Current();

                if (newStateInitialiser.OrderId > currentState.state.OrderId)
                {
                    //Remove states after current state
                    var states = this.PlanningAppStates.ToList();

                    PlanningAppState newState = new PlanningAppState();
                    newState.state          = newStateInitialiser;
                    newState.CurrentState   = false;
                    newState.StateStatus    = stateStatus.Where(s => s.Name == StatusList.OnTime).SingleOrDefault();
                    newState.CompletionDate = null;
                    newState.DueByDate      = DateTime.Now;
                    PlanningAppStates.Add(newState);

                    updateDueByDates();
                }
            }
            return(this);
        }
Пример #9
0
        public void RemovePlanningState(PlanningApp planningApp, StateInitialiserState stateInitialiserState)
        {
            if (!planningApp.Completed())
            {
                var currentState = planningApp.Current();

                //If state is in current generator and is after the current state then remove
                var statesToRemove = planningApp.PlanningAppStates.Where(s => s.state.Id == stateInitialiserState.Id &&
                                                                         s.GeneratorOrder == currentState.GeneratorOrder &&
                                                                         s.state.OrderId > currentState.state.OrderId).ToList();

                //state in future generators
                statesToRemove.AddRange(planningApp.PlanningAppStates.Where(s => s.state.Id == stateInitialiserState.Id &&
                                                                            s.GeneratorOrder > currentState.GeneratorOrder
                                                                            ).ToList());


                foreach (var state in statesToRemove)
                {
                    planningApp.PlanningAppStates.Remove(state);
                }
                UpdateDueByDates(planningApp);
            }
        }
Пример #10
0
 public void Update(StateInitialiserState stateInitialiserState)
 {
     vegaDbContext.Update(stateInitialiserState);
 }
Пример #11
0
        public PlanningApp InsertPlanningState(PlanningApp planningApp, int GeneratorOrder, StateInitialiser generator, StateInitialiserState stateInitialiserState)
        {
            if (!CanInsertState(planningApp, GeneratorOrder, stateInitialiserState))
            {
                return(planningApp);
            }

            PlanningAppState newPlanningAppState = new PlanningAppState();

            newPlanningAppState.state = stateInitialiserState;

            foreach (var stateInitialiserStateCustomField in newPlanningAppState.state.StateInitialiserStateCustomFields)
            {
                newPlanningAppState.customFields
                .Add(new PlanningAppStateCustomField {
                    StateInitialiserStateCustomFieldId = stateInitialiserStateCustomField.StateInitialiserCustomFieldId
                });
            }

            //Console.WriteLine("Adding States " + stateInitialiserState.Name + " To Planning App");
            newPlanningAppState.GeneratorOrder = GeneratorOrder;
            newPlanningAppState.GeneratorName  = generator.Name;
            newPlanningAppState.StateStatus    = statusList.Where(s => s.Name == StatusList.OnTime).SingleOrDefault();
            planningApp.PlanningAppStates.Add(newPlanningAppState);
            return(planningApp);
        }