public ProcInst GetProcInst(int loginId)
 {
     ProcInst procInst = new ProcInst();
     using (var edm = new DianPingK2ServerLogContext())
     {
         procInst = edm.ProcInst.AsQueryable()
             .Where(_ => _.ID == loginId).FirstOrDefault();
     }
     return procInst;
 }
 public List<ActInstDest> queryByPorcInstIdAndActInstId(int procInstId, int actInstId)
 {
     List<ActInstDest> list = new List<ActInstDest>();
     using (var edm = new DianPingK2ServerLogContext())
     {
         list = edm.ActInstDest.AsQueryable()
             .Where(_ => _.ProcInstID == procInstId)
             .Where(_ => _.ActInstID == actInstId)
             .Where(_ => _.Status == 0).ToList(); ;
     }
     return list;
 }
 public List<ActInst> GetProcessStatusByFolio(string folio)
 {
     List<ActInst> result = new List<ActInst>();
     //var transactionOptions = new System.Transactions.TransactionOptions();
     //transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
     //using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
     //{
         var edm = new DianPingK2ServerLogContext();
         result = edm.ActInst.Include("ProcInst").Include("Act")
             .Where(_ => _.Status == 2)
             .Where(_ => _.ProcInst.Folio == folio)
             .Where(_ => _.Act.Type == 1)
             .ToList();
     //    transactionScope.Complete();
     //}
     return result;
 }
