Example #1
0
        public List <vwRequestNodeStatus> GetRequestsByNodeId(int nodeid, out string errorStr)
        {
            errorStr = "";
            PardisDBEntities db        = new PardisDBEntities();
            List <int>       lstStatus = new List <int>();

            lstStatus.Add(0);
            lstStatus.Add(1);
            IEnumerable <vwRequestNodeStatus> query = db.vwRequestNodeStatus.Where(w => w.ToNodeID == nodeid);

            query = query.Where(q => lstStatus.Contains(q.StatusId));
            query = query.Where(q => q.LogicalDelete == false);
            try
            {
                List <vwRequestNodeStatus> lstrequests = query.ToList();
                if (lstrequests != null)
                {
                    lstrequests = lstrequests.GroupBy(q => q.RequestID).Select(grp => grp.First()).ToList();
                }
                return(lstrequests);
            }
            catch (Exception ex)
            {
                errorStr = "در بدست آوردن درخواستهای نود جاری خطایی رخ داده است !";
                return(null);
            }
        }
Example #2
0
        public bool CreateSupplyEquipmentRequest(SupplyEquipments objSupplyEquipment, short RequestTypeId, short WorkFlowID, int FromNodeID, short StatusCode, string FromUserAccount,
                                                 string ToUserAccount, int GroupID, string Description, string ClientIP, bool isTransfer, out string error, out long requestId)
        {
            error     = "";
            requestId = 0;
            WorkFlowController workCtrl = new WorkFlowController();

            if (workCtrl.CreateRequestActivity(RequestTypeId, WorkFlowID, FromNodeID, StatusCode, FromUserAccount,
                                               ToUserAccount, GroupID, Description, ClientIP, isTransfer, out error, out requestId) && requestId > 0)
            {
                try
                {
                    PardisDBEntities db = new PardisDBEntities();
                    objSupplyEquipment.RequestID = requestId;
                    db.SupplyEquipments.Add(objSupplyEquipment);
                    int result = db.SaveChanges();
                    return(result > 0 ? true : false);
                }
                catch
                {
                    error = "در ثبت اطلاعات خطایی رخ داده است !";
                    return(false);
                }
            }
            else
            {
                error = string.IsNullOrEmpty(error) ? "در ایجاد درخواست خطایی رخ داده است !" : error;
                return(false);
            }
        }
Example #3
0
        public Requests GeneratePureRequest(string UserAccount, short RequestType)
        {
            Requests objReq = new Requests();

            objReq.RegDate       = DateTime.Now;
            objReq.UserAccount   = UserAccount;
            objReq.RequestTypeID = RequestType;

            try
            {
                PardisDBEntities db = new PardisDBEntities();
                db.Requests.Add(objReq);
                int rs = db.SaveChanges();
                if (rs > 0)
                {
                    return(objReq);
                }
                else
                {
                    return(null);
                }
            }
            catch
            {
                return(null);
            }
        }
