public void GetColumnNamesTest()
        {
            var mapping = new EntityMapping<Foo>(null);
            mapping.Add("ID", f => f.ID, (f, n) => f.ID = n, true);
            mapping.Add("Name", f => f.Name, (f, n) => f.Name = n, false);

            Assert.Equal("Name", mapping.GetColumnNames().Skip(1).Single());
        }
Exemple #2
0
        internal EntityMapping CreateMapping()
        {
            var entity = new EntityMapping { entityType = EntityType };
            if (table == null)
                table = entity.entityType.GetAttribute<TableAttribute>(false);
            if (table != null)
            {
                entity.tableName = table.Name.IsNullOrEmpty()
                    ? entity.entityType.Name
                    : table.Name;
                entity.@readonly = table.Readonly;
                entity.schema = table.Schema;
                entity.databaseName = table.DatabaseName;
                entity.serverName = table.Server;
            }
            else
                entity.tableName = entity.entityType.Name;

            const BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.Instance;

            var allMembers = new Dictionary<MemberInfo, MemberMapping>();
            foreach (var k in members.Keys)
                allMembers[k] = new MemberMapping(k, members[k], entity);

            var items = from m in entity.entityType
                       .GetFields(bindingFlags)
                       .Where(p => !members.ContainsKey(p))
                       .Where(p => !IgnoreMembers.Contains(p))
                       .Where(p => !p.HasAttribute<IgnoreAttribute>(true))
                       .Where(p => !p.Name.Contains("k__BackingField"))
                       .Where(p => !p.IsInitOnly)
                       .Cast<MemberInfo>()
                       .Union(entity.entityType
                           .GetProperties(bindingFlags)
                           .Where(p => !members.ContainsKey(p))
                           .Where(p => !IgnoreMembers.Contains(p))
                           .Where(p => p.CanRead && p.CanWrite)
                           .Where(p => !p.HasAttribute<IgnoreAttribute>(true))
                           .Cast<MemberInfo>()
                           ).Distinct()
                        let att = m.GetAttribute<MemberAttribute>(true)
                        select new NLite.Data.Mapping.MemberMapping(m, att, entity);

            foreach (var item in items)
                allMembers[item.member] = item;

            entity.innerMappingMembers = allMembers.Values.ToArray();
            return entity;
        }
 /// <summary>
 /// Updates the mapping depending on user selection.
 /// </summary>
 /// <param name="mapping">The mapping to update.</param>
 public void UpdateMapping(EntityMapping mapping)
 {
     string value = AttributeDropDownList.SelectedValue;
     if (!String.IsNullOrEmpty(value))
     {
         string[] tokens = value.Split('-');
         if (tokens[0] == "Attribute" || tokens[0] == "RestrictedAttribute")
         {
             string attributeName = tokens[1];
             EntityAttributeModel attributeModel = UserProfileModel.GetAttributeModel(attributeName);
             if (attributeModel != null)
             {
                 mapping.Add(attributeModel, FieldInfo, FieldScope);
             }
         }
     }
 }
Exemple #4
0
 public void AddEntityMapping(EntityMapping entityMapping)
 {
 }
Exemple #5
0
 public static IFormattable TableAndColumn(string propertyName, EntityMapping entityMappingOverride = null)
 {
     Requires.NotNullOrEmpty(propertyName, nameof(propertyName));
     return(new SqlParameterFormatter(SqlParameterElementType.TableAndColumn, propertyName, entityMappingOverride));
 }
Exemple #6
0
 public static IFormattable Function(EntityMapping entityMappingOverride = null)
 {
     return(new SqlParameterFormatter(SqlParameterElementType.Function, null, entityMappingOverride));
 }
Exemple #7
0
 internal static ISqlStatements <TEntity> GetSqlStatements <TEntity>(EntityMapping entityMapping = null)
 {
     return((ISqlStatements <TEntity>)GetEntityDescriptor <TEntity>().GetSqlStatements(entityMapping));
 }
Exemple #8
0
        private void UpdateSome(PM_ALT_SCALE entity, DbTransaction transaction)
        {
            ArgumentValidator.CheckForNullArgument(entity, "entity");
            ArgumentValidator.CheckForNullArgument(transaction, "transaction");

            PersistentPM_ALT_SCALE PM_ALT_SCALEEntity = entity as PersistentPM_ALT_SCALE;

            StringBuilder sqlUpdateSome = new StringBuilder();

            sqlUpdateSome.Append("UPDATE dbo.PM_ALT_SCALE SET ");

            PropertyInfo[] propertyInfos        = PM_ALT_SCALEEntity.GetType().GetProperties();
            Hashtable      propertyValues       = new System.Collections.Hashtable();
            int            columnCountForUpdate = 0;

            foreach (PropertyInfo propertyInfo in propertyInfos)
            {
                if (EntityMapping.ContainsProperty(propertyInfo.Name))
                {
                    object     propertyValue = propertyInfo.GetValue(PM_ALT_SCALEEntity, null);
                    ORProperty property      = EntityMapping[propertyInfo.Name];
                    if (!property.IsPrimaryKey)
                    {
                        if (!PM_ALT_SCALEEntity.IsDefaultValue(propertyInfo.Name))
                        {
                            propertyValues[propertyInfo.Name] = propertyValue;

                            sqlUpdateSome.Append(" " + property.ColumnName + " = @" + property.ColumnName + ",");
                            columnCountForUpdate++;
                        }
                    }
                    else
                    {
                        propertyValues[propertyInfo.Name] = propertyValue;
                    }
                }
            }
            if (columnCountForUpdate == 0)
            {
                return;
            }

            sqlUpdateSome.Remove(sqlUpdateSome.Length - 1, 1);
            sqlUpdateSome.Append(" WHERE 1 = 1 ");
            sqlUpdateSome.Append(" AND ScalePK = @ScalePK ");

            try
            {
                Database  db        = GetDatabaseInstance();
                DbCommand dbCommand = db.GetSqlStringCommand(sqlUpdateSome.ToString());

                foreach (DictionaryEntry de in propertyValues)
                {
                    ORProperty property = EntityMapping[de.Key.ToString()];
                    db.AddInParameter(dbCommand, "@" + property.ColumnName, property.DatabaseType, de.Value);
                }

                int result = db.ExecuteNonQuery(dbCommand, transaction);

                if (result == 0)
                {
                    throw new EntityNotFoundException();
                }
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, ExceptionPolicy.DataAccessDefaultPolicy);
            }
        }
 internal OracleLogicalDeleteCommandGenerator(EntityMapping entityMapping)
     : base(entityMapping)
 {
 }
