Пример #1
0
        public ActionResult Edit(int id)
        {
            ViewBag.Mark = "Activity";
            ActivityDao aDao = new ActivityDao();

            return(View(aDao.GetById(id)));
        }
Пример #2
0
        public ActionResult DeletePicture(int id)
        {
            try
            {
                ActivityDao aDao = new ActivityDao();
                Activity    a    = aDao.GetById(id);

                if (a.SmallImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + a.SmallImageName));
                }
                if (a.BigImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + a.BigImageName));
                }

                a.SmallImageName = null;
                a.BigImageName   = null;

                TempData["succes"] = "Obrázek aktivity odstraněn.";

                return(View("Edit", a));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Пример #3
0
        /// <summary>
        /// 删除该流程
        /// </summary>
        public void Remove()
        {
            ISqlMapper      mapper      = MapperHelper.GetMapper();
            WorkflowDao     wfdao       = new WorkflowDao(mapper);
            ActivityDao     activitydao = new ActivityDao(mapper);
            LinkDao         linkDao     = new LinkDao(mapper);
            ActivityAuthDao authdao     = new ActivityAuthDao(mapper);
            ApprovalDao     approvalDao = new ApprovalDao(mapper);
            TaskDao         taskdao     = new TaskDao(mapper);
            string          id          = this.value.ID;
            var             activities  = activitydao.Query(new ActivityQueryForm {
                WorkflowID = id
            });

            taskdao.Delete(new TaskQueryForm {
                WorkflowID = id
            });
            wfdao.Delete(new WorkflowQueryForm {
                ID = id
            });
            activitydao.Delete(new ActivityQueryForm {
                WorkflowID = id
            });
            linkDao.Delete(new LinkQueryForm {
                WorkflowID = id
            });
            approvalDao.Delete(new ApprovalQueryForm {
                WorkflowID = id
            });
            authdao.Delete(new ActivityAuthQueryForm {
                WorkflowID = id
            });
        }
Пример #4
0
        // GET: Activity
        public ActionResult Index()
        {
            ActivityDao      ad   = new ActivityDao();
            IList <Activity> acts = ad.GetAll();

            ViewBag.Mark = "Activity";
            return(View(acts));
        }
Пример #5
0
        /// <summary>
        /// 从数据库读取流程信息
        /// </summary>
        /// <param name="workflowids"></param>
        /// <returns></returns>
        public static List <WorkflowModel> Load(WorkflowQueryForm form)
        {
            List <WorkflowModel> models = new List <WorkflowModel>();

            if (form == null)
            {
                return(models);
            }

            #region query data
            ISqlMapper          mapper       = MapperHelper.GetMapper();
            WorkflowDao         wfdao        = new WorkflowDao(mapper);
            ActivityDao         activitydao  = new ActivityDao(mapper);
            LinkDao             linkDao      = new LinkDao(mapper);
            ActivityAuthDao     authdao      = new ActivityAuthDao(mapper);
            ApprovalDao         approvalDao  = new ApprovalDao(mapper);
            TaskDao             taskdao      = new TaskDao(mapper);
            List <Activity>     activityList = new List <Activity>();
            List <Link>         linkList     = new List <Link>();
            List <ActivityAuth> authList     = new List <ActivityAuth>();
            List <Approval>     approvalList = new List <Approval>();
            List <Task>         taskList     = new List <Task>();
            List <Workflow>     workflows    = new List <Workflow>();
            //先从缓存取值
            //var item = cache.GetItem(id);
            //if (item != null)
            //{
            //    model = item.Value as WorkflowModel;
            //    return model;
            //}
            workflows = wfdao.Query(form);
            var workflowids = (from wf in workflows select wf.ID).ToList();
            activityList = activitydao.Query(new ActivityQueryForm {
                WorkflowIDs = workflowids
            });
            linkList = linkDao.Query(new LinkQueryForm {
                WorkflowIDs = workflowids
            });
            approvalList = approvalDao.Query(new ApprovalQueryForm {
                WorkflowIDs = workflowids
            });
            authList = authdao.Query(new ActivityAuthQueryForm {
                WorkflowIDs = workflowids
            });
            taskList = taskdao.Query(new TaskQueryForm {
                WorkflowIDs = workflowids
            });
            #endregion

            foreach (var workflow in workflows)
            {
                var model = BuildWorkflow(workflow, activityList, linkList, authList, approvalList, taskList);
                models.Add(model);
            }
            return(models);
        }
Пример #6
0
        public void Process(ActivityModel activity, Approval approval, string processor, IWorkflowAuthority auth)
        {
            //已经处理过就不能再处理
            if (activity.Value.Status == (int)ActivityProcessStatus.Processed) return;
            //MonitorCache.GetInstance().PushMessage(new CacheMessage { Message = "activityid:" + activity.Value.ID + " next activity status:" + activity.Value.Status.ToString() }, CacheEnum.FormMonitor);
            ISqlMapper mapper = MapperHelper.GetMapper();
            ActivityDao activitydao = new ActivityDao(mapper);
            TaskDao taskdao = new TaskDao(mapper);
            //设置当前活动点状态
            activity.Value.Status = (int)ActivityProcessStatus.Processed;
            activity.Value.ProcessTime = DateTime.Now;
            activity.Value.LastUpdator = processor;
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity { Status = activity.Value.Status, ProcessTime = activity.Value.ProcessTime, LastUpdator = activity.Value.LastUpdator },
                ActivityQueryForm = new ActivityQueryForm { ID = activity.Value.ID }
            });
            var task = activity.GetUserProcessingTask(processor);
            if (task == null) throw new Exception("环节中没有你的任务,无法进行审批操作");
            task.Status = (int)TaskProcessStatus.Processed;
            task.ProcessTime = DateTime.Now;
            task.LastUpdator = processor;
            //处理任务
            taskdao.Update(new TaskUpdateForm
            {
                Entity = new Task { ProcessTime = task.ProcessTime, Status = task.Status, LastUpdator = task.LastUpdator },
                TaskQueryForm = new TaskQueryForm { ID = task.ID },
            });
            //设置下个活动点的状态
            if (activity.Children.Count > 0)
            {
                foreach (var next in activity.Children)
                {
                    string nextactivityid = next.Value.ID;
                    var nextActivityModel = next as ActivityModel;
                    nextActivityModel.Value.Status = (int)ActivityProcessStatus.Processing;
                    nextActivityModel.Value.LastUpdator = processor;
                    activitydao.Update(new ActivityUpdateForm
                    {
                        Entity = new Activity { Status = nextActivityModel.Value.Status, LastUpdator = nextActivityModel.Value.LastUpdator },
                        ActivityQueryForm = new ActivityQueryForm { ID = nextactivityid },
                    });

                    List<string> useridList = auth.GetUserIDList(nextActivityModel.Auth);
                    //新增下个活动点的任务
                    var tasklist = nextActivityModel.GetTask(processor, useridList);
                    foreach (var t in tasklist)
                    {
                        nextActivityModel.Tasks.Add(t);
                        taskdao.Add(t);
                    }
                }
            }
        }
Пример #7
0
        public static bool DeleteGift(int giftId)
        {
            bool        result      = new GiftDao().Delete <GiftInfo>(giftId);
            ActivityDao activityDao = new ActivityDao();

            if (activityDao.ExistGiftNoReceive(giftId))
            {
                activityDao.DeleteGiftNoReceives(giftId);
            }
            return(result);
        }
Пример #8
0
        public static bool SaveActivity1(ActivityInfo activity)
        {
            int       activityId = new ActivityDao().SaveActivity(activity);
            ReplyInfo replyInfo  = new TextReplyInfo();

            replyInfo.Keys        = activity.Keys;
            replyInfo.MatchType   = MatchType.Equal;
            replyInfo.MessageType = MessageType.Text;
            replyInfo.ReplyType   = ReplyType.SignUp;
            replyInfo.ActivityId  = activityId;
            return(new ReplyDao().SaveReply(replyInfo));
        }
Пример #9
0
        public static bool SaveActivity(ActivityInfo activity)
        {
            int       num   = new ActivityDao().SaveActivity(activity);
            ReplyInfo reply = new TextReplyInfo {
                Keys        = activity.Keys,
                MatchType   = MatchType.Equal,
                MessageType = MessageType.Text,
                ReplyType   = ReplyType.SignUp,
                ActivityId  = num
            };

            return(new ReplyDao().SaveReply(reply));
        }