Exemple #4
0
        public List <ActInst> GetProcessStatusByProcInstId(int procInstId)
        {
            List <ActInst> result = new List <ActInst>();
            //var transactionOptions = new System.Transactions.TransactionOptions();
            //transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
            //using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
            //{
            var edm = new DianPing.WorkFlow.Repositories.Interface.DianPingK2ServerLog.Entity.DianPingK2ServerLogContext();

            result = edm.ActInst.Include("ProcInst").Include("Act")
                     .Where(_ => _.Status == 2)
                     .Where(_ => _.ProcInst.ID == procInstId)
                     .Where(_ => _.Act.Type == 1)
                     .ToList();
            //    transactionScope.Complete();
            //}
            //----------------------
            //var edm = new DianPing.WorkFlow.Repositories.Interface.DianPingK2ServerLog.Entity.DianPingK2ServerLogContext();
            //var result =
            //     (from _ in edm.ProcInst
            //      from ai in _.ActInst.Where(a => a.Status == 2 && a.Act.Type == 1).DefaultIfEmpty()
            //      from ac in edm.Act
            //      //join ac in edm.Act on ai.Act.ID equals ac.ID into acgroup
            //      where _.ID == procInstId

            //      select new
            //      {
            //          ProcInstId = _.ID,
            //          Folio = _.Folio,
            //          ActInst = ai,
            //          WorkList = _.Worklist,
            //          Status = _.Status
            //      }
            //          ).ToList();

            //List<K2Status> list = new List<K2Status>();
            //foreach (var item in result)
            //{
            //    K2Status status = new K2Status()
            //    {
            //        Folio = item.Folio,
            //        ProcInstId = item.ProcInstId,
            //        LoginIds = item.WorkList.Where(_ => _.Status == 0).Select(t => Convert.ToInt32(t.Destination.Replace("K2SQL:", ""))).ToList(),
            //        Activity = item.Status.ToString()
            //    };
            //    if (item.ActInst != null)
            //    {
            //        status.Activity = item.ActInst.Act.Name;
            //        status.StartDate = item.ActInst.StartDate;
            //    }
            //    list.Add(status);
            //}
            //----------------------
            //    foreach (var item in result.GroupBy(_ => _.ActName))
            //    {
            //           list.Add(new K2Status
            //           {
            //                Activity = item.Key,
            //                ProcInstId = item.Select(_ => _.Folio).FirstOrDefault(),
            //                  Folio = item.Select(_=>_.Folio).FirstOrDefault(),
            //                   StartDate = item.Select(_=>_.StartDate).FirstOrDefault(),
            //LoginIds = item.Select

            //            ID = item.Key,
            //            ActInst = item.Select(_=> new ActInst{ ID = _.Act}).ToList(),

            //           });
            //       }

            //var aa =  edm.ProcInst.Include(_ => _.ActInst).Include(_ => _.ActInst.Select(y => y.Act))
            //.Where(_ => _.ID == procInstId)
            //.Where(_ => _.ActInst.Any(t => t.Act.Type == 1))

            //.ToList();
            //edm.Database.SqlQuery(K2Status," SELECT  ","")
            return(result);
        }
        //public IList<Models.Worklist> GetWorkList(string destination, DateTime startDate, DateTime endDate)
        //{
        //    using (var edm = new Models.DianPingK2ServerLogContext())
        //    {
        //        //return edm.Worklist.Select(_ =>
        //        //    new Models.Worklist
        //        //    {
        //        //        DestType = _.DestType,
        //        //        ProcInst = new Models.ProcInst
        //        //        {
        //        //            Folio = _.ProcInst.Folio
        //        //        }
        //        //    }).Where(_ => _.Destination == destination && _.ProcInst.StartDate > startDate).ToList();
        //        return edm.Worklist.Include("ProcInst")
        //            .Where(_ => _.Destination == destination && _.ProcInst.StartDate > startDate).ToList();
        //    }
        //}
        public QueryListResultBase<Worklist> GetWorkList(QueryCriteriaBase<QueryWorkList> queryPara)
        {
            var result = new QueryListResultBase<Worklist>();

            var transactionOptions = new System.Transactions.TransactionOptions();
            transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;

            var edm = new DianPingK2ServerLogContext();
            //edm.Database.ExecuteSqlCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

            var query = edm.Worklist.Include("ProcInst").AsQueryable().Where(_ => _.Status == 0);

            if (queryPara != null)
            {
                var criteria = queryPara.QueryCriteria;
                if (criteria != null)
                {
                    //if (criteria.ProcessFullName != null && criteria.ProcessFullName.Count > 0)
                    //{
                    //    query = query.Where(_ => criteria.ProcessFullName.Contains(_.ProcInst.proc.ProcSet.FullName));
                    //}
                    if (criteria.ProcessCodes != null && criteria.ProcessCodes.Count > 0)
                    {
                        query = query.Where(_ => criteria.ProcessCodes.Contains(_.ProcInst.proc.ProcSet.Descr));
                    }
                    if (criteria.LoginIds != null && criteria.LoginIds.Count > 0)
                    {
                        IList<string> loginIdsStr = criteria.LoginIds.Select(_ => string.Format("K2SQL:{0}", _)).ToList();
                        query = query.Where(_ => loginIdsStr.Contains(_.Destination));
                    }
                    if (criteria.OriginatorLoginIds != null && criteria.OriginatorLoginIds.Count > 0)
                    {
                        IList<string> loginIdsStr = criteria.OriginatorLoginIds.Select(_ => string.Format("K2SQL:{0}", _)).ToList();
                        query = query.Where(_ => loginIdsStr.Contains(_.ProcInst.Originator));
                    }
                    if (criteria.ProcInstIds != null && criteria.ProcInstIds.Count > 0)
                    {
                        query = query.Where(_ => criteria.ProcInstIds.Contains(_.ProcInst.ID));
                    }
                    if (!string.IsNullOrEmpty(criteria.Folio))
                    {
                        query = query.Where(_ => _.ProcInst.Folio.StartsWith(criteria.Folio));
                    }
                    if (criteria.TaskStartDate != null)
                    {
                        if (criteria.TaskStartDate.DateFrom.HasValue)
                        {
                            query = query.Where(_ => _.StartDate >= criteria.TaskStartDate.DateFrom.Value);
                        }
                        if (criteria.TaskStartDate.DateTo.HasValue)
                        {
                            query = query.Where(_ => _.StartDate < criteria.TaskStartDate.DateTo.Value);
                        }
                    }
                    if (criteria.ProcessStartDate != null)
                    {
                        if (criteria.ProcessStartDate.DateFrom.HasValue)
                        {
                            query = query.Where(_ => _.ProcInst.StartDate >= criteria.ProcessStartDate.DateFrom.Value);
                        }
                        if (criteria.ProcessStartDate.DateTo.HasValue)
                        {
                            query = query.Where(_ => _.ProcInst.StartDate < criteria.ProcessStartDate.DateTo.Value);
                        }
                    }
                    if (queryPara.PagingInfo != null)
                    {
                        using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
                        {
                            queryPara.PagingInfo.ItemCount = query.Count();
                            transactionScope.Complete();
                        }
                        if (queryPara.PagingInfo.SortField != null)
                        {
                            switch (queryPara.PagingInfo.SortField.ToLower())
                            {
                                case "folio":
                                    if (queryPara.PagingInfo.SortOrder == Common.Enum.SortOrder.Descending)
                                    {
                                        query = query.OrderByDescending(_ => _.ProcInst.Folio);
                                    }
                                    else
                                    {
                                        query = query.OrderBy(_ => _.ProcInst.Folio);
                                    }
                                    break;
                                case "worklisttime":
                                    if (queryPara.PagingInfo.SortOrder == Common.Enum.SortOrder.Descending)
                                    {
                                        query = query.OrderByDescending(_ => _.StartDate);
                                    }
                                    else
                                    {
                                        query = query.OrderBy(_ => _.StartDate);
                                    }
                                    break;
                                case "procstarttime":
                                    if (queryPara.PagingInfo.SortOrder == Common.Enum.SortOrder.Descending)
                                    {
                                        query = query.OrderByDescending(_ => _.ProcInst.StartDate);
                                    }
                                    else
                                    {
                                        query = query.OrderBy(_ => _.ProcInst.StartDate);
                                    }
                                    break;
                                default:
                                    query = query.OrderByDescending(_ => _.StartDate);
                                    break;
                            }
                        }
                        else
                        {
                            query = query.OrderByDescending(_ => _.StartDate);
                        }
                        query = query
                            .Skip(queryPara.PagingInfo.PageIndex == 0 ? 0 : (queryPara.PagingInfo.PageIndex - 1) * queryPara.PagingInfo.PageSize)
                            .Take(queryPara.PagingInfo.PageSize);
                    }
                }
                result.PagingInfo = queryPara.PagingInfo;
            }
            //result.PagingInfo = null;

            using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
            {
                result.ResultList = query.ToList();
                transactionScope.Complete();
            }
            return result;
        }
        public List<ActInst> GetProcessStatusByProcInstId(int procInstId)
        {
            List<ActInst> result = new List<ActInst>();
            //var transactionOptions = new System.Transactions.TransactionOptions();
            //transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
            //using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
            //{
            var edm = new DianPing.WorkFlow.Repositories.Interface.DianPingK2ServerLog.Entity.DianPingK2ServerLogContext();
            result = edm.ActInst.Include("ProcInst").Include("Act")
                .Where(_ => _.Status == 2)
                .Where(_ => _.ProcInst.ID == procInstId)
                .Where(_ => _.Act.Type == 1)
                .ToList();
            //    transactionScope.Complete();
            //}
            //----------------------
                //var edm = new DianPing.WorkFlow.Repositories.Interface.DianPingK2ServerLog.Entity.DianPingK2ServerLogContext();
                //var result =
                //     (from _ in edm.ProcInst
                //      from ai in _.ActInst.Where(a => a.Status == 2 && a.Act.Type == 1).DefaultIfEmpty()
                //      from ac in edm.Act
                //      //join ac in edm.Act on ai.Act.ID equals ac.ID into acgroup
                //      where _.ID == procInstId

                //      select new
                //      {
                //          ProcInstId = _.ID,
                //          Folio = _.Folio,
                //          ActInst = ai,
                //          WorkList = _.Worklist,
                //          Status = _.Status
                //      }
                //          ).ToList();

                //List<K2Status> list = new List<K2Status>();
                //foreach (var item in result)
                //{
                //    K2Status status = new K2Status()
                //    {
                //        Folio = item.Folio,
                //        ProcInstId = item.ProcInstId,
                //        LoginIds = item.WorkList.Where(_ => _.Status == 0).Select(t => Convert.ToInt32(t.Destination.Replace("K2SQL:", ""))).ToList(),
                //        Activity = item.Status.ToString()
                //    };
                //    if (item.ActInst != null)
                //    {
                //        status.Activity = item.ActInst.Act.Name;
                //        status.StartDate = item.ActInst.StartDate;
                //    }
                //    list.Add(status);
                //}
            //----------------------
               //    foreach (var item in result.GroupBy(_ => _.ActName))
               //    {
               //           list.Add(new K2Status
               //           {
               //                Activity = item.Key,
               //                ProcInstId = item.Select(_ => _.Folio).FirstOrDefault(),
               //                  Folio = item.Select(_=>_.Folio).FirstOrDefault(),
               //                   StartDate = item.Select(_=>_.StartDate).FirstOrDefault(),
               //LoginIds = item.Select

               //            ID = item.Key,
               //            ActInst = item.Select(_=> new ActInst{ ID = _.Act}).ToList(),

               //           });
               //       }

                //var aa =  edm.ProcInst.Include(_ => _.ActInst).Include(_ => _.ActInst.Select(y => y.Act))
                //.Where(_ => _.ID == procInstId)
                //.Where(_ => _.ActInst.Any(t => t.Act.Type == 1))

                //.ToList();
            //edm.Database.SqlQuery(K2Status," SELECT  ","")
            return result;
        }
 public ProcInst GetProcInstById(int Id)
 {
     var edm = new DianPingK2ServerLogContext();
     return edm.ProcInst.Where(_ => _.ID == Id).FirstOrDefault();
 }
 public ProcInst GetProcInstByFolio(string Folio)
 {
     var edm = new DianPingK2ServerLogContext();
     return edm.ProcInst.Where(_ => _.Folio == Folio).FirstOrDefault<ProcInst>();
 }