Exemple #10
0
        public void BOSMOD(Entity.BillOfOutStorage bos, Entity.BusiLog bl, bool isHis)
        {
            ConnectionPool.IsCenter = false;
            using (SqlConnection conn = ConnectionPool.BorrowConnection())
            {
                //conn.Open();
                SqlTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
                try
                {
                    string   strSysTime = SqlHelper.ExecuteScalar(trans, CommandType.Text, "select getdate()").ToString();
                    DateTime dtSysTime  = DateTime.Parse(strSysTime);

                    Entity.OilStorage os = new OilStorage(bl.ToTable());
                    os.cnvcGoodsName = bos.cnvcGoodsName;
                    os.cnvcGoodsType = bos.cnvcGoodsType;
                    os = EntityMapping.Get(os, trans) as OilStorage;
                    if (null == os)
                    {
                        throw new BusinessException(bexType.noobject, "库存获取错误");
                    }

                    Guid gd = Guid.NewGuid();

                    //判断修改操作类型 改多为入库 改少为出库
                    Entity.BillOfOutStorage oldbos = new BillOfOutStorage(bos.GetOriginalValue());
                    string strOperType             = "";
                    if (oldbos.cnnCount > bos.cnnCount)
                    {
                        strOperType = OutType.BOSIn;
                    }
                    else
                    {
                        strOperType = OutType.BOSOut;
                    }

                    //验收单
                    //bos.cnvcInType = strOperType;
                    bos.cndOperDate = dtSysTime;
                    if (isHis)
                    {
                        Entity.BillOfOutStorageHis boshis = new BillOfOutStorageHis(bos.GetOriginalValue());
                        EntityMapping.Delete(boshis, trans);

                        //boshis.SynchronizeModifyValue(bos);
                        EntityMapping.Create(bos, trans);
                    }
                    else
                    {
                        EntityMapping.Update(bos, trans);
                    }
                    if (bos.cnnCount != oldbos.cnnCount)
                    {
                        //库存日志
                        Entity.OilStorageLog ol = new OilStorageLog(bos.ToTable());
                        ol.cnvcDeptName  = bl.cnvcDeptName;
                        ol.cnvcOperType  = strOperType;
                        ol.cnnSerial     = gd;
                        ol.cnnLastCount  = os.cnnStorageCount;
                        ol.cnnInOutCount = oldbos.cnnCount - bos.cnnCount;                      //bos.cnnCount-oldbos.cnnCount;
                        ol.cnnCurCount   = os.cnnStorageCount + oldbos.cnnCount - bos.cnnCount;
                        EntityMapping.Create(ol, trans);

                        //库存
                        os.cnnStorageCount = ol.cnnCurCount;
                        EntityMapping.Update(os, trans);
                    }
                    //日志
                    bl.cnnSerial    = gd;
                    bl.cnvcComments = "出库单修改,出入库量:" + (oldbos.cnnCount - bos.cnnCount);                //(bos.cnnCount-oldbos.cnnCount);
                    bl.cnvcOperType = OperType.OP202;
                    bl.cndOperDate  = dtSysTime;
                    bl.cnvcSource   = InSource.cs;
                    EntityMapping.Create(bl, trans);

                    trans.Commit();
                }
                catch (BusinessException bex)
                {
                    trans.Rollback();
                    LogAdapter.WriteBusinessException(bex);
                    throw bex;
                }
                catch (SqlException sex)
                {
                    trans.Rollback();
                    LogAdapter.WriteDatabaseException(sex);
                    throw sex;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    LogAdapter.WriteFeaturesException(ex);
                    throw ex;
                }
                finally
                {
                    ConnectionPool.ReturnConnection(conn);
                }
            }
        }
 public static int UpdateDept(SqlTransaction trans, Dept dept)
 {
     return(EntityMapping.Update(dept, trans));
 }
    private EntityMapping GetTargetMapping()
    {
        EntityMapping mapping = new EntityMapping();
        foreach (CMSModules_SocialMedia_Controls_Facebook_MappingEditorItem control in MappingEditorItems)
        {
            control.UpdateMapping(mapping);
        }

        return mapping;
    }
    /// <summary>
    /// Creates and initializes a new instance of the Panel class with the specified Data.com contact mapping, and returns it.
    /// </summary>
    /// <param name="formInfo">The CMS contact form info.</param>
    /// <param name="entityInfo">The Data.com contact entity info.</param>
    /// <param name="mapping">The Data.com contact mapping.</param>
    /// <returns>A new instance of the Panel class initialized with the specified Data.com contact mapping.</returns>
    private Panel CreateMappingPanel(FormInfo formInfo, EntityInfo entityInfo, EntityMapping mapping)
    {
        Panel mappingPanel = new Panel { CssClass = "mapping"};
        HtmlTable mappingTable = new HtmlTable();

        mappingTable.Controls.Add(CreateHeaderPanel());
        mappingPanel.Controls.Add(mappingTable);

        foreach (IDataDefinitionItem formItem in formInfo.ItemsList)
        {
            FormFieldInfo formField = formItem as FormFieldInfo;
            if (formField != null)
            {
                EntityMappingItem mappingItem = mapping.GetItem(formField.Name);
                if (mappingItem != null)
                {
                    EntityAttributeInfo entityAttribute = entityInfo.GetAttributeInfo(mappingItem.EntityAttributeName);
                    if (entityAttribute != null)
                    {
                        HtmlTableRow row = new HtmlTableRow();
                        mappingTable.Controls.Add(row);

                        HtmlTableCell formFieldCell = new HtmlTableCell();
                        formFieldCell.Controls.Add(new Literal { Text = ResHelper.LocalizeString(formField.GetDisplayName(MacroContext.CurrentResolver)) });

                        HtmlTableCell entityAttributeCell = new HtmlTableCell();
                        entityAttributeCell.Controls.Add(new Literal { Text = ResHelper.LocalizeString(entityAttribute.DisplayName) });

                        row.Controls.Add(formFieldCell);
                        row.Controls.Add(entityAttributeCell);
                    }
                }
            }
        }

        return mappingPanel;
    }
    /// <summary>
    /// Creates and initializes a new instance of the HtmlTable class with the specified Data.com company mapping, and returns it.
    /// </summary>
    /// <param name="formInfo">The CMS account form info.</param>
    /// <param name="entityInfo">The Data.com company entity info.</param>
    /// <param name="mapping">The Data.com company mapping.</param>
    /// <returns>A new instance of the HtmlTable class initialized with the specified Data.com company mapping.</returns>
    private HtmlTable CreateTable(FormInfo formInfo, EntityInfo entityInfo, EntityMapping mapping)
    {
        HtmlTable table = new HtmlTable();
        table.Rows.Add(CreateHeaderRow());
        foreach (IFormItem formItem in formInfo.ItemsList)
        {
            FormFieldInfo formField = formItem as FormFieldInfo;
            if (formField != null)
            {
                EntityMappingItem mappingItem = mapping.GetItem(formField.Name);
                if (mappingItem != null)
                {
                    EntityAttributeInfo entityAttribute = entityInfo.GetAttributeInfo(mappingItem.EntityAttributeName);
                    if (entityAttribute != null)
                    {
                        HtmlTableRow row = new HtmlTableRow();
                        table.Rows.Add(row);
                        HtmlTableCell formFieldCell = new HtmlTableCell();
                        row.Cells.Add(formFieldCell);
                        formFieldCell.InnerText = ResHelper.LocalizeString(formField.Caption);
                        HtmlTableCell entityAttributeCell = new HtmlTableCell();
                        row.Cells.Add(entityAttributeCell);
                        entityAttributeCell.InnerText = ResHelper.LocalizeString(entityAttribute.DisplayName);

                        if (!Enabled)
                        {
                            formFieldCell.Style.Add("color", "#888888");
                            entityAttributeCell.Style.Add("color", "#888888");
                        }
                    }
                }
            }
        }

        return table;
    }
 internal OracleUpdateCommandGenerator(EntityMapping entityMapping, QueryMapping queryMapping)
     : base(entityMapping, queryMapping)
 {
 }
 public EntitiesController(EntityMapping entityMapping)
 {
     _entityMapping = entityMapping;
 }
 internal abstract LogicalDeleteCommandGenerator CreateLogicalDeleteCommandGenerator(EntityMapping entityMapping);
Exemple #18
0
 public WriterProvider(TodoListContext context, IDateTimeWrapper dateTimeWrapper)
 {
     _context         = context;
     _mapperConfig    = EntityMapping.GetMapperConfig();
     _dateTimeWrapper = dateTimeWrapper;
 }
    /// <summary>
    /// Creates a mapping of CMS contact (or account) fields and Data.com contact (or company) attributes from the current form state, and returns it.
    /// </summary>
    /// <returns>A mapping of CMS contact (or account) fields and Data.com contact (or company) attributes.</returns>
    private EntityMapping CreateEntityMappingFromForm()
    {
        EntityMapping mapping = new EntityMapping();
        foreach (FormFieldInfo fieldInfo in mContext.FormInfo.GetFields(true, false))
        {
            DropDownList dropDownList = mAttributeNamesDropDownLists[fieldInfo.Name];
            if (dropDownList.SelectedIndex != 0)
            {
                EntityAttributeInfo attributeInfo = mContext.EntityInfo.GetAttributeInfo(dropDownList.SelectedValue);
                if (attributeInfo != null)
                {
                    mapping.Add(attributeInfo, fieldInfo);
                }
            }
        }

        return mapping;
    }
 public EntityReader(IMongoDbConnection connection)
 {
     Connection       = connection ?? throw new ArgumentNullException(nameof(connection));
     EntityDefinition = EntityMapping.GetOrCreateDefinition(typeof(TEntity));
 }