Пример #10
0
        public ActionResult Add(Activity act, HttpPostedFileBase picture)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (picture != null)
                    {
                        ImageClass.ImageMethod(picture, "Activity", out string bigImageName, out string smallImageName, out string tempData);

                        if (tempData != null)
                        {
                            TempData["warning"] = tempData;
                        }
                        act.BigImageName   = bigImageName;
                        act.SmallImageName = smallImageName;
                    }

                    ActivityDao aDao    = new ActivityDao();
                    bool        isExist = aDao.ActivityExist(act.Name);
                    if (isExist == false)
                    {
                        UserDao uDao = new UserDao();
                        act.Author = uDao.GetByLogin(User.Identity.Name);

                        aDao.Create(act);
                    }
                    else
                    {
                        TempData["warning"] = "Aktivita pod tímto názvem již existuje!";
                        return(View("Create", act));
                    }
                }
                else
                {
                    return(View("Create", act));
                }

                if (TempData["warning"] == null)
                {
                    TempData["succes"] = "Nová aktivita " + act.Name + " úspěšně přidána.";
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(RedirectToAction("Index"));
        }
Пример #11
0
        public ActionResult Update(Activity act, HttpPostedFileBase picture, int authorId)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (picture != null)
                    {
                        ImageClass.ImageMethod(picture, "Activity", out string bigImageName, out string smallImageName, out string tempData);

                        if (tempData != null)
                        {
                            TempData["warning"] = tempData;
                        }

                        if (act.SmallImageName != null)
                        {
                            System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + act.SmallImageName));
                        }
                        if (act.BigImageName != null)
                        {
                            System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + act.BigImageName));
                        }

                        act.BigImageName   = bigImageName;
                        act.SmallImageName = smallImageName;
                    }

                    ActivityDao aDao    = new ActivityDao();
                    UserDao     userDao = new UserDao();
                    act.Author = userDao.GetById(authorId);
                    aDao.Update(act);
                }
                else
                {
                    return(View("Edit", act));
                }

                if (TempData["warning"] == null)
                {
                    TempData["succes"] = "Úprava aktivity " + act.Name + " proběhla úspěšně.";
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(RedirectToAction("Index"));
        }
Пример #12
0
        /// <summary>
        /// 把流程实体新增到数据库
        /// </summary>
        /// <returns></returns>
        public bool Create()
        {
            ISqlMapper      mapper      = MapperHelper.GetMapper();
            WorkflowDao     workflowdao = new WorkflowDao(mapper);
            ActivityDao     activitydao = new ActivityDao(mapper);
            LinkDao         linkdao     = new LinkDao(mapper);
            ActivityAuthDao authdao     = new ActivityAuthDao(mapper);

            workflowdao.Add(this.Value);
            var         activities = this.Root.GetList();
            List <Link> linkList   = new List <Link>();

            //保存节点
            foreach (var activity in activities)
            {
                activitydao.Add(activity.Value);
                var activityinstance = activity as ActivityModel;
                //保存连接
                if (activityinstance.PreLinks != null)
                {
                    foreach (var link in activityinstance.PreLinks)
                    {
                        if (!linkList.Contains(link.Value))
                        {
                            linkList.Add(link.Value);
                        }
                    }
                }
                if (activityinstance.NextLinks != null)
                {
                    foreach (var link in activityinstance.NextLinks)
                    {
                        if (!linkList.Contains(link.Value))
                        {
                            linkList.Add(link.Value);
                        }
                    }
                }
                //保存权限
                foreach (var auth in activityinstance.Auth)
                {
                    authdao.Add(auth);
                }
            }
            foreach (var link in linkList)
            {
                linkdao.Add(link);
            }
            return(true);
        }
Пример #13
0
        // GET: Admin/Activity
        public ActionResult Index()
        {
            ActivityDao      ad   = new ActivityDao();
            IList <Activity> acts = ad.GetAll();
            UserDao          uDao = new UserDao();
            FitnessUser      u    = uDao.GetByLogin(User.Identity.Name);

            ViewBag.Mark = "Activity";

            if (u.Role.Name != "Trenér")
            {
                return(View("CustomerIndex", acts));
            }

            return(View(acts));
        }
Пример #14
0
        public void getDataByCondition()
        {
            String builtinDatetimeDateResolution = DateTime.Now.ToString("yyyy-MM-dd");

            builtinDatetimeDateResolution = "2017-01";

            List <t_activity> activityList = new List <t_activity>();
            //楼层
            String basic_info_code = String.Empty;
            //楼层
            String      floor_code  = String.Empty;
            ActivityDao activityDao = new ActivityDao();

            activityList = activityDao.getDataByCondition(basic_info_code, floor_code, MSDateUtil.getBegin(builtinDatetimeDateResolution), MSDateUtil.getEnd(builtinDatetimeDateResolution));

            //activityList = activityDao.getDataByCondition(basic_info_code, floor_code, MSDateUtil.getBegin(builtinDatetimeDateResolution), null);

            Debug.WriteLine("count = " + activityList.Count);
        }
Пример #15
0
        public ActionResult Delete(int id)
        {
            try
            {
                ActivityDao aDao = new ActivityDao();
                Activity    a    = aDao.GetById(id);

                if (a.SmallImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + a.SmallImageName));
                }
                if (a.BigImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + a.BigImageName));
                }

                //je zapotřebí smazat nejdrive vsechny terminy na tuto aktivitu, a take rezervace na tyto terminy
                TermDao        tDao   = new TermDao();
                ReservationDao resDao = new ReservationDao();
                IList <Term>   terms  = tDao.GetTermsByActivity(a);
                foreach (Term t in terms)
                {
                    IList <Reservation> reservations = resDao.GetAllReservationsByTerm(t);
                    foreach (Reservation res in reservations)
                    {
                        resDao.Delete(res);
                    }
                    tDao.Delete(t);
                }

                aDao.Delete(a);

                TempData["succes"] = "Aktivita " + a.Name + " úspěšně smazána. Stejně tak i všechny termíny na tuto akci.";
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(RedirectToAction("Index"));
        }
Пример #16
0
        private void setActivityDic()
        {
            ActivityDao       dao  = new ActivityDao();
            List <t_activity> list = dao.getAllData();

            foreach (t_activity po in list)
            {
                if (String.IsNullOrWhiteSpace(po.activity))
                {
                    continue;
                }
                if (activityDic.ContainsKey(po.activity))
                {
                    activityDic[po.activity] = po;
                }
                else
                {
                    activityDic.Add(po.activity, po);
                }
            }
        }
Пример #17
0
 static ActivityHelper()
 {
     ActivityHelper._act = new ActivityDao();
 }
