Exemplo n.º 1
0
        private static IList <LotView> GetLotViewsFromNotifications(LotQuery query, NotificationTypes notificationType, bool unReadOnly, string orderBy, bool desc, int pageIndex, int pageSize, out int recordCount)
        {
            IList <LotView> list = new List <LotView>();

            foreach (NotificationswithLot lot in notificationWithLotGateway.GetNotificationswithLotsBy(query, notificationType, unReadOnly, orderBy, desc, pageIndex, pageSize, out recordCount))
            {
                list.Add(GetLotViewByLotID(lot.LotID));
            }
            return(list);
        }
Exemplo n.º 2
0
        public ActionResult Search(int pageSize, int pageIndex = 0, string orderBy = "", bool desc = false)
        {
            //if (DateTime.Now <= Convert.ToDateTime("2017-12-31"))
            //{
            //    if (StringHelper.isNullOrEmpty(orderBy))
            //    {
            //        orderBy = "UpdateTime";
            //        desc = true;
            //    }
            //    int recordCount = 0;
            //    LotQuery queryFromRequest = QueryUtility.GetQueryFromRequest(base.Request, BaseController.CurrentUserInfo.UserID);
            //    if ((BaseController.CurrentUserInfo.Role == UserRoles.OSAT) || (BaseController.CurrentUserInfo.Role == UserRoles.OSATAdmin))
            //    {
            //        queryFromRequest.Osat = BaseController.CurrentUserInfo.BUName;
            //    }
            //    IList<LotView> list = LotService.GetLotViews(queryFromRequest, orderBy, desc, pageIndex, pageSize, out recordCount);
            //    string s = JsonConvert.SerializeObject(new { currentPage = pageIndex, totalPages = PagerUtility.GetPageCount(recordCount, pageSize), rows = list });
            //    base.Response.Write(s);
            //}
            //return null;
            if (StringHelper.isNullOrEmpty(orderBy))
            {
                orderBy = "UpdateTime";
                desc    = true;
            }
            int      recordCount      = 0;
            LotQuery queryFromRequest = QueryUtility.GetQueryFromRequest(base.Request, BaseController.CurrentUserInfo.UserID);

            if (BaseController.CurrentUserInfo.Role == UserRoles.OSAT || BaseController.CurrentUserInfo.Role == UserRoles.OSATAdmin)
            {
                queryFromRequest.Osat = BaseController.CurrentUserInfo.BUName;
            }
            IList <LotView> lotViews = LotService.GetLotViews(queryFromRequest, orderBy, desc, pageIndex, pageSize, out recordCount);

            foreach (LotView lv in lotViews)
            {
                lv.HoldReason = lv.HoldReason.Replace("failed sublot:", "");
            }
            string s = JsonConvert.SerializeObject(new
            {
                currentPage = pageIndex,
                totalPages  = PagerUtility.GetPageCount(recordCount, pageSize),
                rows        = lotViews
            });

            base.Response.Write(s);
            return(null);
        }