Exemple #21
0
        public void AssignOut(string strProduceSerialNo, OperLog operLog, string strWarehouse)
        {
            using (SqlConnection conn = ConnectionPool.BorrowConnection())
            {
                //conn.Open();

                SqlTransaction trans = conn.BeginTransaction();
                try
                {
                    string   strSysTime = SqlHelper.ExecuteScalar(trans, CommandType.Text, "select getdate()").ToString();
                    DateTime dtSysTime  = DateTime.Parse(strSysTime);

                    string    strsql1      = "SELECT * FROM tbProduceLog WHERE cnvcProduceState='6' and cnnProduceSerialNo=" + strProduceSerialNo;
                    DataTable dtProduceLog = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strsql1);
                    //rr.cndMakeDate = dtSysTime;
                    //EntityMapping.Create(rr,trans);
                    if (dtProduceLog.Rows.Count == 0)
                    {
                        throw new Exception("生产计划不在分货状态!");
                    }
                    Entity.ProduceLog pl = new ProduceLog(dtProduceLog);

                    string    strsql2           = "select * from tbproducechecklog WHERE cnnAssignCount>0 and cnnproduceserialno=" + strProduceSerialNo;
                    DataTable dtProduceCheckLog = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strsql2);
                    if (dtProduceCheckLog.Rows.Count == 0)
                    {
                        throw new Exception("分货出库产品数量都为0");
                    }

                    DataTable dtInv             = SingleTableQuery.ExcuteQuery("tbInventory", trans);
                    DataTable dtComputationUnit = SingleTableQuery.ExcuteQuery("tbComputationUnit", trans);

                    string    strsql3     = "select * from tbassignlog where cnnproduceserialno=" + strProduceSerialNo;
                    DataTable dtAssignLog = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strsql3);
                    if (dtAssignLog.Rows.Count == 0)
                    {
                        throw new Exception("未找到分货流水");
                    }
                    Entity.AssignLog al = new AssignLog(dtAssignLog);

                    Entity.RdRecord rr = new RdRecord();
                    rr.cnvcRdCode = "RD010";
                    rr.cnvcRdFlag = "0";
                    rr.cnvcWhCode = strWarehouse;
                    rr.cnvcDepID  = pl.cnvcProduceDeptID;
                    //rr.cnvcOperName = operLog.cnvcop
                    rr.cnvcComments  = "分货出库";
                    rr.cnvcMaker     = operLog.cnvcOperID;
                    rr.cnnProorderID = pl.cnnProduceSerialNo;
                    rr.cnvcState     = "2";
                    rr.cndMakeDate   = dtSysTime;
                    long rrid = EntityMapping.Create(rr, trans);

                    foreach (DataRow drProduceCheckLog in dtProduceCheckLog.Rows)
                    {
                        Entity.ProduceCheckLog pcl = new ProduceCheckLog(drProduceCheckLog);


                        Entity.RdRecordDetail rrd = new RdRecordDetail();
                        rrd.cnvcFlag   = "0";
                        rrd.cndExpDate = pcl.cndExpDate;                    //Convert.ToDateTime(this.txtProduceDate.Text).AddDays(pc.cnnDays).AddDays(Convert.ToDouble(txtDays.Text));//Convert.ToDateTime(this.txtExpDate.Text);
                        rrd.cndMdate   = pcl.cndMDate;                      //Convert.ToDateTime(this.txtProduceDate.Text);
                        rrd.cnnRdID    = Convert.ToDecimal(rrid);
                        rrd.cnvcPOID   = al.cnnAssignSerialNo.ToString();

                        DataRow[] drinvs = dtInv.Select("cnvcInvCode='" + pcl.cnvcInvCode + "'");
                        if (drinvs.Length == 0)
                        {
                            throw new Exception(pcl.cnvcInvCode + "存货档案未设置");
                        }
                        Entity.Inventory inv = new AMSApp.zhenghua.Entity.Inventory(drinvs[0]);


                        rrd.cnvcInvCode     = inv.cnvcInvCode;
                        rrd.cnvcGroupCode   = inv.cnvcGroupCode;
                        rrd.cnvcComunitCode = inv.cnvcSTComUnitCode;

                        DataRow[] drcus = dtComputationUnit.Select("cnvcGroupCode='" + inv.cnvcGroupCode + "' and cnbMainUnit=1");
                        if (drcus.Length == 0)
                        {
                            throw new Exception(inv.cnvcGroupCode + "未设置主计量单位");
                        }
                        decimal   dchangerate    = Convert.ToDecimal(drcus[0]["cnichangrate"].ToString());
                        DataRow[] drcus1         = dtComputationUnit.Select("cnvcGroupCode='" + inv.cnvcGroupCode + "' and cnvcComUnitCode='" + inv.cnvcSTComUnitCode + "'");
                        decimal   dchangerate_st = Convert.ToDecimal(drcus1[0]["cnichangrate"].ToString());

//						string strcssql = "SELECT * FROM tbCurrentStock WHERE cnvcWhCode='"+strWarehouse+"' AND cnvcInvCode='"+pcl.cnvcInvCode+"'";
//						DataTable dtcs = SqlHelper.ExecuteDataTable(trans,CommandType.Text,strcssql);


                        string strcssql = "SELECT * FROM tbCurrentStock WHERE cnvcWhCode='" + strWarehouse + "' AND cnvcInvCode='" + pcl.cnvcInvCode + "'"
                                          + " and CONVERT(char(10),isnull(cndExpDate,''),121)>=CONVERT(char(10),getdate(),121) ";
                        string strcssql2 = "SELECT isnull(sum(cnnAvaQuantity),0) FROM tbCurrentStock WHERE cnvcWhCode='" + strWarehouse + "' AND cnvcInvCode='" + pcl.cnvcInvCode + "'"
                                           + " and CONVERT(char(10),isnull(cndExpDate,''),121)>=CONVERT(char(10),getdate(),121) ";
                        DataTable dtcs         = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strcssql);
                        decimal   davaquantity = Convert.ToDecimal(SqlHelper.ExecuteScalar(trans, CommandType.Text, strcssql2).ToString());

                        if (dtcs.Rows.Count == 0)
                        {
                            throw new Exception(pcl.cnvcInvCode + "无库存");
                        }
                        if (davaquantity - pcl.cnnAssignCount * dchangerate_st / dchangerate < 0)
                        {
                            throw new Exception(pcl.cnvcInvCode + "库存不足");
                        }

