Ejemplo n.º 1
0
        public override AnyStatus Save(StackAppContext appContext, EntityModelBase model)
        {
            if (model.IsNew)
            {
                var entityId  = model.GetValue <int>("entityid", 0);
                var length    = model.GetValue <int>("length", 0);
                var type      = model.GetValue <int>("fieldtype", 0);
                var fieldInfo = EntityMetaData.CreateField((FieldType)type);
                var baseType  = fieldInfo.BaseType;
                model.SetTempInfo("basetypecode", baseType);

                if (length == 0)
                {
                    if (baseType == TypeCode.String)
                    {
                        length = GetDefaultVarCharLength((FieldType)type);
                    }
                    else if (baseType == TypeCode.Decimal)
                    {
                        length = 6;
                    }

                    model.SetValue("length", length);
                }

                var fieldName = model.GetValue("fieldname", "");
                var tableName = this.GetEntity(entityId).DBName;
                model.SetValue("tablename", tableName);
                model.SetValue("dbname", fieldName);
            }

            return(base.Save(appContext, model));
        }
Ejemplo n.º 2
0
        private AnyStatus SaveRelatedData(StackAppContext appContext, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            AnyStatus sts = AnyStatus.Success;

            //save child entities
            foreach (var f in model.Attributes)
            {
                var val = f.Value;
                if (val.Field.Type == FieldType.OneToMany && val.IsChanged && val.Value != null && (val.Value as IList).Count > 0)
                {
                    var itemColl = (List <EntityModelBase>)val.Value;
                    var field    = val.Field;
                    var entity   = GetEntity(field.RefObject);
                    foreach (var localModel in itemColl)
                    {
                        SetRelationshipValue(model.ID, field.Name, localModel);
                        sts = entity.Save(appContext, localModel, connection, transaction);
                        if (sts != AnyStatus.Success)
                        {
                            break;
                        }
                    }
                }
            }

            return(sts);
        }
Ejemplo n.º 3
0
        protected virtual bool Validate(EntityModelBase model)
        {
            //check concurrency based on LastModifiedOn
            bool IsValid   = true;
            var  validator = new DataValidator();

            foreach (var f in model.Attributes)
            {
                var field = f.Value;
                if (model.IsNew || field.IsChanged)
                {
                    if (field.Field.IsRequired && !validator.HasValue(field.Field, field.Value))
                    {
                        field.ErrorMessage = $"Field {field.Field.Text} is required";
                        field.IsValid      = false;
                    }
                }

                if (!field.IsValid)
                {
                    IsValid = false;
                }
            }

            return(IsValid);
        }
Ejemplo n.º 4
0
        public string ResolveDisplayExp(EntityModelBase modelBase)
        {
            if (!IsValid || modelBase == null)
            {
                return(exp);
            }

            string expression = exp;

            foreach (var field in KeyWords)
            {
                string displayText = "";
                var    result      = modelBase.GetValueData(field);

                if (!result.IsValid)
                {
                    displayText = "";
                }
                else if (string.IsNullOrWhiteSpace(result.DisplayValue))
                {
                    displayText = result.Value.ToString();
                }

                expression = RepacleField(expression, field, displayText);
            }

            //ReplaceGlobalFields()

            expression = expression.Replace("  ", " ");

            return(expression);
        }
Ejemplo n.º 5
0
        public object ExecuteExpression(string code, EntityModelBase model)
        {
            _DataProvider = new EntityModelDataProvider(model);
            var parser     = new JavaScriptParser(code);
            var expression = parser.ParseExpression();

            return(GetVarFromExp(expression));
        }
Ejemplo n.º 6
0
        public virtual AnyStatus OnAfterDbSave(StackAppContext appContext, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            AnyStatus sts = AnyStatus.Success;

            sts = SaveRelatedData(appContext, model, connection, transaction);

            return(sts);
        }
Ejemplo n.º 7
0
        public int Save(EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            _model = model;
            var parameters     = new DynamicParameters();
            var toUpdateFields = PrepareInsertUpdateFields(_model);
            var qry            = BuildQuery(model, toUpdateFields, ref parameters);

            return(connection.Execute(qry, parameters, transaction));
        }
Ejemplo n.º 8
0
        private void CreateTableColumn(EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            var fieldName = model.GetValue("dbname", "");
            //var type = model.GetValue("fieldtype", 0);
            var baseType = model.GetTempInfo("basetypecode", 0);
            var table    = model.GetValue("tablename", "");
            var length   = model.GetValue("length", 0);

            EntityBuilder.CreateEntityColumn(connection, transaction, table, fieldName, (TypeCode)baseType, length);
        }