Exemplo n.º 3
0
        public static IList <LotView> GetLotViews(LotQuery query, string orderBy, bool desc, int pageIndex, int pageSize, out int recordCount)
        {
            NotificationTypes notSpecified = NotificationTypes.NotSpecified;

            if (query.NewCommentOnly)
            {
                notSpecified = NotificationTypes.Comment;
            }
            if (query.WaitForConfirmOnly)
            {
                notSpecified = NotificationTypes.Confirm;
            }
            if (query.WaitForDisposeOnly)
            {
                notSpecified = NotificationTypes.LotDispose;
            }
            if (query.WaitForOtherBinDispose)
            {
                notSpecified = NotificationTypes.OtherBinDispose;
            }
            if (query.EqaLotsOnly)
            {
                notSpecified = NotificationTypes.EQANotification;
            }
            IList <LotView> lotviews = null;

            switch (notSpecified)
            {
            case NotificationTypes.Comment:
            case NotificationTypes.LotDispose:
            case NotificationTypes.Confirm:
            case NotificationTypes.OtherBinDispose:
            case NotificationTypes.EQANotification:
                lotviews = GetLotViewsFromNotifications(query, notSpecified, true, orderBy, desc, pageIndex, pageSize, out recordCount);
                return(ReadUnReadMessageCountByCurrentUser(query.CurrentUser, lotviews));

            case NotificationTypes.NotSpecified:
                lotviews = lotViewGateway.GetLotViewBy(query, orderBy, desc, pageIndex, pageSize, out recordCount);
                return(ReadUnReadMessageCountByCurrentUser(query.CurrentUser, lotviews));
            }
            lotviews    = null;
            recordCount = 0;
            return(lotviews);
        }
        public IList <NotificationswithLot> GetNotificationswithLotsBy(LotQuery query, NotificationTypes notificationType, bool unReadOnly, string orderBy, bool desc, int pageIndex, int pageSize, out int recordCount)
        {
            Conditions conditions = new Conditions();

            if (!StringHelper.isNullOrEmpty(query.CurrentUser))
            {
                conditions.ConditionExpressions.Add(new Condition("RecipientID", Operator.EqualTo, query.CurrentUser));
            }
            if (notificationType != NotificationTypes.NotSpecified)
            {
                conditions.ConditionExpressions.Add(new Condition("NotificationType", Operator.EqualTo, notificationType));
            }
            if (unReadOnly)
            {
                conditions.ConditionExpressions.Add(new Condition("Opened", Operator.EqualTo, false));
            }
            if (query != null)
            {
                if (query.AutoJudgeResult != AutoJudgeResult.Empty)
                {
                    conditions.ConditionExpressions.Add(new Condition("AutoJudgeResult", Operator.EqualTo, query.AutoJudgeResult));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin1))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin1", Operator.EqualTo, query.Bin1));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin2))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin2", Operator.EqualTo, query.Bin2));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin3))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin3", Operator.EqualTo, query.Bin3));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin4))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin4", Operator.EqualTo, query.Bin4));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin5))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin5", Operator.EqualTo, query.Bin5));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin6))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin6", Operator.EqualTo, query.Bin6));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin7))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin7", Operator.EqualTo, query.Bin7));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin8))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin8", Operator.EqualTo, query.Bin8));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin9))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin9", Operator.EqualTo, query.Bin9));
                }
                if (!StringHelper.isNullOrEmpty(query.Bin10))
                {
                    conditions.ConditionExpressions.Add(new Condition("Bin10", Operator.EqualTo, query.Bin10));
                }
                if (!StringHelper.isNullOrEmpty(query.CompletionDate))
                {
                    string[] dateArray = query.CompletionDate.Split('-');
                    conditions.ConditionExpressions.Add(new Condition("CompletionDate", Operator.Between, dateArray[0], dateArray[1] + " 23:59:59"));
                }
                if (!StringHelper.isNullOrEmpty(query.Damage))
                {
                    conditions.ConditionExpressions.Add(new Condition("Damage", Operator.EqualTo, query.Damage));
                }
                if (!StringHelper.isNullOrEmpty(query.DeviceCode))
                {
                    conditions.ConditionExpressions.Add(new Condition("DeviceCode", Operator.Like, query.DeviceCode));
                }
                if (!StringHelper.isNullOrEmpty(query.DeviceName))
                {
                    conditions.ConditionExpressions.Add(new Condition("DeviceName", Operator.Like, query.DeviceName));
                }
                if (!StringHelper.isNullOrEmpty(query.Die1CP))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die1CP", Operator.Like, query.Die1CP));
                }
                if (!StringHelper.isNullOrEmpty(query.Die1LotNo))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die1LotNO", Operator.Like, query.Die1LotNo));
                }
                if (!StringHelper.isNullOrEmpty(query.Die2CP))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die2CP", Operator.Like, query.Die2CP));
                }
                if (!StringHelper.isNullOrEmpty(query.Die2LotNo))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die2LotNO", Operator.Like, query.Die2LotNo));
                }
                if (!StringHelper.isNullOrEmpty(query.Die3CP))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die3CP", Operator.Like, query.Die3CP));
                }
                if (!StringHelper.isNullOrEmpty(query.Die3LotNo))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die3LotNO", Operator.Like, query.Die3LotNo));
                }
                if (!StringHelper.isNullOrEmpty(query.Die4CP))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die4CP", Operator.Like, query.Die4CP));
                }
                if (!StringHelper.isNullOrEmpty(query.Die4LotNo))
                {
                    conditions.ConditionExpressions.Add(new Condition("Die4LotNO", Operator.Like, query.Die4LotNo));
                }
                if (!StringHelper.isNullOrEmpty(query.HoldReason))
                {
                    conditions.ConditionExpressions.Add(new Condition("HoldReason", Operator.Like, query.HoldReason));
                }
                if (!StringHelper.isNullOrEmpty(query.LBNO))
                {
                    conditions.ConditionExpressions.Add(new Condition("LBNO", Operator.Like, query.LBNO));
                }
                if (!StringHelper.isNullOrEmpty(query.Loss))
                {
                    conditions.ConditionExpressions.Add(new Condition("Loss", Operator.EqualTo, query.Loss));
                }
                if (!StringHelper.isNullOrEmpty(query.LotNO))
                {
                    conditions.ConditionExpressions.Add(new Condition("LotNO", Operator.Like, query.LotNO));
                }
                if (!StringHelper.isNullOrEmpty(query.LotType))
                {
                    conditions.ConditionExpressions.Add(new Condition("LotType", Operator.EqualTo, query.LotType));
                }
                if (query.ManualHold != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("ManualHold", Operator.EqualTo, query.ManualHold));
                }
                if (query.OtherBinDispose != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("OtherBinDispose", Operator.EqualTo, query.OtherBinDispose));
                }
                if (!StringHelper.isNullOrEmpty(query.Osat))
                {
                    conditions.ConditionExpressions.Add(new Condition("VendorName", Operator.Like, query.Osat));
                }
                if (!StringHelper.isNullOrEmpty(query.OsRate))
                {
                    conditions.ConditionExpressions.Add(new Condition("RoundOSRate", Operator.Like, query.OsRate));
                }
                if (query.PEDispose != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("PEDispose", Operator.EqualTo, query.PEDispose));
                }
                if (!StringHelper.isNullOrEmpty(query.Platform))
                {
                    conditions.ConditionExpressions.Add(new Condition("Platforms", Operator.Like, query.Platform));
                }
                if (query.QADispose != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("QADispose", Operator.EqualTo, query.QADispose));
                }
                if (query.QtyIn != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("QtyIn", Operator.EqualTo, query.QtyIn));
                }
                if (query.RetestTimes != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("RetestTimes", Operator.EqualTo, query.RetestTimes));
                }
                if (query.SPRDDecision != -1)
                {
                    conditions.ConditionExpressions.Add(new Condition("SPRDDecision", Operator.EqualTo, query.SPRDDecision));
                }
                if (!StringHelper.isNullOrEmpty(query.SubconLot))
                {
                    conditions.ConditionExpressions.Add(new Condition("SubconLot", Operator.Like, query.SubconLot));
                }
                if (!StringHelper.isNullOrEmpty(query.TesterID))
                {
                    conditions.ConditionExpressions.Add(new Condition("TesterID", Operator.Like, query.TesterID));
                }
                if (!StringHelper.isNullOrEmpty(query.TestProgram))
                {
                    conditions.ConditionExpressions.Add(new Condition("TestProgram", Operator.Like, query.TestProgram));
                }
                if (!StringHelper.isNullOrEmpty(query.Yield))
                {
                    conditions.ConditionExpressions.Add(new Condition("RoundYield", Operator.Like, query.Yield));
                }
                if (!StringHelper.isNullOrEmpty(query.Status))
                {
                    conditions.ConditionExpressions.Add(new Condition("Status", Operator.EqualTo, query.Status.Trim()));
                }
                if (!StringHelper.isNullOrEmpty(query.Stage))
                {
                    conditions.ConditionExpressions.Add(new Condition("Stage", Operator.Like, query.Stage));
                }
            }
            conditions.ConditionExpressions.Add(new Condition("RecordType", Operator.EqualTo, "Record"));
            conditions.Connector = Connector.AND;
            OrderExpression orderExpression = null;

            if (!StringHelper.isNullOrEmpty(orderBy))
            {
                orderExpression = new OrderExpression(orderBy, desc);
            }
            return(this.dbGateway.getRecords(pageIndex, pageSize, conditions, orderExpression, null, Connector.AND, out recordCount));
        }