//						if(cs.cnnAvaQuantity - pcl.cnnAssignCount<0)
//							throw new Exception(pcl.cnvcInvCode+"库存不足");
                        decimal dhave = 0;
                        foreach (DataRow drcs in dtcs.Rows)
                        {
                            Entity.CurrentStock cs = new CurrentStock(drcs);
//							if(cs.cnnAvaQuantity - pcl.cnnAssignCount<0)
//								throw new Exception(pcl.cnvcInvCode+"库存不足");
//							cs.cnnAvaQuantity = cs.cnnAvaQuantity - pcl.cnnAssignCount;
//							cs.cnnQuantity = cs.cnnQuantity - pcl.cnnAssignCount;
//							EntityMapping.Update(cs,trans);


                            if (cs.cnnAvaQuantity > pcl.cnnAssignCount * dchangerate_st / dchangerate - dhave)
                            {
                                cs.cnnAvaQuantity = cs.cnnAvaQuantity - pcl.cnnAssignCount * dchangerate_st / dchangerate;
                                cs.cnnQuantity    = cs.cnnQuantity - pcl.cnnAssignCount * dchangerate_st / dchangerate;
                                EntityMapping.Update(cs, trans);
                                break;
                            }
                            else
                            {
                                cs.cnnAvaQuantity = 0;
                                cs.cnnQuantity    = 0;
                                EntityMapping.Update(cs, trans);
                                dhave += cs.cnnAvaQuantity;
                            }
                        }
                        rrd.cnnQuantity = pcl.cnnAssignCount * dchangerate_st / dchangerate;
                        EntityMapping.Create(rrd, trans);
                    }


                    //string strsql = "update tbMakeDetail set cnbCollar=1 where cnnMakeSerialNo="+strMakeSerialNo;
                    //SqlHelper.ExecuteNonQuery(trans,CommandType.Text,strsql);

                    string strsql4 = "update tbproducelog set cnvcproducestate='7' where cnnproduceserialno=" + strProduceSerialNo;
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strsql4);

                    operLog.cndOperDate  = dtSysTime;
                    operLog.cnvcComments = "生产流水:" + strProduceSerialNo;
                    EntityMapping.Create(operLog, trans);

                    trans.Commit();
                }
                catch (SqlException sex)
                {
                    trans.Rollback();
                    LogAdapter.WriteDatabaseException(sex);
                    throw sex;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    LogAdapter.WriteFeaturesException(ex);
                    throw ex;
                }
                finally
                {
                    ConnectionPool.ReturnConnection(conn);
                }
            }
        }
 public EntityIndexWriter(IMongoDbConnection connection)
 {
     Connection       = connection;
     EntityDefinition = EntityMapping.GetOrCreateDefinition(typeof(TEntity));
 }
        public IEnumerable <WriteModel <TEntity> > GetModel()
        {
            var definition = EntityMapping.GetOrCreateDefinition(typeof(TEntity));

            yield return(new DeleteOneModel <TEntity>(definition.CreateIdFilterFromEntity(EntityEntry.Entity)));
        }
Exemple #24
0
    public static void Main(string[] args)
    {
        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(Handlers.UnhandledExceptionHandler);

        // check number of command line parameters
        if (args.Length < 4)
        {
            Usage("Not enough arguments.");
        }

        // read command line parameters
        RecommenderParameters parameters = null;

        try     { parameters = new RecommenderParameters(args, 4); }
        catch (ArgumentException e)     { Usage(e.Message); }

        // other parameters
        string data_dir = parameters.GetRemoveString("data_dir");
        //Console.Error.WriteLine("data_dir " + data_dir);
        string item_attributes_file = parameters.GetRemoveString("item_attributes");
        string user_attributes_file = parameters.GetRemoveString("user_attributes");
        //string save_mapping_file    = parameters.GetRemoveString( "save_model");
        int    random_seed     = parameters.GetRemoveInt32("random_seed", -1);
        bool   no_eval         = parameters.GetRemoveBool("no_eval", false);
        bool   compute_fit     = parameters.GetRemoveBool("compute_fit", false);
        string prediction_file = parameters.GetRemoveString("prediction_file");

        if (random_seed != -1)
        {
            MyMediaLite.Util.Random.InitInstance(random_seed);
        }

        // main data files and method
        string trainfile       = args[0].Equals("-") ? "-" : Path.Combine(data_dir, args[0]);
        string testfile        = args[1].Equals("-") ? "-" : Path.Combine(data_dir, args[1]);
        string load_model_file = args[2];
        string method          = args[3];

        // set correct recommender
        switch (method)
        {
        case "MF-ItemMapping":
            recommender = Recommender.Configure(mf_map, parameters, Usage);
            break;

//				case "MF-ItemMapping-Optimal":
//					recommender = Recommender.Configure(mf_map_opt, parameters, Usage);
//					break;
//				case "BPR-MF-ItemMapping-kNN":
//					recommender = Recommender.Configure(mf_map_knn, parameters, Usage);
//					break;
//				case "BPR-MF-ItemMapping-SVR":
//					recommender = Recommender.Configure(mf_map_svr, parameters, Usage);
//					break;
        default:
            Usage(string.Format("Unknown method: '{0}'", method));
            break;
        }

        if (parameters.CheckForLeftovers())
        {
            Usage(-1);
        }

        // TODO move loading into its own method

        // ID mapping objects
        EntityMapping user_mapping = new EntityMapping();
        EntityMapping item_mapping = new EntityMapping();

        // training data
        training_data       = MyMediaLite.IO.RatingPrediction.Read(Path.Combine(data_dir, trainfile), user_mapping, item_mapping);
        recommender.Ratings = training_data;

        // user attributes
        if (recommender is IUserAttributeAwareRecommender)
        {
            if (user_attributes_file.Equals(string.Empty))
            {
                Usage("Recommender expects user_attributes=FILE.");
            }
            else
            {
                ((IUserAttributeAwareRecommender)recommender).UserAttributes = AttributeData.Read(Path.Combine(data_dir, user_attributes_file), user_mapping);
            }
        }

        // item attributes
        if (recommender is IItemAttributeAwareRecommender)
        {
            if (item_attributes_file.Equals(string.Empty))
            {
                Usage("Recommender expects item_attributes=FILE.");
            }
            else
            {
                ((IItemAttributeAwareRecommender)recommender).ItemAttributes = AttributeData.Read(Path.Combine(data_dir, item_attributes_file), item_mapping);
            }
        }

        // test data
        test_data = MyMediaLite.IO.RatingPrediction.Read(Path.Combine(data_dir, testfile), user_mapping, item_mapping);

        TimeSpan seconds;

        Recommender.LoadModel(recommender, load_model_file);

        // set the maximum user and item IDs in the recommender - this is important for the cold start use case
        recommender.MaxUserID = user_mapping.InternalIDs.Max();
        recommender.MaxItemID = item_mapping.InternalIDs.Max();

        Console.Error.WriteLine(string.Format(CultureInfo.InvariantCulture, "ratings range: [{0}, {1}]", recommender.MinRating, recommender.MaxRating));

        DisplayDataStats();

        Console.Write(recommender.ToString() + " ");

        if (compute_fit)
        {
            seconds = Utils.MeasureTime(delegate() {
                int num_iter = recommender.NumIterMapping;
                recommender.NumIterMapping = 0;
                recommender.LearnAttributeToFactorMapping();
                Console.Error.WriteLine();
                Console.Error.WriteLine(string.Format(CultureInfo.InvariantCulture, "iteration {0} fit {1}", -1, recommender.ComputeFit()));

                recommender.NumIterMapping = 1;
                for (int i = 0; i < num_iter; i++, i++)
                {
                    recommender.IterateMapping();
                    Console.Error.WriteLine(string.Format(CultureInfo.InvariantCulture, "iteration {0} fit {1}", i, recommender.ComputeFit()));
                }
                recommender.NumIterMapping = num_iter;                 // restore
            });
        }
        else
        {
            seconds = Utils.MeasureTime(delegate() {
                recommender.LearnAttributeToFactorMapping();
            });
        }
        Console.Write("mapping_time " + seconds + " ");

        if (!no_eval)
        {
            seconds = EvaluateRecommender(recommender);
        }
        Console.WriteLine();

        if (prediction_file != string.Empty)
        {
            Console.WriteLine();
            seconds = Utils.MeasureTime(
                delegate() {
                Prediction.WritePredictions(recommender, test_data, user_mapping, item_mapping, prediction_file);
            }
                );
            Console.Error.WriteLine("predicting_time " + seconds);
        }
    }
Exemple #25
0
 public static ISqlBuilder GetSqlBuilder <TEntity>(EntityMapping <TEntity> entityMapping = null)
 {
     return(GetEntityDescriptor <TEntity>().GetSqlStatements(entityMapping).SqlBuilder);
 }
Exemple #26
0
    public override bool Validate(IEntityMovement movement, IMapCollisionDetection seer, HexCoordinates origin, EntityMapping entityMap, TileListBase tileMap)
    {
        HexCoordinates CheckSpace = ClearSpace + origin;

        return((int)seer.NodeStatus(entityMap, tileMap, CheckSpace, movement) >= (int)MinimumClarity);
    }