Ejemplo n.º 9
0
        public virtual AnyStatus OnBeforeDbSave(StackAppContext appContext, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            var sts = AnyStatus.Success;

            if (model is EntityRecordModel)
            {
                ((EntityRecordModel)model).PrepareSaveImageField(appContext);
            }
            return(sts);
        }
Ejemplo n.º 10
0
        public override AnyStatus Save(StackAppContext appContext, EntityModelBase model)
        {
            //encrypt pwd if new
            //if edit do not change **
            if (model.IsNew)
            {
                model.SetValue("Password", Encrypt(model.GetValue("Password").ToString()));
            }

            return(base.Save(appContext, model));
        }
Ejemplo n.º 11
0
        public override AnyStatus Save(StackAppContext appContext, EntityModelBase model)
        {
            if (model.IsNew)
            {
                var entityId = model.GetValue <int>("entityid", 0);
                var itemType = this.GetEntity(entityId).DefaultItemTypeId;
                model.SetValue("itemType", itemType);
                model.SetValue("viewType", 0);
            }

            return(base.Save(appContext, model));
        }
Ejemplo n.º 12
0
        public override AnyStatus OnAfterDbSave(StackAppContext appContext, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            AnyStatus sts = base.OnAfterDbSave(appContext, model, connection, transaction);

            if (sts == AnyStatus.Success)
            {
                if (model.IsNew)
                {
                }
            }
            return(sts);
        }
Ejemplo n.º 13
0
        public static object ComputeFieldData(BaseField field, EntityModelBase modelBase)
        {
            var exp = field.ComputeExpression;

            if (exp == null)
            {
                return(null);
            }


            return(null);
        }
Ejemplo n.º 14
0
        public override AnyStatus OnAfterDbSave(StackAppContext appContext, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            AnyStatus sts             = base.OnAfterDbSave(appContext, model, connection, transaction);
            int       defaultItemType = 0;

            if (sts == AnyStatus.Success)
            {
                if (model.IsNew)
                {
                    EntityBuilder.CreateEntityTable(model, connection, transaction, out defaultItemType);
                }
            }
            return(sts);
        }
Ejemplo n.º 15
0
        private void PrepareErrorModel(EntityModelBase recordModel, ref UIFormModel model)
        {
            var fields = new InvariantDictionary <UIFormField>();

            foreach (var fData in recordModel.GetInvalidFields())
            {
                fields.Add(fData.Field.ViewName.ToUpper(), new UIFormField()
                {
                    WidgetId = fData.Field.ViewName, ErrorMessage = fData.ErrorMessage
                });
            }

            model.Widgets = fields;
        }
Ejemplo n.º 16
0
        public EntityModelBase Generate(UIFormModel model)
        {
            this.ValidatrRequest();

            _formContext.CreateDataModel();

            RecordModel = _formContext.EntityModel;

            SetRelationShip();

            this.SetFieldsModelToRecord(model);
            Status = AnyStatus.Success;

            return(RecordModel);
        }