Example #4
0
        public int GetToNodeIdtoTransferRequestByStatus(short workflow, int fromNodeId, short statusCode)
        {
            try
            {
                PardisDBEntities db = new PardisDBEntities();
                switch (statusCode)
                {
                case (int)Enums.StatusCodeTypes.Confirm:
                    WFAssignments objA = db.WFAssignments.Where(q => q.WorkFlowID == workflow && q.FromNodeID == fromNodeId && q.DoConfirm == true).FirstOrDefault();
                    if (objA == null)
                    {
                        return(0);
                    }
                    else
                    {
                        return(objA.ToNodeID);
                    }

                case (int)Enums.StatusCodeTypes.Reject:
                    WFAssignments objA2 = db.WFAssignments.Where(q => q.WorkFlowID == workflow && q.FromNodeID == fromNodeId && q.DoReject == true).FirstOrDefault();
                    if (objA2 == null)
                    {
                        return(0);
                    }
                    else
                    {
                        return(objA2.ToNodeID);
                    }

                case (int)Enums.StatusCodeTypes.Return:
                    WFAssignments objA3 = db.WFAssignments.Where(q => q.WorkFlowID == workflow && q.FromNodeID == fromNodeId && q.DoReturn == true).FirstOrDefault();
                    if (objA3 == null)
                    {
                        return(0);
                    }
                    else
                    {
                        return(objA3.ToNodeID);
                    }

                default:
                    return(0);
                }
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Example #5
0
        public bool IsExistsWay(short workFlow, int fromNodeId, int toNodeId, short statusCode)
        {
            PardisDBEntities db = new PardisDBEntities();

            try
            {
                WFAssignments objAssignment = db.WFAssignments.Where(w => w.WorkFlowID == workFlow && w.FromNodeID == fromNodeId && w.ToNodeID == toNodeId).FirstOrDefault();
                if (objAssignment != null)
                {
                    bool flag = true;
                    switch (statusCode)
                    {
                    case 2:
                        if (!objAssignment.DoConfirm)
                        {
                            return(false);
                        }
                        return(true);

                    case 3:
                        if (!objAssignment.DoReject)
                        {
                            return(false);
                        }
                        return(true);

                    case 4:
                        if (!objAssignment.DoReturn)
                        {
                            return(false);
                        }
                        return(true);

                    default:
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }
Example #6
0
 public bool isFirstWorkFlowNode(int nodeId, out string errorStr)
 {
     errorStr = "";
     try
     {
         PardisDBEntities db           = new PardisDBEntities();
         Workflows        objWorkflows = db.Workflows.Where(q => q.StartNodeID == nodeId).FirstOrDefault();
         if (objWorkflows != null)
         {
             return(true);
         }
         return(false);
     }
     catch
     {
         errorStr = "سیستم قادر به بدست آوردن وضعیت گره جاری نمی باشد !";
         return(false);
     }
 }
Example #7
0
 public Menus GetMenuInfoByID(int id, out string error)
 {
     error = "";
     try
     {
         PardisDBEntities db      = new PardisDBEntities();
         Menus            objMenu = db.Menus.Where(w => w.ID == id).SingleOrDefault();
         if (objMenu != null)
         {
             return(objMenu);
         }
         return(null);
     }
     catch
     {
         error = "در بدست آوردن اطلاعات منو خطایی رخ داده است !";
         return(null);
     }
 }
Example #8
0
        public int GetWorkFlowTypeByNodeId(int nodeId, out string errorStr)
        {
            try
            {
                errorStr = "";
                PardisDBEntities db           = new PardisDBEntities();
                WFAssignments    objAssgnment = db.WFAssignments.Where(w => w.FromNodeID == nodeId || w.ToNodeID == nodeId).FirstOrDefault();

                if (objAssgnment != null)
                {
                    return(objAssgnment.WorkFlowID);
                }

                return(0);
            }
            catch
            {
                errorStr = "سیستم قادر به بدست آوردن نوع گردش کار نمی باشد !";
                return(0);
            }
        }
Example #9
0
        public Boolean CreateRequestActivity(short RequestTypeId, short WorkFlowID, int FromNodeID, short StatusCode, string FromUserAccount,
                                             string ToUserAccount, int GroupID, string Description, string ClientIP, bool isTransfer, out string error, out long requestId)
        {
            error     = "";
            requestId = 0;
            PardisDBEntities db = new PardisDBEntities();
            int StartNode       = 0;

            #region 'تعیین نود شروع'
            try
            {
                Workflows objWorkFlow = db.Workflows.Where(q => q.ID == WorkFlowID).SingleOrDefault();
                if (objWorkFlow == null)
                {
                    error = "گردش کار معتبر نمی باشد !";
                    return(false);
                }
                else if (objWorkFlow.StartNodeID == 0)
                {
                    error = "نود شروع گردش کار جاری مشخص نشده است !";
                    return(false);
                }
                else if (objWorkFlow.StartNodeID != FromNodeID)
                {
                    error = "نود شروع گردش کار با نود اقدام کننده یکی نمی باشد !";
                    return(false);
                }
                StartNode = objWorkFlow.StartNodeID;
            }
            catch (Exception ex)
            {
                error = "در بدست آوردن نود شروع گردش کار جاری خطایی رخ داده است !";
                return(false);
            }
            #endregion
            Requests objRequest = GeneratePureRequest(FromUserAccount, RequestTypeId);
            if (objRequest == null)
            {
                error = "در ایجاد درخواست خطایی رخ داده است !";
                return(false);
            }

            WFActivity objSourceActivity = new WFActivity();
            objSourceActivity.WorkFlowID          = WorkFlowID;
            objSourceActivity.RequestID           = objRequest.ID;
            objSourceActivity.PreActivityID       = 0;
            objSourceActivity.FromNodeID          = StartNode;
            objSourceActivity.ToNodeID            = FromNodeID;
            objSourceActivity.StatusId            = (short)Enums.StatusCodeTypes.Waiting;
            objSourceActivity.GroupID             = GroupID;
            objSourceActivity.LogicalDelete       = false;
            objSourceActivity.ToUserAccount       = "";
            objSourceActivity.UserAccount         = FromUserAccount;
            objSourceActivity.ActivityDate        = System.DateTime.Now;
            objSourceActivity.ActivityDescription = Description;

            try
            {
                db.WFActivity.Add(objSourceActivity);
                db.SaveChanges();
                if (isTransfer)
                {
                    #region 'Transfer'
                    int toNodeId = GetToNodeIdtoTransferRequestByStatus(WorkFlowID, FromNodeID, StatusCode);
                    if (toNodeId > 0)
                    {
                        try
                        {
                            #region
                            WFActivity objConfirmActivity = new WFActivity();
                            objConfirmActivity.WorkFlowID          = WorkFlowID;
                            objConfirmActivity.RequestID           = objRequest.ID;
                            objConfirmActivity.PreActivityID       = objSourceActivity.ID;
                            objConfirmActivity.FromNodeID          = objSourceActivity.FromNodeID;
                            objConfirmActivity.ToNodeID            = objSourceActivity.ToNodeID;
                            objConfirmActivity.StatusId            = (short)Enums.StatusCodeTypes.Confirm;
                            objConfirmActivity.GroupID             = GroupID;
                            objConfirmActivity.LogicalDelete       = false;
                            objConfirmActivity.ToUserAccount       = "";
                            objConfirmActivity.UserAccount         = FromUserAccount;
                            objConfirmActivity.ActivityDate        = System.DateTime.Now;
                            objConfirmActivity.ActivityDescription = Description;
                            db.WFActivity.Add(objConfirmActivity);
                            db.SaveChanges();
                            WFActivity objNextActivity = new WFActivity();
                            objNextActivity.WorkFlowID          = WorkFlowID;
                            objNextActivity.RequestID           = objRequest.ID;
                            objNextActivity.PreActivityID       = objConfirmActivity.ID;
                            objNextActivity.FromNodeID          = objSourceActivity.ToNodeID;
                            objNextActivity.ToNodeID            = toNodeId;
                            objNextActivity.StatusId            = (short)Enums.StatusCodeTypes.Waiting;
                            objNextActivity.GroupID             = GroupID;
                            objNextActivity.LogicalDelete       = false;
                            objNextActivity.ToUserAccount       = ToUserAccount;
                            objNextActivity.UserAccount         = FromUserAccount;
                            objNextActivity.ActivityDate        = System.DateTime.Now;
                            objNextActivity.ActivityDescription = Description;
                            db.WFActivity.Add(objNextActivity);
                            db.SaveChanges();
                            #endregion
                            return(true);
                        }
                        catch
                        {
                            error = "در ارسال درخواست خطایی رخ داده است !";
                            return(false);
                        }
                    }
                    else
                    {
                        error = "از گره جاری مسیری جهت ارسال درخواست وجود ندارد ! ";
                        return(false);
                    }
                    #endregion
                }
                requestId = objRequest.ID;
                return(true);
            }
            catch (Exception ex) {
                error = "در ثبت درخواست خطایی رخ داده است !";
                return(false);
            }
        }