コード例 #1
0
        public long SaveCreateBaseObject <T>(T businessObject, long userID)
            where T : class, IBaseObject
        {
            object objectID = 0;

            businessObject.ObjectTypeID = GetObjectTypeID(businessObject.GetType().Name);
            businessObject.CreatedByID  = userID;
            businessObject.CreatedDate  = DateTime.Now;
            businessObject.ModifiedByID = userID;
            businessObject.ModifiedDate = DateTime.Now;

            if (string.IsNullOrEmpty(businessObject.Name))
            {
                businessObject.Name = "none";
            }

            if (string.IsNullOrEmpty(businessObject.Details))
            {
                businessObject.Details = "none";
            }

            var properties = businessObject.GetType().GetProperties().Where(
                prop => Attribute.IsDefined(prop, typeof(FieldMappingForObjectTableAttribute)));
            var    propertyColumnNames = SqlQueryProvider.GetPropertyNamesForDBColumns(properties);
            var    propertyValues      = SqlQueryProvider.GetPropertyValues <T>(properties, businessObject);
            string query = SqlQueryProvider.InsertBaseObject(propertyColumnNames, propertyValues);

            using (SqlConnection conn = new SqlConnection(Configuration.DefaultConnectionString))
                using (SqlCommand cmd = new SqlCommand(query, conn))
                {
                    conn.Open();
                    objectID = cmd.ExecuteScalar();
                    conn.Close();
                }

            if (objectID != null)
            {
                return((int)(decimal)objectID);
            }
            else
            {
                return(0);
            }
        }
コード例 #2
0
        public T SaveCreateBusinessObject <T>(T businessObject, long objectID)
            where T : class, IBaseObject
        {
            var table      = GetTableName <T>();
            var properties = businessObject.GetType().GetProperties().Where(
                prop => Attribute.IsDefined(prop, typeof(FieldMappingForMainTableAttribute)));

            if (properties.Any())
            {
                var propertyColumnNames = SqlQueryProvider.GetPropertyNamesForDBColumns(properties) + ", [ObjectID]";
                var propertyValues      = SqlQueryProvider.GetPropertyValues <T>(properties, businessObject) + $", {objectID}";
                var query = SqlQueryProvider.InsertBusinessObject(table, propertyColumnNames, propertyValues);

                using (SqlConnection conn = new SqlConnection(Configuration.DefaultConnectionString))
                    using (SqlCommand cmd = new SqlCommand(query, conn))
                    {
                        conn.Open();
                        cmd.ExecuteNonQuery();
                        conn.Close();
                    }
            }
            else
            {
                var propertyColumnNames = "[ObjectID]";
                var propertyValues      = $"{objectID}";
                var query = SqlQueryProvider.InsertBusinessObject(table, propertyColumnNames, propertyValues);

                using (SqlConnection conn = new SqlConnection(Configuration.DefaultConnectionString))
                    using (SqlCommand cmd = new SqlCommand(query, conn))
                    {
                        conn.Open();
                        cmd.ExecuteNonQuery();
                        conn.Close();
                    }
            }

            return(SelectGetBusinessObjectAfterSave <T>(businessObject, table, objectID));
        }