Exemple #27
0
 public static IFormattable Table <TEntity>(EntityMapping entityMappingOverride = null)
 {
     return(new SqlEntityFormattableParameter <TEntity>(SqlParameterElementType.Table, null, entityMappingOverride));
 }
Exemple #28
0
 public List <UserUI> GetUserInfoById(int Id)
 {
     return(EntityMapping.Auto <List <User>, List <UserUI> >(LoginContext.GetUserInfoById(Id)));
 }
 /// <summary>
 /// Overrides the entity mapping for the current statement.
 /// </summary>
 public TStatementOptionsBuilder WithEntityMappingOverride(EntityMapping entityMapping)
 {
     this.EntityMappingOverride = entityMapping;
     return(this.Builder);
 }
Exemple #30
0
 public UserUI GetUserInfoByNo(string No)
 {
     return(EntityMapping.Auto <User, UserUI>(LoginContext.FirstOrDefault(x => x.UserNo == No)));
 }
Exemple #31
0
        /// <summary>
        /// 根据录屏结果生成实体及映射
        /// </summary>
        /// <param name="categoryID">分类ID</param>
        /// <param name="recordCollection">录屏集合</param>
        public string RecordResultGenerate(string categoryID, RecordResultCollection recordCollection)
        {
            categoryID.CheckStringIsNullOrEmpty <ArgumentNullException>("categoryID");
            recordCollection.NullCheck <ArgumentNullException>("录屏集合不能为空!");

            string masterEntityID = string.Empty;

            #region 验证
            //只验证主表,子表可以为空
            recordCollection.Any().FalseThrow("没有找到信息项,请重新填写!");

            //验证CodeName唯一性
            recordCollection.Select(p => p.EntityName).Distinct().ForEach(p =>
                                                                          DESchemaObjectAdapter.Instance.CheckCodeNameExist(categoryID, p).TrueThrow(string.Format("已存在同名[{0}]", p)));
            #endregion

            List <string> listFullName = recordCollection.Select(p => p.TempFullPath).Distinct().ToList();

            //按长度倒序排序,确保从最子级节点开始添加实体
            listFullName = listFullName.OrderByDescending(p => p.Split('/').Length).ToList();

            using (TransactionScope scope = TransactionScopeFactory.Create())
            {
                listFullName.ForEach(fullName =>
                {
                    //准备数据
                    var entityRecordList = recordCollection.Where(r => r.TempFullPath.Equals(fullName));
                    var entityResultColl = new RecordResultCollection();
                    entityResultColl.CopyFrom(entityRecordList);

                    //实体入库
                    var childEntity = entityResultColl.BuildEntity(categoryID);
                    DEObjectOperations.InstanceWithoutPermissions.DoOperation(SCObjectOperationMode.Add, childEntity, null);

                    //为父实体指定“引用实体”属性值
                    if (fullName.Contains("/"))
                    {
                        string parentFullName  = fullName.Substring(0, fullName.LastIndexOf("/"));
                        string parentFieldName = fullName.Replace(parentFullName + "/", "");
                        recordCollection.First(pe => pe.TempFullPath.Equals(parentFullName) && pe.FieldName.Equals(parentFieldName)).ReferenceEntityCodeName =
                            childEntity.CodeName;
                    }

                    //映射入库
                    EntityMapping childMapping = BuildEntityMapping(childEntity);
                    DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(childMapping);

                    //最后一个被添加的实体为主实体
                    masterEntityID = childEntity.ID;
                });

                scope.Complete();

                #region 以前方法,先注释掉
                ///////////////////////////////////////////////////////////////////////////////////////
                //#region 实体定义
                ////先入子表
                //recordCollection.Where(p => !p.IsMasterTable).GroupBy(p => p.EntityName).ToList().ForEach(p =>
                //{
                //    RecordResultCollection child = new RecordResultCollection();
                //    child.CopyFrom(p.ToList());

                //    var childEntity = child.BuildEntity(categoryID);
                //    DEObjectOperations.InstanceWithoutPermissions.DoOperation(SCObjectOperationMode.Add, childEntity, null);

                //    //添加子类引用
                //    recordCollection.Add(new Dynamics.Objects.RecordResult()
                //    {
                //        EntityName = recordCollection.FirstOrDefault(m => m.IsMasterTable).EntityName,
                //        EntityDesc = recordCollection.FirstOrDefault(m => m.IsMasterTable).EntityName,
                //        IsMasterTable = true,
                //        FieldName = p.Key,
                //        FieldType = FieldTypeEnum.Collection,
                //        ReferenceEntityCodeName = childEntity.CodeName,
                //        FieldDesc = p.Key,
                //        FieldLength = 99999,
                //        SortNo = recordCollection.Count(m => m.IsMasterTable) + 1,
                //        IsStruct = p.All(f => f.EntityDesc == "STRUCTURE")
                //    });
                //});

                //// 主表
                //RecordResultCollection master = new RecordResultCollection();
                //master.CopyFrom(recordCollection.Where(p => p.IsMasterTable).ToList());
                //var masterEntity = master.BuildEntity(categoryID);

                //DEObjectOperations.InstanceWithoutPermissions.DoOperation(SCObjectOperationMode.Add, masterEntity, null);
                //#endregion

                //// 主表映射
                //EntityMapping masterMapping = BuildEntityMapping(masterEntity);
                //DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(masterMapping);

                ////子表映射
                //masterEntity.Fields.Where(p => p.FieldType == FieldTypeEnum.Collection).ForEach(f =>
                //{
                //    DynamicEntity childEntity = DEDynamicEntityAdapter.Instance.LoadByCodeName(f.ReferenceEntityCodeName) as DynamicEntity;
                //    EntityMapping childMapping = BuildEntityMapping(childEntity);

                //    DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(childMapping);
                //});

                //masterEntityID = masterEntity.ID;
                //scope.Complete();
                #endregion
            }

            return(masterEntityID);
        }
