Exemplo n.º 1
0
        public override ActionResult Edit(TEditableModel editableModel, bool continueEditing)
        {
            if (!IsUserizedRequest)
            {
                return(AccessDeniedView());
            }

            if (!ModelState.IsValid)
            {
                InjectModelDependencies(editableModel);

                return(View(editableModel));
            }

            var entity = GetEntityById(editableModel.Id)();

            if (entity == null)
            {
                return(HandleUnknown(editableModel.Id));
            }

            entity = editableModel.ToEntity(entity);

            var operationResult = UpdateEntityAndReturnOperationResult(entity)();

            if (!operationResult.Success)
            {
                ModelState.InjectMessages(operationResult);
                ResourceErrorNotification(CommonConstants.Systematic.NotUpdated);

                InjectModelDependencies(editableModel);

                return(View(editableModel));
            }

            ResourceSuccessNotification(CommonConstants.Systematic.Updated);

            if (continueEditing)
            {
                return(RedirectToAction(KnownActionNames.Edit, RouteParameter.Add(KnownParameterNames.Id, entity.Id)));
            }

            return(RedirectToAction(KnownActionNames.List, RouteParameter.Add(KnownParameterNames.Page, 1)));
        }
Exemplo n.º 2
0
        public ActionResult List(long[] ids, PostAction postAction)
        {
            if (!IsUserizedRequest)
            {
                return(AccessDeniedView());
            }

            if (postAction == PostAction.Unknown)
            {
                ResourceErrorNotification(CrudSharedConstants.Systematic.InvalidParameter);
                return(RedirectToAction(KnownActionNames.List, RouteParameter.Add(KnownParameterNames.Page, 1)));
            }

            if (!ids.Any())
            {
                ResourceErrorNotification(CrudSharedConstants.Systematic.InvalidParameter);
                return(RedirectToAction(KnownActionNames.List, RouteParameter.Add(KnownParameterNames.Page, 1)));
            }

            var isSuccess = false;

            foreach (var id in ids)
            {
                var entity = LoadEntityById(id)();

                if (entity == null)
                {
                    return(HandleUnknown(id));
                }

                ServiceOperationResult operationResult;

                switch (postAction)
                {
                case PostAction.PublishAll:
                    entity.IsPublished = true;
                    operationResult    = UpdateEntityAndReturnOperationResult(entity)();
                    break;

                case PostAction.UnpublishAll:
                    entity.IsPublished = false;
                    operationResult    = UpdateEntityAndReturnOperationResult(entity)();
                    break;

                case PostAction.TemporarilyDeleteAll:
                    operationResult = DeleteEntityAndReturnOperationResult(entity)();
                    break;

                case PostAction.UnDeleteAll:
                    entity.IsDeleted = false;
                    operationResult  = UpdateEntityAndReturnOperationResult(entity)();
                    break;

                default:
                    operationResult = DeleteEntityAndReturnOperationResult(entity, false)();
                    break;
                }

                if (!isSuccess)
                {
                    isSuccess = operationResult.Success;
                }
            }

            if (!isSuccess)
            {
                string key;

                switch (postAction)
                {
                case PostAction.PublishAll:
                case PostAction.UnpublishAll:
                case PostAction.TemporarilyDeleteAll:
                case PostAction.UnDeleteAll:
                    key = CommonConstants.Systematic.NotUpdated;
                    break;

                default:
                    key = CommonConstants.Systematic.NotDeleted;
                    break;
                }

                ResourceErrorNotification(key);
            }
            else
            {
                string key;

                switch (postAction)
                {
                case PostAction.PublishAll:
                case PostAction.UnpublishAll:
                case PostAction.TemporarilyDeleteAll:
                case PostAction.UnDeleteAll:
                    key = CommonConstants.Systematic.Updated;
                    break;

                default:
                    key = CommonConstants.Systematic.Deleted;
                    break;
                }

                ResourceSuccessNotification(key);
            }

            return(RedirectToAction(KnownActionNames.List, RouteParameter.Add(KnownParameterNames.Page, 1)));
        }