Exemplo n.º 1
0
        ///  <summary>
        /// 根据多条件获得模具
        /// </summary>
        /// <param name="condition">查询条件</param>
        /// <returns>模具列表</returns>
        public List<MoldView> GetByMutiConditions(MoldSearchCondition condition)
        {
            List<MoldView> molds=null;
            if(!string.IsNullOrEmpty(condition.MoldNR)) {
                molds=context.MoldView.Where(m => m.MoldNR.Equals(condition.MoldNR))
                .ToList();
            }
            else if (!string.IsNullOrEmpty(condition.PositionNr))
            {
                molds = context.MoldView.Where(m => m.Destination.Equals(condition.PositionNr))
                             .ToList();
            }else
            {
                 molds=context.MoldView
                 .Where(m => (string.IsNullOrEmpty(condition.MoldTypeId) ? true : m.MoldTypeID.Equals(condition.MoldTypeId))
                      && (string.IsNullOrEmpty(condition.ProjectId) ? true : m.ProjectID.Equals(condition.ProjectId))
                     && (condition.State == MoldStateType.NULL ? true : m.State == condition.State))
                    .ToList();}
            molds = molds.Distinct().ToList();

            return molds;
        }
        /// <summary>
        /// 根据搜索条件获得模具基本信息
        /// </summary>
        /// <param name="conditions">搜索条件</param>
        /// <returns>模具基本信息列表</returns>
        public List<MoldBaseInfo> GetMoldByMutiConditions(MoldSearchCondition conditions)
        {
            using (IUnitOfWork unitwork = MSSqlHelper.DataContext())
            {
                IMoldRepository moldRepostitory = new MoldRepository(unitwork);
                List<MoldView> molds = moldRepostitory.GetByMutiConditions(conditions);
                List<MoldBaseInfo> moldBaseInfos = new List<MoldBaseInfo>();

                foreach (MoldView m in molds)
                {
                    MoldBaseInfo moldBaseInfo = new MoldBaseInfo()
                    {
                        MoldNR = m.MoldNR,
                        Name = m.Name,
                        Type = m.TypeName,
                        State = m.State,
                        StateCN = m.StateCN,
                        ProjectId = m.ProjectID,
                        ProjectName = m.ProjectName,
                        CurrentPosition = m.StorageRecordNR.HasValue ? moldRepostitory.GetMoldCurrPosiByRecordNR((Guid)m.StorageRecordNR) : string.Empty
                    };
                    moldBaseInfos.Add(moldBaseInfo);
                }

                return moldBaseInfos;
            }
        }