Exemple #32
0
        public void AddAssignLog(ProduceLog produceLog, OperLog operLog, string strwhhouse)      //,BusiLog busiLog)
        {
            using (SqlConnection conn = ConnectionPool.BorrowConnection())
            {
                SqlTransaction trans = conn.BeginTransaction();
                try
                {
                    string   strSysTime = SqlHelper.ExecuteScalar(trans, CommandType.Text, "select getdate()").ToString();
                    DateTime dtSysTime  = DateTime.Parse(strSysTime);

                    OrderSerialNo serialNo = new OrderSerialNo();
                    serialNo.cnvcFill    = "0";
                    serialNo.cnnSerialNo = Convert.ToDecimal(EntityMapping.Create(serialNo, trans));

                    ProduceLog oldLog = new ProduceLog();
                    oldLog.cnnProduceSerialNo = produceLog.cnnProduceSerialNo;
                    oldLog = EntityMapping.Get(oldLog, trans) as ProduceLog;
                    if (oldLog == null)
                    {
                        throw new Exception("生产计划不存在");
                    }
                    if (oldLog.cnvcProduceState == "6")
                    {
                        throw new Exception("已分货");
                    }
                    if (oldLog.cnvcProduceState == "7")
                    {
                        throw new Exception("已分货出库");
                    }
                    oldLog.cnvcOperID  = produceLog.cnvcOperID;
                    oldLog.cndOperDate = dtSysTime;

                    AssignLog assign = new AssignLog();
                    assign.cndOperDate        = dtSysTime;
                    assign.cnnAssignSerialNo  = serialNo.cnnSerialNo;
                    assign.cnnProduceSerialNo = oldLog.cnnProduceSerialNo;
                    assign.cnvcShipOperID     = produceLog.cnvcOperID;
                    assign.cnvcShipDeptID     = oldLog.cnvcProduceDeptID;
                    assign.cnvcOperID         = produceLog.cnvcOperID;
                    assign.cndShipDate        = oldLog.cndProduceDate;
                    //订单数据
                    string    strOrderSql       = @"select * from tbOrderBook where cnnOrderSerialNo in 
						(select cnnOrderSerialNo from tbProduceOrderLog where cnnProduceSerialNo="                         + oldLog.cnnProduceSerialNo.ToString() + ")";
                    DataTable dtOrder           = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strOrderSql);
                    string    strOrderDetailSql = @"select * from tbOrderBookDetail where cnnOrderSerialNo in 
						(select cnnOrderSerialNo from tbProduceOrderLog where cnnProduceSerialNo="                         + oldLog.cnnProduceSerialNo.ToString() + ")";
                    DataTable dtOrderDetail     = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strOrderDetailSql);
                    DataTable dtDept            = SingleTableQuery.ExcuteQuery("tbDept", trans);
                    //生产盘点数据
                    string strCheckSql = "select * "
                                         + " from tbProduceCheckLog where cnnProduceSerialNo=" +
                                         oldLog.cnnProduceSerialNo.ToString() + " and cnnCheckCount>0 and cnbInWh=1";
                    DataTable dtProduce = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strCheckSql);
                    #region 分货不按可用量分
                    string strwhsql = "SELECT cnvcinvcode,sum(cnnAvaQuantity) as cnnwhcount FROM tbCurrentStock "
                                      + " WHERE cnvcwhcode='" + strwhhouse + "' AND cnvcStopFlag='0'  and CONVERT(char(10),isnull(cndExpDate,''),121)>=CONVERT(char(10),getdate(),121)  "
                                      + " group by cnvcinvcode";
                    DataTable dtwh = SqlHelper.ExecuteDataTable(trans, CommandType.Text, strwhsql);


                    Helper.DataTableConvert(dtProduce, "cnvcInvCode", "cnnCheckCount", dtwh, "cnvcinvcode", "cnnwhcount", "");
                    #endregion
                    //订单按产品分类汇总
                    //分配 外订订单有限分配
                    Helper.DataTableConvert(dtOrderDetail, "cnnOrderSerialNo", "cnvcOrderType", dtOrder, "cnnOrderSerialNo", "cnvcOrderType", "");
                    Helper.DataTableConvert(dtOrderDetail, "cnnOrderSerialNo", "cnvcOrderDeptID", dtOrder, "cnnOrderSerialNo", "cnvcOrderDeptID", "");
                    Helper.DataTableConvert(dtOrderDetail, "cnnOrderSerialNo", "cndShipDate", dtOrder, "cnnOrderSerialNo", "cndShipDate", "");
                    Helper.DataTableConvert(dtOrderDetail, "cnvcOrderDeptID", "cnnPriority", dtDept, "cnvcDeptID", "cnnPriority", "");
                    //
                    dtOrderDetail.Columns.Add("cnnAssignCount");
                    foreach (DataRow dr in dtOrderDetail.Rows)
                    {
                        dr["cnnAssignCount"] = 0;
                    }

                    DataView dvOrder = new DataView(dtOrderDetail);
                    dvOrder.Sort = "cnvcOrderType desc,cnnPriority asc,cnnOrderSerialNo asc";
                    Hashtable hOrderSerialNo = new Hashtable();
                    foreach (DataRowView dv in dvOrder)
                    {
                        string  strOrderSerialNo = dv["cnnOrderSerialNo"].ToString();
                        string  strProductCode   = dv["cnvcInvCode"].ToString();
                        string  strOrderCount    = dv["cnnOrderCount"].ToString();
                        string  strAssignCount   = dv["cnnAssignCount"].ToString();
                        decimal dOrderCount      = decimal.Parse(strOrderCount);
                        decimal dAssignCount     = Convert.ToDecimal(strAssignCount);
                        string  strOrderType     = dv["cnvcOrderType"].ToString();

                        DataRow[] drProduces = dtProduce.Select("cnvcInvCode='" + strProductCode + "'");
                        if (drProduces.Length == 0)
                        {
                            continue;                                                //throw new Exception(strProductCode+"无可分货量");
                        }
                        //						if(drProduces.Length > 0)
                        //						{

                        DateTime dtMDate      = Convert.ToDateTime(drProduces[0]["cndMDate"].ToString());
                        DateTime dtExpDate    = Convert.ToDateTime(drProduces[0]["cndExpDate"].ToString());
                        string   strSumCount  = drProduces[0]["cnnCheckCount"].ToString();
                        decimal  dSumCount    = decimal.Parse(strSumCount);
                        string   strSumAssign = drProduces[0]["cnnAssignCount"].ToString();
                        decimal  dSumAssign   = decimal.Parse(strSumAssign);
                        //if(dSumCount <=0) throw new Exception(strProductCode+"无可分货量");
                        //						if(dSumCount > 0)
                        //						{
                        AssignDetail assignDetail = new AssignDetail();
                        assignDetail.cnnAssignSerialNo  = assign.cnnAssignSerialNo;
                        assignDetail.cnnProduceSerialNo = assign.cnnProduceSerialNo;
                        assignDetail.cnnOrderSerialNo   = decimal.Parse(strOrderSerialNo);
                        assignDetail.cnvcInvCode        = strProductCode;
                        assignDetail.cndMdate           = dtMDate;
                        assignDetail.cndExpDate         = dtExpDate;

                        if (dSumCount >= dOrderCount - dAssignCount)
                        {
                            assignDetail.cnnOrderCount      = dOrderCount;
                            assignDetail.cnnAssignCount     = dOrderCount - dAssignCount;
                            drProduces[0]["cnnCheckCount"]  = dSumCount - dOrderCount + dAssignCount;
                            drProduces[0]["cnnAssignCount"] = dSumAssign + dOrderCount - dAssignCount;
                        }
                        else
                        {
                            if (strOrderType == "WDO" || strOrderType == "WDOSELF")
                            {
                                throw new Exception("订单流水为" + dv["cnnOrderSerialNo"].ToString() + "的外订定单" + strProductCode + "不能满足分配");
                            }
                            assignDetail.cnnOrderCount      = dOrderCount;
                            assignDetail.cnnAssignCount     = dSumCount;
                            drProduces[0]["cnnCheckCount"]  = 0;
                            drProduces[0]["cnnAssignCount"] = dSumAssign + dSumCount;
                        }

                        EntityMapping.Create(assignDetail, trans);
                        if (!hOrderSerialNo.Contains(dv["cnnOrderSerialNo"].ToString()))
                        {
                            hOrderSerialNo.Add(dv["cnnOrderSerialNo"].ToString(), dv["cnnOrderSerialNo"].ToString());
                            assign.cnnOrderSerialNo  = decimal.Parse(dv["cnnOrderSerialNo"].ToString());
                            assign.cnvcReceiveDeptID = dv["cnvcOrderDeptID"].ToString();
                            assign.cndShipDate       = DateTime.Parse(dv["cndShipDate"].ToString());
                            EntityMapping.Create(assign, trans);
                        }

                        //								string strOrderBookDetail = "update tbOrderBookDetail set cnnAssignCount="+Convert.ToString(assignDetail.cnnAssignCount+dAssignCount)+" where cnnOrderSerialNo="+strOrderSerialNo+" and cnvcProductCode='"+strProductCode+"'";
                        //								SqlHelper.ExecuteNonQuery(trans,CommandType.Text,strOrderBookDetail);
                        //						}



                        //						}
                    }
                    foreach (DataRow drProduce in dtProduce.Rows)
                    {
                        ProduceCheckLog check  = new ProduceCheckLog(drProduce);
                        string          strSql = "update tbProduceCheckLog set cnnAssignCount=" + check.cnnAssignCount.ToString() + " where cnnProduceSerialNo=" + check.cnnProduceSerialNo.ToString() + " and cnvcInvCode='" + check.cnvcInvCode + "'";
                        SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strSql);
                    }
                    //更新订单生产计划状态
                    string strUpdateOrder = "update tbOrderBook set cnvcOrderState='2' "
                                            +
                                            " where cnnOrderSerialNo in (select cnnOrderSerialNo from tbProduceOrderLog where cnvcType='0' and cnnProduceSerialNo=" + oldLog.cnnProduceSerialNo + ") ";
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strUpdateOrder);
                    //更新生产计划状态

                    oldLog.cnvcProduceState = "6";
                    EntityMapping.Update(oldLog, trans);

                    operLog.cndOperDate  = dtSysTime;
                    operLog.cnvcComments = "分货流水:" + produceLog.cnnProduceSerialNo.ToString();
                    EntityMapping.Create(operLog, trans);
                    trans.Commit();
                }
                catch (SqlException sex)
                {
                    trans.Rollback();
                    LogAdapter.WriteDatabaseException(sex);
                    throw sex;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    LogAdapter.WriteFeaturesException(ex);
                    throw ex;
                }
                finally
                {
                    ConnectionPool.ReturnConnection(conn);
                }
            }
        }
 internal abstract UpdateCommandGenerator CreateUpdateCommandGenerator(EntityMapping entityMapping, QueryMapping queryMapping);