Ejemplo n.º 17
0
        public static bool CreateEntityTable(EntityModelBase model, IDbConnection connection, IDbTransaction transaction, out int defaultItemType)
        {
            try
            {
                var qry = BuildEntityTableQry(model, out defaultItemType);

                DBService.ExecuteDDLQuery(qry, null, connection, transaction);

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        object IDbRepository <EntityModelBase, object> .Insert(EntityModelBase entity)
        {
            int commandResult             = 0;
            SQLiteTransaction transaction = null;

            try
            {
                using (SqlLiteDbConnection connection = new SqlLiteDbConnection())
                {
                    ISqlLiteCommandBuilder <SQLiteCommand> restaurantAddCommandBuilder = new Restaurant_AddCommand(connection, entity as Restaurant);

                    SQLiteCommand command = restaurantAddCommandBuilder.Build();

                    using (transaction = connection.Connection.BeginTransaction(IsolationLevel.Serializable))
                    {
                        commandResult = command.ExecuteNonQuery();
                        transaction.Commit();
                    }
                }
            }
            catch (SQLiteException e)
            {
                throw new Exception(string.Format("SQLite Exception {0} {1}", e.ErrorCode, e.Message));
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
            finally
            {
                if (transaction != null)
                {
                    transaction.Dispose();
                }
            }

            return((object)commandResult);
        }
Ejemplo n.º 19
0
        public AnyStatus Save(StackAppContext appContext, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            AnyStatus status = AnyStatus.NotInitialized;

            try
            {
                if (model.IsNew)
                {
                    model.SetValue("CREATEDON", DateTime.Now.ToUniversalTime());
                    model.SetValue("CREATEDBY", appContext.UserInfo.UserId);
                    model.SetMasterId(appContext.MasterId);
                }
                model.SetValue("UPDATEDON", DateTime.Now.ToUniversalTime());
                model.SetValue("UPDATEDBY", appContext.UserInfo.UserId);

                if (this.Validate(model))
                {
                    if (model is EntityRecordModel)
                    {
                        ((EntityRecordModel)model).ResolveComputedFields();
                    }
                    status = EntityDBService.SaveEntity(appContext, this, model, connection, transaction);
                    if (status == AnyStatus.Success)
                    {
                        status = OnSaveComplete(appContext, model);
                    }
                }
                else
                {
                    status = AnyStatus.InvalidData;
                }
            }
            catch (AppException ex)
            {
                status         = AnyStatus.SaveFailure;
                status.Message = ex.Message;
            }
            return(status);
        }
Ejemplo n.º 20
0
        public static AnyStatus SaveEntity(StackAppContext appContext, IDBEntity entity, EntityModelBase model, IDbConnection connection, IDbTransaction transaction)
        {
            AnyStatus sts = AnyStatus.UpdateFailure;

            var eSave = new EntityDBSave(entity);

            if (model.IsNew)
            {
                var eId = GetNextEntityDBId(entity.EntityId.Code);
                model.SetID(eId);
            }

            IDbConnection  conn;
            IDbTransaction trans;
            bool           isLocalConnection = true;

            if (connection == null)
            {
                conn = DBService.Connection;
                conn.Open();
                trans = conn.BeginTransaction();
            }
            else
            {
                conn              = connection;
                trans             = transaction;
                isLocalConnection = false;
            }

            try
            {
                sts = entity.OnBeforeDbSave(appContext, model, conn, trans);
                if (sts == AnyStatus.Success)
                {
                    eSave.Save(model, conn, trans);
                    sts = entity.OnAfterDbSave(appContext, model, conn, trans);
                    if (sts != AnyStatus.Success)
                    {
                        if (isLocalConnection)
                        {
                            trans.Rollback();
                        }
                    }
                    else
                    {
                        if (isLocalConnection)
                        {
                            trans.Commit();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sts         = AnyStatus.SaveFailure;
                sts.Message = ex.Message;
                if (isLocalConnection)
                {
                    trans.Rollback();
                }
            }
            finally
            {
                if (isLocalConnection)
                {
                    trans.Dispose();
                    conn.Close();
                }
            }

            return(sts);
        }
Ejemplo n.º 21
0
        public override AnyStatus Save(StackAppContext appContext, EntityModelBase model)
        {
            AnyStatus status = AnyStatus.NotInitialized;

            return(status);
        }
Ejemplo n.º 22
0
 public RuleEvaluator(StackAppContext appContext, EntityModelBase model) : this(appContext, model.EntityId)
 {
     this._DataModel = model;
 }
Ejemplo n.º 23
0
 public override AnyStatus Save(StackAppContext appContext, EntityModelBase model)
 {
     return(base.Save(appContext, model));
 }
Ejemplo n.º 24
0
 void IDbRepository <EntityModelBase, object> .Save(EntityModelBase entity)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 25
0
 object IDbRepository <EntityModelBase, object> .Insert(EntityModelBase entity)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 26
0
        public override AnyStatus OnSaveComplete(StackAppContext appContext, EntityModelBase model)
        {
            EntityMetaData.Build();

            return(base.OnSaveComplete(appContext, model));
        }
Ejemplo n.º 27
0
        protected override bool Validate(EntityModelBase model)
        {
            var isvalid = base.Validate(model);

            return(isvalid);
        }
Ejemplo n.º 28
0
 protected override bool Validate(EntityModelBase model)
 {
     return(base.Validate(model));
 }
Ejemplo n.º 29
0
 internal EntityModelDataProvider(EntityModelBase modelBase) : base(null)
 {
     _modelBase = modelBase;
 }
Ejemplo n.º 30
0
 private static object Compute(EvalExpression exp, EntityModelBase modelBase)
 {
     return(null);
 }