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); }
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); }
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); }
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(); } } } }
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)); }
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); }
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); } }
public void Update(StateInitialiserState stateInitialiserState) { vegaDbContext.Update(stateInitialiserState); }
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); }