Пример #18
0
        public List <InitApprovalResultForm> Query(List <string> projectids, List <string> taskids, string currentuserid)
        {
            #region init dao
            List <InitApprovalResultForm> result = new List <InitApprovalResultForm>();
            if (projectids == null || projectids.Count == 0)
            {
                return(new List <InitApprovalResultForm>());
            }

            ISqlMapper             mapper      = Common.GetMapperFromSession();
            ProjectDao             dao         = new ProjectDao(mapper);
            Customer_ProjectDao    cpdao       = new Customer_ProjectDao(mapper);
            Customer_AssetDao      cadao       = new Customer_AssetDao(mapper);
            Asset_ProjectDao       apdao       = new Asset_ProjectDao(mapper);
            WorkflowDao            workflowdao = new WorkflowDao(mapper);
            ActivityDao            activitydao = new ActivityDao(mapper);
            ApprovalDao            appvoraldao = new ApprovalDao(mapper);
            TaskDao                taskdao     = new TaskDao(mapper);
            UserInfoDao            uidao       = new UserInfoDao(mapper);
            User_RoleDao           urdao       = new User_RoleDao(mapper);
            TrackingChangeOwnerDao tcodao      = new TrackingChangeOwnerDao(mapper);
            TrackingMortgageDao    tmdao       = new TrackingMortgageDao(mapper);
            LinkDao                linkdao     = new LinkDao(mapper);
            Role_Module_ActionDao  rmadao      = new Role_Module_ActionDao(mapper);
            ReturnBackConfirmDao   rbcdao      = new ReturnBackConfirmDao(mapper);
            CreditReceiverInfoDao  cridao      = new CreditReceiverInfoDao(mapper);
            #endregion

            #region 查询数据
            List <Customer_Project>    cps                 = new List <Customer_Project>();
            List <Customer_Asset>      cas                 = new List <Customer_Asset>();
            List <Asset_Project>       aps                 = new List <Asset_Project>();
            List <Activity>            activities          = new List <Activity>();
            List <Approval>            approvals           = new List <Approval>();
            List <Task>                tasks               = new List <Task>();
            List <TrackingChangeOwner> tco                 = new List <TrackingChangeOwner>();
            List <TrackingMortgage>    tm                  = new List <TrackingMortgage>();
            List <string>              projectidlist       = new List <string>();
            List <string>              workflowids         = new List <string>();
            List <CreditReceiverInfo>  criList             = new List <CreditReceiverInfo>();
            List <Link>                links               = new List <Link>();
            List <ReturnBackConfirm>   returnBackMoneyInfo = new List <ReturnBackConfirm>();
            List <Workflow>            workflows           = null;
            List <Project>             list                = null;
            var rma = rmadao.Query(new Role_Module_ActionQueryForm {
            });
            if (taskids != null && taskids.Count > 0)
            {
                tasks = taskdao.Query(new TaskQueryForm {
                    IDs = taskids
                });
                workflowids = (from t in tasks
                               select t.WorkflowID).Distinct().ToList();
                workflows = workflowdao.Query(new WorkflowQueryForm {
                    IDs = workflowids
                });
                activities = activitydao.Query(new ActivityQueryForm {
                    WorkflowIDs = workflowids
                });
                approvals = appvoraldao.Query(new ApprovalQueryForm {
                    WorkflowIDs = workflowids
                });
                projectidlist = (from w in workflows
                                 select w.ProcessID).ToList();
                list = dao.Query(new ProjectQueryForm {
                    IDs = projectidlist
                });
            }
            else if (projectids != null && projectids.Count > 0)
            {
                list = dao.Query(new ProjectQueryForm {
                    IDs = projectids
                });
                projectidlist = (from p in list
                                 select p.ID).ToList();
                workflows = workflowdao.Query(new WorkflowQueryForm {
                    ProcessIDs = projectidlist
                });
                workflowids = (from w in workflows
                               select w.ID).ToList();
                if (workflowids.Count > 0)
                {
                    activities = activitydao.Query(new ActivityQueryForm {
                        WorkflowIDs = workflowids
                    });
                    approvals = appvoraldao.Query(new ApprovalQueryForm {
                        WorkflowIDs = workflowids
                    });
                    tasks = taskdao.Query(new TaskQueryForm {
                        WorkflowIDs = workflowids
                    });
                }
            }
            else
            {
                return(result);
            }

            if (projectidlist.Count > 0)
            {
                cps = cpdao.Query(new Customer_ProjectQueryForm {
                    ProjectIDs = projectidlist
                });
                cas = cadao.Query(new Customer_AssetQueryForm {
                    ProjectIDs = projectidlist
                });
                aps = apdao.Query(new Asset_ProjectQueryForm {
                    ProjectIDs = projectidlist
                });
            }

            var users     = uidao.Query(new UserInfoQueryForm {
            });
            var userroles = urdao.Query(new User_RoleQueryForm {
            });
            criList = cridao.Query(new CreditReceiverInfoQueryForm {
                ProjectIDs = projectids
            });
            tco = tcodao.Query(new TrackingChangeOwnerQueryForm {
                ProjectIDs = projectidlist
            });
            tm = tmdao.Query(new TrackingMortgageQueryForm {
                ProjectIDs = projectidlist
            });
            returnBackMoneyInfo = rbcdao.Query(new ReturnBackConfirmQueryForm {
                ProjectIDs = projectidlist
            });

            //从缓存中取得
            var customers = TableCacheHelper.GetDataFromCache <Customer>(typeof(CustomerDao));
            var assets    = TableCacheHelper.GetDataFromCache <Asset>(typeof(AssetDao));
            #endregion

            #region 处理废单权限

            //处理废单权限
            var hasDisplayDiscard = (from ur in userroles
                                     join r in rma on ur.RoleID equals r.RoleID
                                     where r.ModuleID == "4" && r.ActionID == "4" && ur.UserID == currentuserid
                                     select r).FirstOrDefault();
            #endregion

            foreach (Project project in list)
            {
                var data = QueryDetail(project, customers, assets, cps, cas, aps, workflows, activities, approvals, tasks, users, userroles,
                                       tco, tm, returnBackMoneyInfo, criList, currentuserid);
                if (hasDisplayDiscard != null)
                {
                    data.DisplayDiscard = true;
                }
                result.Add(data);
            }
            return(result);
        }
Пример #19
0
        public void test1Test()
        {
            try
            {
                BaseInfo bi = new BaseInfo();
                bi.init();
                SearchService ss = new SearchService();

                SynonymDao     synonymDao  = new SynonymDao();
                WordDao        wordDao     = new WordDao();
                WordSynonymDao wsDao       = new WordSynonymDao();
                ActivityDao    activityDao = new ActivityDao();

                ReadActivity rf = new ReadActivity();
                if (null != ReadActivity.dic)
                {
                    int i = 30000;
                    foreach (Activity obj in ReadActivity.dic.Values)
                    {
                        Debug.WriteLine(obj.ToString());
                        t_synonym t_synonym = new t_synonym()
                        {
                            code = i + "", name = obj.Word, remark = ""
                        };
                        t_word t_word = new t_word()
                        {
                            code = i + "", type = "活动", name = obj.Word, remark = ""
                        };
                        t_word_synonym t_word_synonym = new t_word_synonym()
                        {
                            word_code = i + "", synonym_code = i + ""
                        };
                        //t_brand t_brand = new t_brand { code = i + "", brand = i + "", floor = ss.getWordBySynonym(b.Floor).code, contract = b.BrandCode, house_number = b.UnitNumber, vip_flag = "特约商户".Equals(b.VipFee) ? 1 : 0 };

                        DateTimeFormatInfo dtFormat = new DateTimeFormatInfo();

                        dtFormat.ShortDatePattern = "MM/dd/yyyy";

                        t_activity t_activity = new t_activity {
                            code       = i + "", activity = i + "", floor = String.IsNullOrEmpty(obj.Floor)? "" : ss.getWordBySynonym(obj.Floor).code,
                            basic_info = String.IsNullOrEmpty(obj.BasicInfo) ? "" : ss.getWordBySynonym(obj.BasicInfo).code, remark = obj.Remark,
                            begin      = Convert.ToDateTime(obj.Begin, dtFormat), end = Convert.ToDateTime(obj.End, dtFormat)
                        };

                        synonymDao.add(t_synonym);
                        wordDao.add(t_word);
                        wsDao.add(t_word_synonym);
                        activityDao.add(t_activity);
                        Debug.WriteLine("添加成功");
                        i++;
                    }
                }
                else
                {
                    Debug.WriteLine("dic = null" + " ; path = " + ReadActivity.path);
                }
            }
            catch (DbEntityValidationException ex)
            {
                Debug.WriteLine(ex.ToString());

                StringBuilder errors = new StringBuilder();
                IEnumerable <DbEntityValidationResult> validationResult = ex.EntityValidationErrors;
                foreach (DbEntityValidationResult result in validationResult)
                {
                    ICollection <DbValidationError> validationError = result.ValidationErrors;
                    foreach (DbValidationError err in validationError)
                    {
                        errors.Append(err.PropertyName + ":" + err.ErrorMessage + "\r\n");
                    }
                }
                Debug.WriteLine(errors.ToString());
                //简写
                //var validerr = ex.EntityValidationErrors.First().ValidationErrors.First();
                //Console.WriteLine(validerr.PropertyName + ":" + validerr.ErrorMessage);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Пример #20
0
        public void Process(ActivityModel activity, Approval approval, string processor, IWorkflowAuthority auth)
        {
            if (approval == null)
            {
                throw new Exception("审批意见不能为null");
            }
            if (string.IsNullOrEmpty(approval.Remark))
            {
                throw new Exception("审批意见不能为空");
            }
            //已经处理过就不能再处理
            if (activity.Value.Status == (int)ActivityProcessStatus.Processed)
            {
                return;
            }
            ISqlMapper  mapper      = MapperHelper.GetMapper();
            ActivityDao activitydao = new ActivityDao(mapper);
            TaskDao     taskdao     = new TaskDao(mapper);

            activity.Value.Status      = (int)ActivityProcessStatus.Started;
            activity.Value.ProcessTime = DateTime.Now;
            activity.Value.LastUpdator = processor;

            //设置当前活动点状态
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity {
                    Status = activity.Value.Status, ProcessTime = activity.Value.ProcessTime, LastUpdator = activity.Value.LastUpdator
                },
                ActivityQueryForm = new ActivityQueryForm {
                    ID = activity.Value.ID
                }
            });
            //新增审批意见
            if (approval != null)
            {
                ApprovalDao ad = new ApprovalDao(mapper);
                approval.Creator    = processor;
                approval.ActivityID = activity.Value.ID;
                approval.WorkflowID = activity.Value.WorkflowID;
                ad.Add(approval);
                activity.OwnerWorkflow.Approval.Add(approval);
            }
            //处理当前流程所有任务,设置为已处理
            var task = activity.GetUserProcessingTask(processor);

            if (task == null)
            {
                throw new Exception("环节中没有你的任务,无法进行审批操作");
            }
            task.ProcessTime = DateTime.Now;
            task.Status      = (int)TaskProcessStatus.Processed;
            task.LastUpdator = processor;
            taskdao.Update(new TaskUpdateForm
            {
                Entity = new Task {
                    ProcessTime = task.ProcessTime, Status = task.Status, LastUpdator = task.LastUpdator
                },
                TaskQueryForm = new TaskQueryForm {
                    ActivityID = task.ActivityID
                },
            });
            //把所有活动点的状态清空
            activity.OwnerWorkflow.Root.GetList().ForEach(t => t.Value.Status = activity.Value.Status);
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity {
                    Status = activity.Value.Status
                },
                ActivityQueryForm = new ActivityQueryForm {
                    WorkflowID = activity.Value.WorkflowID
                }
            });
            activity.OwnerWorkflow.Root.Value.Status = (int)ActivityProcessStatus.Processing;
            var root = activity.OwnerWorkflow.Root;

            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity {
                    Status = root.Value.Status
                },
                ActivityQueryForm = new ActivityQueryForm {
                    ID = root.Value.ID
                },
            });
            //生成退回任务
            Task roottask = new Task
            {
                ActivityID = root.Value.ID,
                Name       = root.Value.Name,
                Title      = root.Value.Title + "(退回)",
                UserID     = activity.OwnerWorkflow.Value.Creator,
                WorkflowID = activity.OwnerWorkflow.Value.ID,
                Status     = (int)TaskProcessStatus.Started,
                Creator    = processor,
            };

            root.Tasks.Add(roottask);
            taskdao.Add(roottask);
        }