Exemple #34
0
        //入库
        public void ProduceCheck(DataTable dtProduce, OperLog operLog, string strProduceDeptID, string strProduceSerialNo)
        {
            using (SqlConnection conn = ConnectionPool.BorrowConnection())
            {
                //conn.Open();

                SqlTransaction trans = conn.BeginTransaction();
                try
                {
                    string   strSysTime = SqlHelper.ExecuteScalar(trans, CommandType.Text, "select getdate()").ToString();
                    DateTime dtSysTime  = DateTime.Parse(strSysTime);

                    string strComments = "";
                    foreach (DataRow drProduce in dtProduce.Rows)
                    {
                        ProduceCheckLog check = new ProduceCheckLog(drProduce);
                        check.cnvcOperID        = operLog.cnvcOperID;
                        check.cnvcProduceDeptID = strProduceDeptID;
                        check.cndOperDate       = dtSysTime;

                        ProduceCheckLog check2 = new ProduceCheckLog();
                        check2.cnnProduceSerialNo = check.cnnProduceSerialNo;
                        check2.cnvcInvCode        = check.cnvcInvCode;
                        check2 = EntityMapping.Get(check2, trans) as ProduceCheckLog;
                        if (check2 == null)
                        {
                            EntityMapping.Create(check, trans);
                        }
                        else
                        {
                            check2.cnnCheckCount = check.cnnCheckCount;
                            check2.cnvcOperID    = operLog.cnvcOperID;
                            check2.cndOperDate   = dtSysTime;
                            check2.cnnTeamID     = check.cnnTeamID;
                            check2.cnnProducerID = check.cnnProducerID;
                            EntityMapping.Update(check2, trans);
                        }
                        strComments += "[" + check.cnvcInvCode + ":" + check.cnnCheckCount.ToString() + "]";
                    }
                    ProduceLog pl = new ProduceLog();
                    pl.cnnProduceSerialNo = decimal.Parse(strProduceSerialNo);
                    pl = EntityMapping.Get(pl, trans) as ProduceLog;
                    if (pl == null)
                    {
                        throw new Exception("生产数据异常");
                    }
                    pl.cnvcProduceState = "4";
                    pl.cnvcOperID       = operLog.cnvcOperID;
                    pl.cndOperDate      = dtSysTime;
                    EntityMapping.Update(pl, trans);

                    operLog.cndOperDate  = dtSysTime;
                    operLog.cnvcComments = "生产流水:" + strProduceSerialNo + strComments;
                    EntityMapping.Create(operLog, trans);
                    trans.Commit();
                }
                catch (SqlException sex)
                {
                    trans.Rollback();
                    LogAdapter.WriteDatabaseException(sex);
                    throw sex;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    LogAdapter.WriteFeaturesException(ex);
                    throw ex;
                }
                finally
                {
                    ConnectionPool.ReturnConnection(conn);
                }
            }
        }
 internal override InsertCommandGenerator CreateInsertCommandGenerator(EntityMapping entityMapping)
 {
     return(new OracleInsertCommandGenerator(entityMapping));
 }
Exemple #36
0
        public void DeleteAssignLog(ProduceLog produceLog, OperLog operLog)
        {
            using (SqlConnection conn = ConnectionPool.BorrowConnection())
            {
                SqlTransaction trans = conn.BeginTransaction();
                try
                {
                    string   strSysTime = SqlHelper.ExecuteScalar(trans, CommandType.Text, "select getdate()").ToString();
                    DateTime dtSysTime  = DateTime.Parse(strSysTime);

                    OrderSerialNo serialNo = new OrderSerialNo();
                    serialNo.cnvcFill    = "0";
                    serialNo.cnnSerialNo = Convert.ToDecimal(EntityMapping.Create(serialNo, trans));

                    ProduceLog oldLog = new ProduceLog();
                    oldLog.cnnProduceSerialNo = produceLog.cnnProduceSerialNo;
                    oldLog = EntityMapping.Get(oldLog, trans) as ProduceLog;
                    if (oldLog == null)
                    {
                        throw new Exception("生产计划不存在");
                    }
                    if (oldLog.cnvcProduceState != "6")
                    {
                        throw new Exception("生产计划不在已分货状态,不能清除分货数据");
                    }
                    if (oldLog.cnvcProduceState == "7")
                    {
                        throw new Exception("已分货出库");
                    }
                    oldLog.cnvcOperID  = produceLog.cnvcOperID;
                    oldLog.cndOperDate = dtSysTime;

                    //清除分货数据
                    string strsql = "delete from tbassignlog where cnnproduceserialno=" + produceLog.cnnProduceSerialNo.ToString();
//					DataTable dtal = SqlHelper.ExecuteDataTable(trans,CommandType.Text,strsql);
//					if(dtal.Rows.Count == 0) throw new Exception("未找到分货数据");
//					Entity.AssignLog al = new AssignLog(dtal);
//					EntityMapping.Delete(al,trans);
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strsql);

                    strsql = "delete from tbassigndetail where cnnproduceserialno=" + produceLog.cnnProduceSerialNo.ToString();
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strsql);
                    strsql = "update tbproducechecklog set cnnassigncount=0 where cnnproduceserialno=" + produceLog.cnnProduceSerialNo.ToString();
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strsql);
                    //更新订单生产计划状态
                    string strUpdateOrder = "update tbOrderBook set cnvcOrderState='1' "
                                            +
                                            " where cnnOrderSerialNo in (select cnnOrderSerialNo from tbProduceOrderLog where cnvcType='0' and cnnProduceSerialNo=" + oldLog.cnnProduceSerialNo + ") ";
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strUpdateOrder);
                    //更新生产计划状态

                    oldLog.cnvcProduceState = "5";
                    EntityMapping.Update(oldLog, trans);

                    operLog.cndOperDate  = dtSysTime;
                    operLog.cnvcComments = "生产流水:" + produceLog.cnnProduceSerialNo.ToString();
                    EntityMapping.Create(operLog, trans);
                    trans.Commit();
                }
                catch (SqlException sex)
                {
                    trans.Rollback();
                    LogAdapter.WriteDatabaseException(sex);
                    throw sex;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    LogAdapter.WriteFeaturesException(ex);
                    throw ex;
                }
                finally
                {
                    ConnectionPool.ReturnConnection(conn);
                }
            }
        }
    /// <summary>
    /// Creates and initializes a new instance of the Panel class with the specified Data.com contact mapping, and returns it.
    /// </summary>
    /// <param name="formInfo">The CMS contact form info.</param>
    /// <param name="entityInfo">The Data.com contact entity info.</param>
    /// <param name="mapping">The Data.com contact mapping.</param>
    /// <returns>A new instance of the Panel class initialized with the specified Data.com contact mapping.</returns>
    private Panel CreateMappingPanel(FormInfo formInfo, EntityInfo entityInfo, EntityMapping mapping)
    {
        Panel mappingPanel = new Panel { CssClass = "mapping"};
        mappingPanel.Controls.Add(CreateHeaderPanel());
        foreach (IField formItem in formInfo.ItemsList)
        {
            FormFieldInfo formField = formItem as FormFieldInfo;
            if (formField != null)
            {
                EntityMappingItem mappingItem = mapping.GetItem(formField.Name);
                if (mappingItem != null)
                {
                    EntityAttributeInfo entityAttribute = entityInfo.GetAttributeInfo(mappingItem.EntityAttributeName);
                    if (entityAttribute != null)
                    {
                        Panel row = new Panel { CssClass = "control-group-inline" };
                        mappingPanel.Controls.Add(row);

                        Panel formFieldPanel = new Panel { CssClass = "input-width-60 cms-form-group-text" };
                        row.Controls.Add(formFieldPanel);
                        formFieldPanel.Controls.Add(new Literal { Text = ResHelper.LocalizeString(formField.GetDisplayName(MacroContext.CurrentResolver)) });

                        Panel entityAttributePanel = new Panel { CssClass = "input-width-60 cms-form-group-text" };
                        row.Controls.Add(entityAttributePanel);
                        entityAttributePanel.Controls.Add(new Literal { Text = ResHelper.LocalizeString(entityAttribute.DisplayName) });
                    }
                }
            }
        }

        return mappingPanel;
    }
