Exemple #1
0
        public static ActionResponse SaveLayout(StackAppContext appContext, RequestQueryString requestQuery, JObject data)
        {
            var view = data["Layout"].ToObject <TView>();

            if (view != null)
            {
                var tFields = data["Fields"].ToObject <List <TField> >();
                view.Fields = tFields;

                view.ClearBlankRows();

                var entity = EntityMetaData.GetAs <EntityLayoutEntity>(EntityCode.EntityLayout);
                var sts    = entity.SaveLayoutData(appContext, requestQuery, view);

                if (sts == AnyStatus.Success)
                {
                    var res = new SubmitActionResponse(null)
                    {
                        Status  = SubmitStatus.Success,
                        Message = "Layout saved successfully"
                    };

                    return(res);
                }
                else
                {
                    return(new ErrorResponse(null)
                    {
                        Message = sts.Message
                    });
                }
            }
            return(new ErrorResponse(null)
            {
                Message = "Invalid parameters."
            });
        }
        public SubmitActionResponse GetSaveAction(RequestQueryString requestQuery, UIFormModel model)
        {
            var context = new EditFormContext(_AppContext, requestQuery.EntityId, requestQuery);

            context.Build(model);

            var generator = new EntityModelGenerator(context);

            generator.Generate(model);

            var response = new SubmitActionResponse(null);

            response.Status = SubmitStatus.Fail;

            if (generator.Status == AnyStatus.Success)
            {
                var recordModel = generator.RecordModel;
                var saveStatus  = context.Entity.Save(_AppContext, recordModel);
                if (saveStatus == AnyStatus.Success)
                {
                    response.Status      = SubmitStatus.Success;
                    response.RedirectUrl = AppLinkProvider.GetDetailPageLink(recordModel.EntityId, recordModel.ID).Url;
                    return(response);
                }
                else if (saveStatus == AnyStatus.InvalidData)
                {
                    PrepareErrorModel(recordModel, ref model);
                    response.Model = model;
                    return(response);
                }
                response.Message = saveStatus.Message;
                return(response);
            }
            response.Message = generator.Status.Message;

            return(response);
        }