protected SaveServiceComponentPreChecksResult SaveServiceComponentPreChecks(EditServiceComponentViewModel model,
                                                                                    IEnumerable <ServiceComponentEditState> requiredStates)
        {
            var result = new SaveServiceComponentPreChecksResult
            {
                IsValid = false
            };

            if (!ModelState.IsValid)
            {
                result.Result = View("Edit" + model.EditLevel, model);
                return(result);
            }

            // Get the existing Service Component.
            result.ServiceComponent = _serviceComponentService
                                      .GetByCustomer(_appUserContext.Current.CurrentCustomer.Id)
                                      .SingleOrDefault(x => x.Id == model.Id);

            if (result.ServiceComponent == null)
            {
                ModelState.AddModelError(ModelStateErrorNames.ServiceComponentEditCannotBeFound, WebResources.ServiceComponentEditCannotBeFound);
                result.Result = View("Edit" + model.EditLevel, model);
                return(result);
            }

            var state = _serviceComponentHelper.GetEditState(result.ServiceComponent);

            if (!requiredStates.Contains(state))
            {
                ModelState.AddModelError(ModelStateErrorNames.ServiceComponentIncorrectState, WebResources.ServiceComponentIncorrectState);
                result.Result = View("Edit" + model.EditLevel, model);
                return(result);
            }

            var now      = DateTime.Now;
            var userName = _contextManager.UserManager.Name;

            result.ServiceComponent.UpdatedBy   = userName;
            result.ServiceComponent.UpdatedDate = now;

            result.IsValid = true;
            return(result);
        }
 protected SaveServiceComponentPreChecksResult SaveServiceComponentPreChecks(EditServiceComponentViewModel model,
                                                                             ServiceComponentEditState requiredState)
 {
     return(SaveServiceComponentPreChecks(model, new[] { requiredState }));
 }