Пример #21
0
 /// <summary>
 /// 删除该流程
 /// </summary>
 public void Remove()
 {
     ISqlMapper mapper = MapperHelper.GetMapper();
     WorkflowDao wfdao = new WorkflowDao(mapper);
     ActivityDao activitydao = new ActivityDao(mapper);
     LinkDao linkDao = new LinkDao(mapper);
     ActivityAuthDao authdao = new ActivityAuthDao(mapper);
     ApprovalDao approvalDao = new ApprovalDao(mapper);
     TaskDao taskdao = new TaskDao(mapper);
     string id = this.value.ID;
     var activities = activitydao.Query(new ActivityQueryForm { WorkflowID = id });
     taskdao.Delete(new TaskQueryForm { WorkflowID = id });
     wfdao.Delete(new WorkflowQueryForm { ID = id });
     activitydao.Delete(new ActivityQueryForm { WorkflowID = id });
     linkDao.Delete(new LinkQueryForm { WorkflowID = id });
     approvalDao.Delete(new ApprovalQueryForm { WorkflowID = id });
     authdao.Delete(new ActivityAuthQueryForm { WorkflowID = id });
 }
Пример #22
0
        /// <summary>
        /// 从数据库读取流程信息
        /// </summary>
        /// <param name="workflowids"></param>
        /// <returns></returns>
        public static List<WorkflowModel> Load(WorkflowQueryForm form)
        {
            List<WorkflowModel> models = new List<WorkflowModel>();
            if (form == null) return models;

            #region query data
            ISqlMapper mapper = MapperHelper.GetMapper();
            WorkflowDao wfdao = new WorkflowDao(mapper);
            ActivityDao activitydao = new ActivityDao(mapper);
            LinkDao linkDao = new LinkDao(mapper);
            ActivityAuthDao authdao = new ActivityAuthDao(mapper);
            ApprovalDao approvalDao = new ApprovalDao(mapper);
            TaskDao taskdao = new TaskDao(mapper);
            List<Activity> activityList = new List<Activity>();
            List<Link> linkList = new List<Link>();
            List<ActivityAuth> authList = new List<ActivityAuth>();
            List<Approval> approvalList = new List<Approval>();
            List<Task> taskList = new List<Task>();
            List<Workflow> workflows = new List<Workflow>();
            //先从缓存取值
            //var item = cache.GetItem(id);
            //if (item != null)
            //{
            //    model = item.Value as WorkflowModel;
            //    return model;
            //}
            workflows = wfdao.Query(form);
            var workflowids = (from wf in workflows select wf.ID).ToList();
            activityList = activitydao.Query(new ActivityQueryForm { WorkflowIDs = workflowids });
            linkList = linkDao.Query(new LinkQueryForm { WorkflowIDs = workflowids });
            approvalList = approvalDao.Query(new ApprovalQueryForm { WorkflowIDs = workflowids });
            authList = authdao.Query(new ActivityAuthQueryForm { WorkflowIDs = workflowids });
            taskList = taskdao.Query(new TaskQueryForm { WorkflowIDs = workflowids });
            #endregion

            foreach (var workflow in workflows)
            {
                var model = BuildWorkflow(workflow, activityList, linkList, authList, approvalList, taskList);
                models.Add(model);
            }
            return models;
        }
Пример #23
0
        public void Process(ActivityModel activity, Approval approval, string processor, IWorkflowAuthority auth)
        {
            if (approval == null) throw new Exception("审批意见不能为null");
            if (string.IsNullOrEmpty(approval.Remark)) throw new Exception("审批意见不能为空");
            //已经处理过就不能再处理
            if (activity.Value.Status == (int)ActivityProcessStatus.Processed) return;
            ISqlMapper mapper = MapperHelper.GetMapper();
            ActivityDao activitydao = new ActivityDao(mapper);
            TaskDao taskdao = new TaskDao(mapper);
            activity.Value.Status = (int)ActivityProcessStatus.Processed;
            activity.Value.ProcessTime = DateTime.Now;
            activity.Value.LastUpdator = processor;
            //新增审批意见
            if (approval != null)
            {
                ApprovalDao ad = new ApprovalDao(mapper);
                approval.Creator = processor;
                approval.ActivityID = activity.Value.ID;
                approval.WorkflowID = activity.Value.WorkflowID;
                ad.Add(approval);
                activity.OwnerWorkflow.Approval.Add(approval);
            }
            //设置当前活动点状态
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity { Status = activity.Value.Status, ProcessTime = activity.Value.ProcessTime, LastUpdator = activity.Value.LastUpdator },
                ActivityQueryForm = new ActivityQueryForm { ID = activity.Value.ID }
            });
            //处理任务
            var task = activity.GetUserProcessingTask(processor);
            if (task == null) throw new Exception("环节中没有你的任务,无法进行审批操作");
            task.ProcessTime = DateTime.Now;
            task.Status = (int)TaskProcessStatus.Processed;
            task.LastUpdator = processor;
            taskdao.Update(new TaskUpdateForm
            {
                Entity = new Task { ProcessTime = DateTime.Now, Status = task.Status, LastUpdator = task.LastUpdator },
                TaskQueryForm = new TaskQueryForm { ID = task.ID },
            });
            //设置下个活动点的状态
            if (activity.Children.Count > 0)
            {
                foreach (var next in activity.Children)
                {
                    string nextactivityid = next.Value.ID;
                    var nextActivityModel = next as ActivityModel;
                    nextActivityModel.Value.Status = (int)ActivityProcessStatus.Processing;
                    nextActivityModel.Value.LastUpdator = processor;
                    activitydao.Update(new ActivityUpdateForm
                    {
                        Entity = new Activity { Status = nextActivityModel.Value.Status, LastUpdator = nextActivityModel.Value.LastUpdator },
                        ActivityQueryForm = new ActivityQueryForm { ID = nextactivityid },
                    });

                    List<string> useridList = auth.GetUserIDList(nextActivityModel.Auth);
                    //新增下个活动点的任务
                    var tasklist = nextActivityModel.GetTask(processor, useridList);
                    foreach (var t in tasklist)
                    {
                        taskdao.Add(t);
                        nextActivityModel.Tasks.Add(t);
                    }
                }
            }
        }
