public ActionResult EditResource(ResourceConfigurationModel model)
        {
            if (string.IsNullOrEmpty(model.Password) ||
                string.IsNullOrEmpty(model.ConfirmPassword) ||
                !model.Password.Equals(model.ConfirmPassword))
            {
                ModelState.AddModelError("", "Senha e/ou Confirmação Inválido(s).");
                return(View(model));
            }

            var resourceBO = BusinessLogic.Core.GetFactory().GetInstance <IResourceBO>();
            var roleBO     = BusinessLogic.Core.GetFactory().GetInstance <IRoleBO>();

            ResourceDataContract dataContract = null;

            if (!Guid.Empty.Equals(model.Id))
            {
                dataContract = resourceBO.GetById(model.Id);
            }

            if (dataContract == null)
            {
                dataContract = new ResourceDataContract();
            }

            dataContract.Password      = model.Password;
            dataContract.Name          = model.Name;
            dataContract.Email         = model.Email;
            dataContract.Active        = model.Active;
            dataContract.Id            = model.Id;
            dataContract.ResourceRoles = model.Roles.Where(o => o.Selected);
            dataContract.WorkgroupId   = model.Workgroup;

            OperationResult result;

            if (Guid.Empty.Equals(model.Id))
            {
                dataContract.Id = Guid.NewGuid();
                result          = resourceBO.Add(dataContract);
            }
            else
            {
                result = resourceBO.Update(dataContract);
            }

            if (result.Status == Common.OperationResultStatus.ValidationFailure)
            {
                ModelState.AddModelError("", result.Message);
                return(View(model));
            }
            else
            {
                return(RedirectToAction("ResourceList", "ResourceConfiguration"));
            }
        }
        public ActionResult EditResource(Guid resourceId, bool displayonly = true)
        {
            var resourceBO = BusinessLogic.Core.GetFactory().GetInstance <IResourceBO>();
            var roleBO     = BusinessLogic.Core.GetFactory().GetInstance <IRoleBO>();
            var wgBO       = BusinessLogic.Core.GetFactory().GetInstance <IWorkgroupBO>();

            ResourceConfigurationModel model = new ResourceConfigurationModel();
            ResourceDataContract       res;

            model.EditMode = !displayonly;

            if (Guid.Empty.Equals(resourceId))
            {
                model.EditMode    = true;
                res               = new ResourceDataContract();
                res.ResourceRoles = new List <RoleDataContract>();
            }
            else
            {
                res = resourceBO.GetById(resourceId, true);
            }

            model.Active = res.Active;
            model.Email  = res.Email;
            model.Name   = res.Name;
            model.Id     = res.Id;

            var roles = roleBO.GetAll();

            model.Roles = roles.ToList();

            var wgs = wgBO.GetAll();

            model.WorkgroupList = wgs.ToList();

            model.Workgroup = res.WorkgroupId;

            foreach (var item in model.Roles)
            {
                item.Selected = res.ResourceRoles.Any(o => o.Id.Equals(item.Id));
            }
            return(View(model));
        }
        public ActionResult EditResource(Guid resourceId, bool displayonly = true)
        {
            var resourceBO = BusinessLogic.Core.GetFactory().GetInstance <IResourceBO>();
            var roleBO     = BusinessLogic.Core.GetFactory().GetInstance <IRoleBO>();
            ResourceDataContract       res   = resourceBO.GetById(resourceId, true);
            ResourceConfigurationModel model = new ResourceConfigurationModel();

            model.Active        = res.Active;
            model.Email         = res.Email;
            model.Name          = res.Name;
            model.Id            = res.Id;
            model.EditMode      = !displayonly;
            model.ResourceRoles = res.ResourceRoles;
            model.Roles         = roleBO.GetAll().Select(r => new SelectListItem()
            {
                Selected = res.ResourceRoles.Any(rr => rr.Id.Equals(r.Id)), Text = r.Description, Value = r.Id.ToString()
            }).ToList();
            return(View(model));
        }
        public ActionResult EditResource(ResourceConfigurationModel model)
        {
            if (string.IsNullOrEmpty(model.Password) ||
                string.IsNullOrEmpty(model.ConfirmPassword) ||
                !model.Password.Equals(model.ConfirmPassword))
            {
                ModelState.AddModelError("", "Senha e/ou Confirmação Inválido(s).");
                return(View(model));
            }

            var resourceBO = BusinessLogic.Core.GetFactory().GetInstance <IResourceBO>();
            var roleBO     = BusinessLogic.Core.GetFactory().GetInstance <IRoleBO>();

            ResourceDataContract dataContract;

            dataContract = resourceBO.GetById(model.Id);
            if (dataContract == null)
            {
                dataContract = new ResourceDataContract();
            }

            dataContract.Password = model.Password;
            dataContract.Name     = model.Name;
            dataContract.Email    = model.Email;
            dataContract.Active   = model.Active;
            dataContract.Id       = model.Id;
            //dataContract.ResourceRoles = roleBO.GetAll().Where(r => .Contains(r.Description)).ToList();
            var result = resourceBO.Update(dataContract);

            if (result.Status == Common.OperationResultStatus.ValidationFailure)
            {
                ModelState.AddModelError("", result.Message);
                return(View(model));
            }
            else
            {
                return(RedirectToAction("EditResource", "ResourceConfiguration", new { resourceId = model.Id }));
            }
        }