Exemple #1
0
        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));
            }
        }
Exemple #2
0
 /// <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);
     }
 }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
        /// <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);
            }
        }
Exemple #6
0
        /// <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));
        }
Exemple #7
0
        /// <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);
            }
        }
Exemple #8
0
        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());
        }
Exemple #9
0
        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;
        }