Пример #24
0
 /// <summary>
 /// 把流程实体新增到数据库
 /// </summary>
 /// <returns></returns>
 public bool Create()
 {
     ISqlMapper mapper = MapperHelper.GetMapper();
     WorkflowDao workflowdao = new WorkflowDao(mapper);
     ActivityDao activitydao = new ActivityDao(mapper);
     LinkDao linkdao = new LinkDao(mapper);
     ActivityAuthDao authdao = new ActivityAuthDao(mapper);
     workflowdao.Add(this.Value);
     var activities = this.Root.GetList();
     List<Link> linkList = new List<Link>();
     //保存节点
     foreach (var activity in activities)
     {
         activitydao.Add(activity.Value);
         var activityinstance = activity as ActivityModel;
         //保存连接
         if (activityinstance.PreLinks != null)
         {
             foreach (var link in activityinstance.PreLinks)
             {
                 if (!linkList.Contains(link.Value))
                 {
                     linkList.Add(link.Value);
                 }
             }
         }
         if (activityinstance.NextLinks != null)
         {
             foreach (var link in activityinstance.NextLinks)
             {
                 if (!linkList.Contains(link.Value))
                 {
                     linkList.Add(link.Value);
                 }
             }
         }
         //保存权限
         foreach (var auth in activityinstance.Auth)
         {
             authdao.Add(auth);
         }
     }
     foreach (var link in linkList)
     {
         linkdao.Add(link);
     }
     return true;
 }
Пример #25
0
        public void Process(ActivityModel activity, Approval approval, string processor, IWorkflowAuthority auth)
        {
            if (approval == null)
            {
                throw new Exception("审批意见不能为null");
            }
            if (string.IsNullOrEmpty(approval.Remark))
            {
                throw new Exception("审批意见不能为空");
            }
            //已经处理过就不能再处理
            if (activity.Value.Status == (int)ActivityProcessStatus.Processed)
            {
                return;
            }
            ISqlMapper  mapper      = MapperHelper.GetMapper();
            ActivityDao activitydao = new ActivityDao(mapper);
            TaskDao     taskdao     = new TaskDao(mapper);

            activity.Value.Status      = (int)ActivityProcessStatus.Processed;
            activity.Value.ProcessTime = DateTime.Now;
            activity.Value.LastUpdator = processor;
            //新增审批意见
            if (approval != null)
            {
                ApprovalDao ad = new ApprovalDao(mapper);
                approval.Creator    = processor;
                approval.ActivityID = activity.Value.ID;
                approval.WorkflowID = activity.Value.WorkflowID;
                ad.Add(approval);
                activity.OwnerWorkflow.Approval.Add(approval);
            }
            //设置当前活动点状态
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity {
                    Status = activity.Value.Status, ProcessTime = activity.Value.ProcessTime, LastUpdator = activity.Value.LastUpdator
                },
                ActivityQueryForm = new ActivityQueryForm {
                    ID = activity.Value.ID
                }
            });
            //处理任务
            var task = activity.GetUserProcessingTask(processor);

            if (task == null)
            {
                throw new Exception("环节中没有你的任务,无法进行审批操作");
            }
            task.ProcessTime = DateTime.Now;
            task.Status      = (int)TaskProcessStatus.Processed;
            task.LastUpdator = processor;
            taskdao.Update(new TaskUpdateForm
            {
                Entity = new Task {
                    ProcessTime = DateTime.Now, Status = task.Status, LastUpdator = task.LastUpdator
                },
                TaskQueryForm = new TaskQueryForm {
                    ID = task.ID
                },
            });
            //设置下个活动点的状态
            if (activity.Children.Count > 0)
            {
                foreach (var next in activity.Children)
                {
                    string nextactivityid    = next.Value.ID;
                    var    nextActivityModel = next as ActivityModel;
                    nextActivityModel.Value.Status      = (int)ActivityProcessStatus.Processing;
                    nextActivityModel.Value.LastUpdator = processor;
                    activitydao.Update(new ActivityUpdateForm
                    {
                        Entity = new Activity {
                            Status = nextActivityModel.Value.Status, LastUpdator = nextActivityModel.Value.LastUpdator
                        },
                        ActivityQueryForm = new ActivityQueryForm {
                            ID = nextactivityid
                        },
                    });

                    List <string> useridList = auth.GetUserIDList(nextActivityModel.Auth);
                    //新增下个活动点的任务
                    var tasklist = nextActivityModel.GetTask(processor, useridList);
                    foreach (var t in tasklist)
                    {
                        taskdao.Add(t);
                        nextActivityModel.Tasks.Add(t);
                    }
                }
            }
        }
Пример #26
0
        public ActionResult Add(Term term, int activityId, int roomId, int timeLong)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    TermDao     tDao = new TermDao();
                    ActivityDao aDao = new ActivityDao();
                    RoomDao     rDao = new RoomDao();
                    UserDao     uDao = new UserDao();

                    DateTime end = term.StartTerm.AddMinutes((double)timeLong);

                    if (term.StartTerm.Hour < 7 || term.StartTerm.Hour > 21 || end.Hour < 7 || end.Hour > 21)
                    {
                        TempData["error"] = "Termín nebyl úspěšně přidán. Termín musí být založen v otevíracích hodinách (7:00 až 20:59).";
                        return(RedirectToAction("Create", new { term }));
                    }
                    if (term.StartTerm > end)
                    {
                        TempData["error"] = "Termín nebyl úspěšně přidán. Konec termínu je dřív než jeho začátek.";
                        return(RedirectToAction("Create", new { term }));
                    }

                    term.EndTerm  = end;
                    term.Activity = aDao.GetById(activityId);
                    term.Room     = rDao.GetById(roomId);
                    term.Trainer  = uDao.GetByLogin(User.Identity.Name);

                    ViewBag.Rooms      = new RoomDao().GetAll();
                    ViewBag.Activities = new ActivityDao().GetAll();

                    //kontrola kapacity terminu
                    if (term.Room.MaxCapacity >= term.Capacity)
                    {
                        IList <Term> termsInRoom = tDao.GetTermsByRoom(term.Room);
                        bool         validDates  = true;
                        //kontrola dostupnosti mistnosti ve zvoleny cas
                        foreach (Term t in termsInRoom)
                        {
                            if (
                                (t.EndTerm > DateTime.Now) &&                                        //neukoncene terminy
                                !(                                                                   //zapor
                                    (t.StartTerm > term.StartTerm && t.StartTerm >= term.EndTerm) || //zacatek i konec terminu je pred zacatkem jineho terminu
                                    (t.EndTerm <= term.StartTerm && t.EndTerm < term.EndTerm)        //zacatek i konec terminu je po konci jineho terminu
                                    )
                                )
                            {
                                validDates = false;
                                break;
                            }
                        }
                        if (validDates == true)
                        {
                            tDao.Create(term);
                            TempData["succes"] = "Termín úspěšně vytvořen.";
                        }
                        else
                        {
                            TempData["warning"] = "Časový plán termínu je v konfilktu s jiným termínem ve stejné místnosti.";
                            return(View("Create", term));
                        }
                    }
                    else
                    {
                        TempData["warning"] = "Maximální kapacita místnosti je menší než kapacita vytvářeného termínu.";
                        return(View("Create", term));
                    }
                }
                else
                {
                    return(View("Create", term));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(RedirectToAction("Index"));
        }