Exemplo n.º 5
0
        public static LotQuery GetQueryFromRequest(HttpRequestBase Request, string userID)
        {
            LotQuery query = new LotQuery {
                CurrentUser     = userID,
                AutoJudgeResult = StringHelper.isNullOrEmpty(Request.QueryString["cmbAutoJudgeResult"]) ? AutoJudgeResult.Empty : ((AutoJudgeResult)Enum.Parse(typeof(AutoJudgeResult), Request.QueryString["cmbAutoJudgeResult"])),
                Bin1            = Request.QueryString["txtbin1"],
                Bin2            = Request.QueryString["txtbin2"],
                Bin3            = Request.QueryString["txtbin3"],
                Bin4            = Request.QueryString["txtbin4"],
                Bin5            = Request.QueryString["txtbin5"],
                Bin6            = Request.QueryString["txtbin6"],
                Bin7            = Request.QueryString["txtbin7"],
                Bin8            = Request.QueryString["txtbin8"],
                Bin9            = Request.QueryString["txtbin9"],
                Bin10           = Request.QueryString["txtbin10"],
                CompletionDate  = Request.QueryString["txtCompletionDate"],
                Damage          = Request.QueryString["txtDamage"],
                DeviceCode      = Request.QueryString["txtDeviceCode"],
                DeviceName      = Request.QueryString["txtDeviceName"],
                Die1CP          = Request.QueryString["txtDie1CP"],
                Die1LotNo       = Request.QueryString["txtDie1LotNo"],
                Die2CP          = Request.QueryString["txtDie2CP"],
                Die2LotNo       = Request.QueryString["txtDie2LotNo"],
                Die3CP          = Request.QueryString["txtDie3CP"],
                Die3LotNo       = Request.QueryString["txtDie3LotNo"],
                Die4CP          = Request.QueryString["txtDie4CP"],
                Die4LotNo       = Request.QueryString["txtDie4LotNo"],
                HoldReason      = Request.QueryString["HoldReason"],
                LBNO            = Request.QueryString["txtLBNo"],
                Loss            = Request.QueryString["txtLoss"],
                LotNO           = Request.QueryString["txtLotNo"],
                Status          = Request.QueryString["txtStatus"],
                LotType         = Request.QueryString["cmbLotType"],
                ManualHold      = StringHelper.isNullOrEmpty(Request.QueryString["cmbManualHold"]) ? -1 : Convert.ToInt32(Request.QueryString["cmbManualHold"]),
                Osat            = Request.QueryString["txtOSAT"],
                OsRate          = Request.QueryString["txtOSRate"],
                PEDispose       = StringHelper.isNullOrEmpty(Request.QueryString["cmbPEDispose"]) ? -1 : Convert.ToInt32(Request.QueryString["cmbPEDispose"]),
                Platform        = Request.QueryString["txtPlatform"],
                QADispose       = StringHelper.isNullOrEmpty(Request.QueryString["cmbQADispose"]) ? -1 : Convert.ToInt32(Request.QueryString["cmbQADispose"]),
                QtyIn           = StringHelper.isNullOrEmpty(Request.QueryString["txtQtyIn"]) ? -1 : Convert.ToInt32(Request.QueryString["txtQtyIn"]),
                RetestTimes     = StringHelper.isNullOrEmpty(Request.QueryString["txtRetestTimes"]) ? -1 : Convert.ToInt32(Request.QueryString["txtRetestTimes"]),
                SPRDDecision    = StringHelper.isNullOrEmpty(Request.QueryString["cmbSPRDDecision"]) ? -1 : Convert.ToInt32(Request.QueryString["cmbSPRDDecision"]),
                SubconLot       = Request.QueryString["txtSubconLot"],
                TesterID        = Request.QueryString["txtTesterID"],
                TestProgram     = Request.QueryString["txtTestProgram"],
                Stage           = Request.QueryString["txtStage"],
                Yield           = Request.QueryString["txtYield"],
                OtherBinDispose = StringHelper.isNullOrEmpty(Request.QueryString["cmbOtherBinDispose"]) ? -1 : Convert.ToInt32(Request.QueryString["cmbOtherBinDispose"])
            };
            string s   = Request.QueryString["action"];
            uint   num = ComputeStringHash(s);

            if (num <= 0x3cfd7330)
            {
                switch (num)
                {
                case 0x302c992:
                    if (s == "NewComment")
                    {
                        query.NewCommentOnly = true;
                        return(query);
                    }
                    return(query);

                case 0x289beb49:
                    if (s == "LotDispose")
                    {
                        query.WaitForDisposeOnly = true;
                        return(query);
                    }
                    return(query);

                case 0x3cfd7330:
                    if (s == "WaitConfirm")
                    {
                        query.WaitForConfirmOnly = true;
                        return(query);
                    }
                    return(query);
                }
                return(query);
            }
            if (num <= 0x9e89e783)
            {
                switch (num)
                {
                case 0x811c9dc5:
                    if ((s != null) && (s.Length != 0))
                    {
                    }
                    return(query);

                case 0x9e89e783:
                    if (!(s == "Query"))
                    {
                    }
                    return(query);
                }
                return(query);
            }
            switch (num)
            {
            case 0xc837a832:
                if (s == "EQALots")
                {
                    query.EqaLotsOnly = true;
                    return(query);
                }
                return(query);

            case 0xe9f83059:
                if (s == "WaitForOtherBinDispose")
                {
                    query.WaitForOtherBinDispose = true;
                    return(query);
                }
                return(query);
            }
            return(query);
        }