public ActionResult EditInterventionState(InterventionViewModel interventionmodel) { string interventionState = interventionmodel.SelectedState; InterventionState interventionStatus = new InterventionState(); Enum.TryParse(interventionState, out interventionStatus); int interventionStateInt = (int)interventionStatus; InterventionState newState = (InterventionState)interventionStateInt; if (Engineer.updateInterventionState(interventionmodel.Id, newState)) { var interventionList = Engineer.GetAllInterventions(Engineer.getDetail().Id).ToList(); var interventions = new List <InterventionViewModel>(); BindIntervention(interventionList, interventions); var model = new SiteEngineerViewInterventionModel() { Interventions = interventions }; return(View("InterventionList", model)); } else { ViewBag.error = "Operation failed, either the state is wrong or you are not authorized"; Intervention intervention = Engineer.getNonGuidInterventionById(interventionmodel.Id); InterventionViewModel model = BindSingleIntervention(intervention); return(View(model)); } }
/// <summary> /// Update the intervention state /// </summary> /// <param name="interventionId">The guid of the intervention</param> /// <param name="state">The state which update to</param> /// <param name="userId">The user guid who update the intervention</param> /// <returns>True if successfully updated the intervention state, false if fail</returns> public bool updateInterventionState(Guid interventionId, InterventionState state, Guid userId) { if (updateInterventionState(interventionId, state)) { var intervention = getInterventionsById(interventionId); intervention.ApprovedBy = userId; return(Interventions.update(intervention)); } else { return(false); } }
/// <summary> /// Get a list of interventions from the state they are in /// </summary> /// <param name="state">The state of an intervention</param> /// <returns>A list of intervention</returns> public IEnumerable <Intervention> GetInterventionsByState(InterventionState state) { var interventions = Interventions.fetchInterventionsByState((int)state).Select(c => new Intervention(c)).ToList(); List <Intervention> managerInterventions = new List <Intervention>(); User manager = GetDetail(); foreach (var intervention in interventions) { intervention.Client = new Client(Clients.fetchClientById(intervention.ClientId.Value)); intervention.InterventionType = new InterventionType(InterventionTypes.fetchInterventionTypesById(intervention.InterventionTypeId.Value)); intervention.District = new District(Districts.fetchDistrictById(intervention.Client.DistrictId)); if (manager.DistrictId == intervention.District.Id) { managerInterventions.Add(intervention); } } return(managerInterventions); }
/// <summary> /// Update the state of an intervention /// </summary> /// <param name="interventionId">The guid of an intervention</param> /// <param name="state">The enum intervention state to update to</param> /// <returns>True if successfully updated, false if fail</returns> public bool UpdateInterventionState(Guid interventionId, InterventionState state) { //create intervention instance from guid var intervention = GetInterventionById(interventionId); //create an instance of district object with the intervention's client's district id var interventionDistrict = Districts.fetchDistrictById(Clients.fetchClientById(intervention.ClientId.Value).DistrictId); //create an instance of district from the current user's district id var district = Districts.fetchDistrictById(GetDetail().DistrictId.Value); //if district is same, then update the state of the intervention if (interventionDistrict.Name == district.Name) { return(interventionService.updateInterventionState(interventionId, state)); } else { return(false); } }
/// <summary> /// Update the state property of an intervention /// </summary> /// <param name="interventionId">The guid of an intervention</param> /// <param name="state">The state of an intervention</param> /// <returns>True if success, false if fail</returns> public bool updateInterventionState(Guid interventionId, InterventionState state) { Intervention intervention = getInterventionById(interventionId); if (intervention.CreatedBy == getDetail().Id) { if (state == InterventionState.Approved) { return(approveAnIntervention(interventionId)); } else { return(interventionService.updateInterventionState(interventionId, state)); } } else { return(false); } }
/// <summary> /// Update the intervention State /// </summary> /// <param name="interventionId">The guid of an intervention</param> /// <param name="state">The state update to</param> /// <returns>True if success, false if fail</returns> public bool updateInterventionState(Guid interventionId, InterventionState state) { Intervention intervention = getInterventionsById(interventionId); //complete or cancelled intervention can't update state if (intervention.InterventionState != InterventionState.Completed && intervention.InterventionState != InterventionState.Cancelled) { //state propose can't go straight to complete if (intervention.InterventionState == InterventionState.Proposed) { if (state == InterventionState.Completed) { return(false); } else { intervention.InterventionState = state; } } else //original = Approved { //approved can only go into complete or cancelled which will set the datefinish as now if (state != InterventionState.Proposed && state != InterventionState.Approved) { intervention.InterventionState = state; intervention.DateFinish = DateTime.Now; } else { return(false); } } } else { return(false); } return(Interventions.update(intervention)); }
/// <summary> /// If the fields are valid call engineer service to create a new Intervention in the database /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Submit_Click(object sender, EventArgs e) { try { if (Page.IsValid) { decimal hour = decimal.Parse(InterventionHour.Text); decimal cost = decimal.Parse(InterventionCost.Text); string comments = InterventionComments.Text; Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); DateTime createDate = DateTime.Parse(DateTime.Now.ToShortDateString()); DateTime?finishDate; if (String.IsNullOrEmpty(InterventionPerformDate.Text)) { finishDate = null; } else { finishDate = DateTime.Parse(InterventionPerformDate.Text); } DateTime recentVisit = DateTime.Parse(DateTime.Now.ToShortDateString()); var typeID = SeletedInterventionType.SelectedValue; var clientID = SelectClient.SelectedValue; InterventionState state = InterventionState.Proposed; Intervention intervention = new Intervention(hour, cost, 100, comments, state, createDate, finishDate, recentVisit, new Guid(typeID), new Guid(clientID), engineerService.getDetail().Id, null); engineerService.createIntervention(intervention); Response.Redirect("~/Engineer/InterventionList.aspx", false); } } catch (Exception) { Response.Redirect("~/Errors/InternalErrors.aspx", true); } }
public ActionResult CreateIntervention(SiteEngineerViewInterventionModel viewmodel) { if (ModelState.IsValid) { decimal hours = (decimal)viewmodel.Intervention.Hours; decimal costs = (decimal)viewmodel.Intervention.Costs; int lifeRemaining = 100; string comments = viewmodel.Intervention.Comments; InterventionState state = InterventionState.Proposed; Guid clientId = new Guid(viewmodel.SelectedClient); DateTime dateCreate = DateTime.Now; DateTime dateFinish = (DateTime)viewmodel.Intervention.DateFinish; DateTime dateRecentVisit = DateTime.Now; Guid createdBy = (Guid)Engineer.getDetail().Id; Guid typeId = new Guid(viewmodel.SelectedType); Intervention new_intervention = new Intervention(hours, costs, lifeRemaining, comments, state, dateCreate, dateFinish, dateRecentVisit, typeId, clientId, createdBy, null); Engineer.createIntervention(new_intervention); var interventionList = Engineer.getInterventionsByClient(clientId).ToList(); var interventions = new List <InterventionViewModel>(); BindIntervention(interventionList, interventions); Client client = Engineer.getClientById(clientId); ClientViewModel clientVmodel = new ClientViewModel(); clientVmodel = BindSingleClient(client); var model = new SiteEngineerViewClientModel() { Interventions = interventions, Client = clientVmodel }; return(View("ClientDetails", model)); } return(View()); }
public Intervention(decimal hours, decimal costs, int lifeRemaining, string comments, InterventionState state, DateTime dateCreate, DateTime?dateFinish, DateTime dateRecentVisit, Guid interventionTypeId, Guid clientId, Guid createdBy, Guid?approvedBy) { Hours = hours; Costs = costs; LifeRemaining = lifeRemaining; Comments = comments; base.State = (int)state; DateCreate = dateCreate; DateFinish = dateFinish; DateRecentVisit = dateRecentVisit; InterventionTypeId = interventionTypeId; ClientId = clientId; CreatedBy = createdBy; ApprovedBy = approvedBy; }