Exemple #38
0
        public void UpdateAssignLog(AssignDetail detail, OperLog operLog)
        {
            using (SqlConnection conn = ConnectionPool.BorrowConnection())
            {
                SqlTransaction trans = conn.BeginTransaction();
                try
                {
                    string   strSysTime = SqlHelper.ExecuteScalar(trans, CommandType.Text, "select getdate()").ToString();
                    DateTime dtSysTime  = DateTime.Parse(strSysTime);


                    Entity.ProduceCheckLog pcl = new ProduceCheckLog();
                    pcl.cnnProduceSerialNo = detail.cnnProduceSerialNo;
                    pcl.cnvcInvCode        = detail.cnvcInvCode;
                    pcl = EntityMapping.Get(pcl, trans) as ProduceCheckLog;
                    if (pcl == null)
                    {
                        throw new Exception("无法定位生产");
                    }

                    AssignDetail detailOld = EntityMapping.Get(detail, trans) as AssignDetail;


                    pcl.cnnAssignCount = pcl.cnnAssignCount + detail.cnnAssignCount - detailOld.cnnAssignCount;
                    EntityMapping.Update(pcl, trans);

//					if(detail.cnnAssignCount != detailOld.cnnAssignCount)
//					{

//						OrderSerialNo serialNo = new OrderSerialNo();
//						serialNo.cnvcFill = "0";
//						serialNo.cnnSerialNo = Convert.ToDecimal(EntityMapping.Create(serialNo, trans));
                    string strComments = "";
                    detailOld.cnnAssignCount = detail.cnnAssignCount;
                    EntityMapping.Update(detailOld, trans);
                    strComments = "[" + detail.cnvcInvCode + ":" + detail.cnnAssignCount + "]";
                    //}

                    operLog.cndOperDate  = dtSysTime;
                    operLog.cnvcComments = "分货流水:" + detail.cnnAssignSerialNo.ToString() + strComments;
                    EntityMapping.Create(operLog, trans);

                    trans.Commit();
                }
                catch (SqlException sex)
                {
                    trans.Rollback();
                    LogAdapter.WriteDatabaseException(sex);
                    throw sex;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    LogAdapter.WriteFeaturesException(ex);
                    throw ex;
                }
                finally
                {
                    ConnectionPool.ReturnConnection(conn);
                }
            }
        }
    private void RestoreParameters()
    {
        // Validate parameters
        if (!QueryHelper.ValidateHash("hash"))
        {
            throw new Exception("[DataComEditMappingPage.RestoreParameters]: Invalid query hash.");
        }
        Hashtable parameters = WindowHelper.GetItem(QueryHelper.GetString("pid", null)) as Hashtable;
        if (parameters == null)
        {
            throw new Exception("[DataComEditMappingPage.RestoreParameters]: The dialog page parameters are missing, the session might have been lost.");
        }

        // Restore parameters
        mEntityName = ValidationHelper.GetString(parameters["EntityName"], null);
        mSourceMappingHiddenFieldClientId = ValidationHelper.GetString(parameters["MappingHiddenFieldClientId"], null);
        mSourceMappingPanelClientId = ValidationHelper.GetString(parameters["MappingPanelClientId"], null);

        // Restore mapping
        string content = ValidationHelper.GetString(parameters["Mapping"], null);
        if (String.IsNullOrEmpty(content))
        {
            mSourceMapping = new EntityMapping();
        }
        else
        {
            EntityMappingSerializer serializer = new EntityMappingSerializer();
            mSourceMapping = serializer.UnserializeEntityMapping(content);
        }
    }
Exemple #40
0
        public void Setup()
        {
            var authorMapping = new EntityMapping
            {
                EntityType = typeof(Author),
                PrimaryKey = new PrimaryKeyMapping { ColumnName = "Id", PropertyInfo = typeof(Author).GetProperty("Id") }
            };

            authorMapping.AddColumn(new ColumnMapping { ColumnName = "FirstName", PropertyInfo = typeof(Author).GetProperty("FirstName") });
            authorMapping.AddColumn(new ColumnMapping { ColumnName = "MiddleName", PropertyInfo = typeof(Author).GetProperty("MiddleName") });
            authorMapping.AddColumn(new ColumnMapping { ColumnName = "LastName", PropertyInfo = typeof(Author).GetProperty("LastName") });

            var bookMapping = new EntityMapping
            {
                EntityType = typeof(Book),
                PrimaryKey = new PrimaryKeyMapping { ColumnName = "Id", PropertyInfo = typeof(Book).GetProperty("Id") }
            };

            bookMapping.AddColumn(new ColumnMapping { ColumnName = "Title", PropertyInfo = typeof(Book).GetProperty("Title") });
            bookMapping.AddColumn(new ColumnMapping { ColumnName = "Description", PropertyInfo = typeof(Book).GetProperty("Description") });

            bookMapping.AddRelation(new OneToOneRelationMapping { ColumnName = "AuthorId", PropertyInfo = typeof(Book).GetProperty("Author"), ReferenceType = typeof(Author) });

            mappings = new Dictionary<string, EntityMapping>
            {
                {"Author", authorMapping},
                {"Book", bookMapping}
            };

            var metadataStoreMock = new Mock<IMetadataStore>();
            var sessionMock = new Mock<ISession>();
            var sessionLevelCacheMock = new Mock<ISessionLevelCache>();

            metadataStoreMock.Setup(_ => _.GetMapping(It.IsAny<Type>())).Returns<Type>(_ => mappings[_.Name]);
            metadataStoreMock.Setup(_ => _.GetMapping(It.IsAny<string>())).Returns<string>(_ => mappings[_]);

            var cache = new Dictionary<Type, Dictionary<string, object>>();
            sessionLevelCacheMock.Setup(_ => _.Store(It.IsAny<Type>(), It.IsAny<object>(), It.IsAny<object>()))
                .Callback<Type, object, object>((entityType, entityKey, entity) =>
                {
                    Dictionary<string, object> entityCache;
                    if (!cache.TryGetValue(entityType, out entityCache))
                    {
                        cache.Add(entityType, entityCache = new Dictionary<string, object>());
                    }
                    entityCache.Add(entityKey.ToString(), entity);
                });
            sessionLevelCacheMock.Setup(_ => _.TryToFind(It.IsAny<Type>(), It.IsAny<object>()))
                .Returns<Type, object>((entityType, entityKey) =>
                {
                    Dictionary<string, object> entityCache;
                    if (!cache.TryGetValue(entityType, out entityCache))
                    {
                        return null;
                    }
                    object entity;
                    if (!entityCache.TryGetValue(entityKey.ToString(), out entity))
                    {
                        return null;
                    }
                    return entity;
                });

            hydrator = new EntityHydrator(metadataStoreMock.Object, sessionMock.Object, sessionLevelCacheMock.Object);

            connection = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDatabase"].ConnectionString);
            connection.Open();
            transaction = connection.BeginTransaction();
        }