예제 #1
0
        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);
        }