Пример #27
0
 public static bool ManageWinningResult(int UserId, ActivityInfo Info, int AwardGrade, ref int FreeTimes)
 {
     lock (ActivityHelper.oWinning)
     {
         Database    database    = DatabaseFactory.CreateDatabase();
         ActivityDao activityDao = new ActivityDao();
         using (DbConnection dbConnection = database.CreateConnection())
         {
             dbConnection.Open();
             DbTransaction dbTransaction = dbConnection.BeginTransaction();
             try
             {
                 bool flag  = false;
                 bool flag2 = false;
                 ActivityJoinStatisticsInfo activityJoinStatisticsInfo = activityDao.GetCurrUserActivityStatisticsInfo(UserId, Info.ActivityId, dbTransaction);
                 MemberInfo memberInfo = new MemberDao().Get <MemberInfo>(UserId);
                 if (activityJoinStatisticsInfo != null)
                 {
                     if (Info.ResetType == 2)
                     {
                         DateTime lastJoinDate = activityJoinStatisticsInfo.LastJoinDate;
                         if (DateTime.Now.Date == lastJoinDate.Date)
                         {
                             if (activityJoinStatisticsInfo.FreeNum < Info.FreeTimes)
                             {
                                 flag = true;
                                 activityJoinStatisticsInfo.FreeNum++;
                                 FreeTimes = Info.FreeTimes - activityJoinStatisticsInfo.FreeNum;
                             }
                             else
                             {
                                 activityJoinStatisticsInfo.IntegralTotal += Info.ConsumptionIntegral;
                                 activityJoinStatisticsInfo.IntegralNum++;
                                 FreeTimes = 0;
                             }
                         }
                         else
                         {
                             flag = true;
                             activityJoinStatisticsInfo.FreeNum = 1;
                             FreeTimes = Info.FreeTimes - 1;
                         }
                     }
                     else if (activityJoinStatisticsInfo.FreeNum < Info.FreeTimes)
                     {
                         flag = true;
                         activityJoinStatisticsInfo.FreeNum++;
                         FreeTimes = Info.FreeTimes - activityJoinStatisticsInfo.FreeNum;
                     }
                     else
                     {
                         activityJoinStatisticsInfo.IntegralTotal += Info.ConsumptionIntegral;
                         activityJoinStatisticsInfo.IntegralNum++;
                         FreeTimes = 0;
                     }
                 }
                 else
                 {
                     flag2 = true;
                     activityJoinStatisticsInfo            = new ActivityJoinStatisticsInfo();
                     activityJoinStatisticsInfo.ActivityId = Info.ActivityId;
                     activityJoinStatisticsInfo.UserId     = UserId;
                     if (Info.FreeTimes > 0)
                     {
                         flag = true;
                         activityJoinStatisticsInfo.FreeNum       = 1;
                         activityJoinStatisticsInfo.IntegralTotal = 0;
                         activityJoinStatisticsInfo.IntegralNum   = 0;
                         FreeTimes = Info.FreeTimes - 1;
                     }
                     else
                     {
                         activityJoinStatisticsInfo.IntegralTotal = Info.ConsumptionIntegral;
                         activityJoinStatisticsInfo.IntegralNum   = 1;
                         activityJoinStatisticsInfo.FreeNum       = 0;
                         FreeTimes = 0;
                     }
                 }
                 activityJoinStatisticsInfo.JoinNum++;
                 activityJoinStatisticsInfo.LastJoinDate = DateTime.Now;
                 bool                  flag3                 = false;
                 CouponInfo            couponInfo            = null;
                 GiftInfo              giftInfo              = null;
                 ActivityAwardItemInfo activityAwardItemInfo = null;
                 if (AwardGrade > 0)
                 {
                     activityAwardItemInfo = activityDao.GetActivityItem(Info.ActivityId, AwardGrade, dbTransaction);
                     if (activityAwardItemInfo.WinningNum < activityAwardItemInfo.AwardNum)
                     {
                         if (activityAwardItemInfo.PrizeType == 2)
                         {
                             couponInfo = new CouponDao().Get <CouponInfo>(activityAwardItemInfo.PrizeValue);
                             if (couponInfo != null)
                             {
                                 int couponSurplus = new CouponDao().GetCouponSurplus(activityAwardItemInfo.PrizeValue);
                                 if (couponSurplus > 0 && couponInfo.ClosingTime > DateTime.Now)
                                 {
                                     flag3 = true;
                                 }
                             }
                         }
                         else if (activityAwardItemInfo.PrizeType == 3)
                         {
                             giftInfo = new GiftDao().Get <GiftInfo>(activityAwardItemInfo.PrizeValue);
                             if (giftInfo != null)
                             {
                                 flag3 = true;
                             }
                         }
                         else
                         {
                             flag3 = true;
                         }
                     }
                 }
                 else
                 {
                     flag3 = false;
                 }
                 if (!flag)
                 {
                     PointDetailInfo pointDetailInfo = new PointDetailInfo();
                     pointDetailInfo.Increased    = 0;
                     pointDetailInfo.OrderId      = "";
                     pointDetailInfo.Points       = memberInfo.Points - Info.ConsumptionIntegral;
                     pointDetailInfo.Reduced      = Info.ConsumptionIntegral;
                     pointDetailInfo.Remark       = "抽奖消耗积分";
                     pointDetailInfo.SignInSource = 0;
                     pointDetailInfo.TradeDate    = DateTime.Now;
                     if (Info.ActivityType == 1)
                     {
                         pointDetailInfo.TradeType = PointTradeType.JoinRotaryTable;
                     }
                     else if (Info.ActivityType == 3)
                     {
                         pointDetailInfo.TradeType = PointTradeType.JoinSmashingGoldenEgg;
                     }
                     else
                     {
                         pointDetailInfo.TradeType = PointTradeType.JoinScratchCard;
                     }
                     pointDetailInfo.UserId = UserId;
                     if (new PointDetailDao().Add(pointDetailInfo, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                         return(false);
                     }
                 }
                 if (!flag3)
                 {
                     if (flag2)
                     {
                         if (activityDao.Add(activityJoinStatisticsInfo, dbTransaction) <= 0)
                         {
                             dbTransaction.Rollback();
                         }
                     }
                     else if (!activityDao.UpdateActivityStatisticsInfo(activityJoinStatisticsInfo, dbTransaction))
                     {
                         dbTransaction.Rollback();
                     }
                     dbTransaction.Commit();
                     return(false);
                 }
                 activityJoinStatisticsInfo.WinningNum++;
                 if (flag2)
                 {
                     if (activityDao.Add(activityJoinStatisticsInfo, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                     }
                 }
                 else if (!activityDao.UpdateActivityStatisticsInfo(activityJoinStatisticsInfo, dbTransaction))
                 {
                     dbTransaction.Rollback();
                 }
                 activityAwardItemInfo.WinningNum++;
                 if (!activityDao.Update(activityAwardItemInfo, dbTransaction))
                 {
                     dbTransaction.Rollback();
                     return(false);
                 }
                 UserAwardRecordsInfo userAwardRecordsInfo = new UserAwardRecordsInfo();
                 userAwardRecordsInfo.ActivityId = Info.ActivityId;
                 if (activityAwardItemInfo.PrizeType == 2)
                 {
                     userAwardRecordsInfo.AwardName = couponInfo.CouponName;
                     userAwardRecordsInfo.AwardDate = DateTime.Now;
                     userAwardRecordsInfo.Status    = 2;
                     CouponItemInfo couponItemInfo = new CouponItemInfo();
                     couponItemInfo.UserId             = UserId;
                     couponItemInfo.UserName           = memberInfo.UserName;
                     couponItemInfo.CanUseProducts     = couponInfo.CanUseProducts;
                     couponItemInfo.ClosingTime        = couponInfo.ClosingTime;
                     couponItemInfo.CouponId           = couponInfo.CouponId;
                     couponItemInfo.CouponName         = couponInfo.CouponName;
                     couponItemInfo.OrderUseLimit      = couponInfo.OrderUseLimit;
                     couponItemInfo.Price              = couponInfo.Price;
                     couponItemInfo.StartTime          = couponInfo.StartTime;
                     couponItemInfo.UseWithGroup       = couponInfo.UseWithGroup;
                     couponItemInfo.UseWithPanicBuying = couponInfo.UseWithPanicBuying;
                     couponItemInfo.UseWithFireGroup   = couponInfo.UseWithFireGroup;
                     couponItemInfo.GetDate            = DateTime.Now;
                     couponItemInfo.ClaimCode          = Guid.NewGuid().ToString();
                     if (new CouponDao().Add(couponItemInfo, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                         return(false);
                     }
                 }
                 else if (activityAwardItemInfo.PrizeType == 3)
                 {
                     userAwardRecordsInfo.AwardDate = null;
                     userAwardRecordsInfo.AwardName = giftInfo.Name;
                     userAwardRecordsInfo.AwardPic  = giftInfo.ThumbnailUrl160;
                     userAwardRecordsInfo.Status    = 1;
                 }
                 else
                 {
                     userAwardRecordsInfo.AwardName = activityAwardItemInfo.PrizeValue + "积分";
                     userAwardRecordsInfo.AwardDate = DateTime.Now;
                     userAwardRecordsInfo.Status    = 2;
                     PointDetailInfo pointDetailInfo2 = new PointDetailInfo();
                     pointDetailInfo2.Increased = activityAwardItemInfo.PrizeValue;
                     pointDetailInfo2.OrderId   = "";
                     if (flag)
                     {
                         pointDetailInfo2.Points = memberInfo.Points + activityAwardItemInfo.PrizeValue;
                     }
                     else
                     {
                         pointDetailInfo2.Points = memberInfo.Points - Info.ConsumptionIntegral + activityAwardItemInfo.PrizeValue;
                     }
                     pointDetailInfo2.Reduced      = 0;
                     pointDetailInfo2.Remark       = "抽奖获得积分";
                     pointDetailInfo2.SignInSource = 0;
                     pointDetailInfo2.TradeDate    = DateTime.Now;
                     if (Info.ActivityType == 1)
                     {
                         pointDetailInfo2.TradeType = PointTradeType.JoinRotaryTable;
                     }
                     else if (Info.ActivityType == 3)
                     {
                         pointDetailInfo2.TradeType = PointTradeType.JoinSmashingGoldenEgg;
                     }
                     else
                     {
                         pointDetailInfo2.TradeType = PointTradeType.JoinScratchCard;
                     }
                     pointDetailInfo2.UserId = UserId;
                     if (new PointDetailDao().Add(pointDetailInfo2, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                         return(false);
                     }
                 }
                 userAwardRecordsInfo.AwardGrade = AwardGrade;
                 userAwardRecordsInfo.AwardId    = activityAwardItemInfo.AwardId;
                 userAwardRecordsInfo.CreateDate = DateTime.Now;
                 userAwardRecordsInfo.PrizeType  = activityAwardItemInfo.PrizeType;
                 userAwardRecordsInfo.PrizeValue = activityAwardItemInfo.PrizeValue;
                 userAwardRecordsInfo.UserId     = UserId;
                 if (activityDao.Add(userAwardRecordsInfo, dbTransaction) <= 0)
                 {
                     dbTransaction.Rollback();
                     return(false);
                 }
                 dbTransaction.Commit();
                 return(true);
             }
             catch (Exception ex)
             {
                 dbTransaction.Rollback();
                 Globals.WriteLog("ActivityLog.txt", "Methed:ManageWinningResult , Id:" + Info.ActivityId + " , Msg:" + ex.Message);
                 return(false);
             }
             finally
             {
                 dbConnection.Close();
             }
         }
     }
 }
        public WorkflowModel StartNew(string creator, string processid, IWorkflowAuthority iauth)
        {
            var             mapper      = MapperHelper.GetMapper();
            WorkflowDao     workflowdao = new WorkflowDao(mapper);
            ActivityDao     activitydao = new ActivityDao(mapper);
            LinkDao         linkdao     = new LinkDao(mapper);
            ActivityAuthDao aadd        = new ActivityAuthDao(mapper);
            TaskDao         taskdao     = new TaskDao(mapper);
            WorkflowModel   model       = null;
            Workflow        wf          = this.value.ConvertTo <Workflow>();

            wf.ID      = null;
            wf.Creator = creator;
            wf.Status  = (int)WorkflowProcessStatus.Started;
            wf.WorkflowDefinitionID = this.value.ID;
            wf.ProcessID            = processid;
            workflowdao.Add(wf);

            var             activites        = this.ActivityDefinitionList;
            var             links            = this.LinkDefinitionList;
            List <Activity> activityEntities = new List <Activity>();

            foreach (var a in activites)
            {
                Activity activity = a.Value.ConvertTo <Activity>();
                activity.Creator              = creator;
                activity.ID                   = null;
                activity.WorkflowID           = wf.ID;
                activity.ActivityDefinitionID = a.Value.ID;
                activity.Title                = a.Value.Title;
                activity.Status               = (int)ActivityProcessStatus.Started;

                List <ActivityAuth> authList = new List <ActivityAuth>();

                //如果是开始节点,就设置为已处理
                if (this.Root.Equals(a))
                {
                    activity.Status      = (int)ActivityProcessStatus.Processed;
                    activity.ProcessTime = DateTime.Now;
                }
                if (this.Root.Children.Count > 0 && this.Root.Children[0].Equals(a))
                {
                    activity.Status = (int)ActivityProcessStatus.Processing;
                }
                activitydao.Add(activity);
                activityEntities.Add(activity);

                //权限处理
                foreach (var ad in a.AuthDefinition)
                {
                    ActivityAuth auth = ad.ConvertTo <ActivityAuth>();
                    auth.Creator    = creator;
                    auth.WorkflowID = wf.ID;
                    auth.ActivityID = activity.ID;
                    auth.ID         = null;
                    auth.ActivityAuthDefinitionID = ad.ID;
                    aadd.Add(auth);
                    authList.Add(auth);
                }

                //如果是第二节点,就设置成正在处理
                if (this.Root.Children.Count > 0 && this.Root.Children[0].Equals(a))
                {
                    ActivityModel activitymodel = new ActivityModel
                    {
                        Value = activity,
                    };
                    var idlist   = iauth.GetUserIDList(authList);
                    var tasklist = activitymodel.GetTask(creator, idlist);
                    foreach (var task in tasklist)
                    {
                        taskdao.Add(task);
                    }
                }
            }

            foreach (var l in links)
            {
                Link link = l.Value.ConvertTo <Link>();
                link.Creator          = creator;
                link.WorkflowID       = wf.ID;
                link.ID               = null;
                link.LinkDefinitionID = l.Value.ID;
                var fromactivity = activityEntities.Find(t => t.ActivityDefinitionID == l.Value.FromActivityDefinitionID);
                var totactivity  = activityEntities.Find(t => t.ActivityDefinitionID == l.Value.ToActivityDefinitionID);
                if (fromactivity != null)
                {
                    link.FromActivityID = fromactivity.ID;
                }
                if (totactivity != null)
                {
                    link.ToAcivityID = totactivity.ID;
                }
                linkdao.Add(link);
            }

            model = WorkflowModel.Load(wf.ID);
            return(model);
        }
Пример #29
0
        public void Process(ActivityModel activity, Approval approval, string processor, IWorkflowAuthority auth)
        {
            //已经处理过就不能再处理
            if (activity.Value.Status == (int)ActivityProcessStatus.Processed)
            {
                return;
            }
            //MonitorCache.GetInstance().PushMessage(new CacheMessage { Message = "activityid:" + activity.Value.ID + " next activity status:" + activity.Value.Status.ToString() }, CacheEnum.FormMonitor);
            ISqlMapper  mapper      = MapperHelper.GetMapper();
            ActivityDao activitydao = new ActivityDao(mapper);
            TaskDao     taskdao     = new TaskDao(mapper);

            //设置当前活动点状态
            activity.Value.Status      = (int)ActivityProcessStatus.Processed;
            activity.Value.ProcessTime = DateTime.Now;
            activity.Value.LastUpdator = processor;
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity {
                    Status = activity.Value.Status, ProcessTime = activity.Value.ProcessTime, LastUpdator = activity.Value.LastUpdator
                },
                ActivityQueryForm = new ActivityQueryForm {
                    ID = activity.Value.ID
                }
            });
            var task = activity.GetUserProcessingTask(processor);

            if (task == null)
            {
                throw new Exception("环节中没有你的任务,无法进行审批操作");
            }
            task.Status      = (int)TaskProcessStatus.Processed;
            task.ProcessTime = DateTime.Now;
            task.LastUpdator = processor;
            //处理任务
            taskdao.Update(new TaskUpdateForm
            {
                Entity = new Task {
                    ProcessTime = task.ProcessTime, Status = task.Status, LastUpdator = task.LastUpdator
                },
                TaskQueryForm = new TaskQueryForm {
                    ID = task.ID
                },
            });
            //设置下个活动点的状态
            if (activity.Children.Count > 0)
            {
                foreach (var next in activity.Children)
                {
                    string nextactivityid    = next.Value.ID;
                    var    nextActivityModel = next as ActivityModel;
                    nextActivityModel.Value.Status      = (int)ActivityProcessStatus.Processing;
                    nextActivityModel.Value.LastUpdator = processor;
                    activitydao.Update(new ActivityUpdateForm
                    {
                        Entity = new Activity {
                            Status = nextActivityModel.Value.Status, LastUpdator = nextActivityModel.Value.LastUpdator
                        },
                        ActivityQueryForm = new ActivityQueryForm {
                            ID = nextactivityid
                        },
                    });

                    List <string> useridList = auth.GetUserIDList(nextActivityModel.Auth);
                    //新增下个活动点的任务
                    var tasklist = nextActivityModel.GetTask(processor, useridList);
                    foreach (var t in tasklist)
                    {
                        nextActivityModel.Tasks.Add(t);
                        taskdao.Add(t);
                    }
                }
            }
        }
        public void Process(ActivityModel activity, Approval approval, string processor, IWorkflowAuthority auth)
        {
            if (approval == null) throw new Exception("审批意见不能为null");
            if (string.IsNullOrEmpty(approval.Remark)) throw new Exception("审批意见不能为空");
            //已经处理过就不能再处理
            if (activity.Value.Status == (int)ActivityProcessStatus.Processed) return;
            ISqlMapper mapper = MapperHelper.GetMapper();
            ActivityDao activitydao = new ActivityDao(mapper);
            TaskDao taskdao = new TaskDao(mapper);
            activity.Value.Status = (int)ActivityProcessStatus.Started;
            activity.Value.ProcessTime = DateTime.Now;
            activity.Value.LastUpdator = processor;

            //设置当前活动点状态
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity { Status = activity.Value.Status, ProcessTime = activity.Value.ProcessTime, LastUpdator = activity.Value.LastUpdator },
                ActivityQueryForm = new ActivityQueryForm { ID = activity.Value.ID }
            });
            //新增审批意见
            if (approval != null)
            {
                ApprovalDao ad = new ApprovalDao(mapper);
                approval.Creator = processor;
                approval.ActivityID = activity.Value.ID;
                approval.WorkflowID = activity.Value.WorkflowID;
                ad.Add(approval);
                activity.OwnerWorkflow.Approval.Add(approval);
            }
            //处理当前流程所有任务,设置为已处理
            var task = activity.GetUserProcessingTask(processor);
            if (task == null) throw new Exception("环节中没有你的任务,无法进行审批操作");
            task.ProcessTime = DateTime.Now;
            task.Status = (int)TaskProcessStatus.Processed;
            task.LastUpdator = processor;
            taskdao.Update(new TaskUpdateForm
            {
                Entity = new Task { ProcessTime = task.ProcessTime, Status = task.Status, LastUpdator = task.LastUpdator },
                TaskQueryForm = new TaskQueryForm { ActivityID = task.ActivityID },
            });
            //把所有活动点的状态清空
            activity.OwnerWorkflow.Root.GetList().ForEach(t => t.Value.Status = activity.Value.Status);
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity { Status = activity.Value.Status },
                ActivityQueryForm = new ActivityQueryForm { WorkflowID = activity.Value.WorkflowID }
            });
            activity.OwnerWorkflow.Root.Value.Status = (int)ActivityProcessStatus.Processing;
            var root = activity.OwnerWorkflow.Root;
            activitydao.Update(new ActivityUpdateForm
            {
                Entity = new Activity { Status = root.Value.Status },
                ActivityQueryForm = new ActivityQueryForm { ID = root.Value.ID },
            });
            //生成退回任务
            Task roottask = new Task
            {
                ActivityID = root.Value.ID,
                Name = root.Value.Name,
                Title = root.Value.Title + "(退回)",
                UserID = activity.OwnerWorkflow.Value.Creator,
                WorkflowID = activity.OwnerWorkflow.Value.ID,
                Status = (int)TaskProcessStatus.Started,
                Creator = processor,
            };
            root.Tasks.Add(roottask);
            taskdao.Add(roottask);
        }
        public WorkflowModel StartNew(string creator, string processid, IWorkflowAuthority iauth)
        {
            var mapper = MapperHelper.GetMapper();
            WorkflowDao workflowdao = new WorkflowDao(mapper);
            ActivityDao activitydao = new ActivityDao(mapper);
            LinkDao linkdao = new LinkDao(mapper);
            ActivityAuthDao aadd = new ActivityAuthDao(mapper);
            TaskDao taskdao = new TaskDao(mapper);
            WorkflowModel model = null;
            Workflow wf = this.value.ConvertTo<Workflow>();
            wf.ID = null;
            wf.Creator = creator;
            wf.Status = (int)WorkflowProcessStatus.Started;
            wf.WorkflowDefinitionID = this.value.ID;
            wf.ProcessID = processid;
            workflowdao.Add(wf);

            var activites = this.ActivityDefinitionList;
            var links = this.LinkDefinitionList;
            List<Activity> activityEntities = new List<Activity>();
            foreach (var a in activites)
            {
                Activity activity = a.Value.ConvertTo<Activity>();
                activity.Creator = creator;
                activity.ID = null;
                activity.WorkflowID = wf.ID;
                activity.ActivityDefinitionID = a.Value.ID;
                activity.Title = a.Value.Title;
                activity.Status = (int)ActivityProcessStatus.Started;

                List<ActivityAuth> authList = new List<ActivityAuth>();

                //如果是开始节点,就设置为已处理
                if (this.Root.Equals(a))
                {
                    activity.Status = (int)ActivityProcessStatus.Processed;
                    activity.ProcessTime = DateTime.Now;
                }
                if (this.Root.Children.Count > 0 && this.Root.Children[0].Equals(a))
                {
                    activity.Status = (int)ActivityProcessStatus.Processing;
                }
                activitydao.Add(activity);
                activityEntities.Add(activity);

                //权限处理
                foreach (var ad in a.AuthDefinition)
                {
                    ActivityAuth auth = ad.ConvertTo<ActivityAuth>();
                    auth.Creator = creator;
                    auth.WorkflowID = wf.ID;
                    auth.ActivityID = activity.ID;
                    auth.ID = null;
                    auth.ActivityAuthDefinitionID = ad.ID;
                    aadd.Add(auth);
                    authList.Add(auth);
                }

                //如果是第二节点,就设置成正在处理
                if (this.Root.Children.Count > 0 && this.Root.Children[0].Equals(a))
                {
                    ActivityModel activitymodel = new ActivityModel
                    {
                        Value = activity,
                    };
                    var idlist = iauth.GetUserIDList(authList);
                    var tasklist = activitymodel.GetTask(creator, idlist);
                    foreach (var task in tasklist)
                    {
                        taskdao.Add(task);
                    }
                }
            }

            foreach (var l in links)
            {
                Link link = l.Value.ConvertTo<Link>();
                link.Creator = creator;
                link.WorkflowID = wf.ID;
                link.ID = null;
                link.LinkDefinitionID = l.Value.ID;
                var fromactivity = activityEntities.Find(t => t.ActivityDefinitionID == l.Value.FromActivityDefinitionID);
                var totactivity = activityEntities.Find(t => t.ActivityDefinitionID == l.Value.ToActivityDefinitionID);
                if (fromactivity != null)
                {
                    link.FromActivityID = fromactivity.ID;
                }
                if (totactivity != null)
                {
                    link.ToAcivityID = totactivity.ID;
                }
                linkdao.Add(link);
            }

            model = WorkflowModel.Load(wf.ID);
            return model;
        }