Example #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="list"></param>
        /// <param name="write_enum"></param>
        private void WriteInDB(List<SMSModel_QueryReceive> list,ref PMS.Model.Enum.WriteInDb_Enum write_enum)
        {
            IS_SMSRecord_CurrentBLL smsRecord_CurrentBLL = new PMS.BLL.S_SMSRecord_CurrentBLL();
            //思路
            /*尽量减少反复连接数据库的操作
              先从list中提取msgid不同的对象
             */

            //1 查出不同的msgid集合(IEnmuerable)
            var list_distinct_msgid = from s in list.Distinct(new PMS.Model.EqualCompare.SMSModel_QueryReceive_Compare())
                                      select s.msgId;
            write_enum = PMS.Model.Enum.WriteInDb_Enum.ok;
            //2 遍历
            foreach (var item in list_distinct_msgid)
            {
                //2.1 取出对应msgid对应的集合
                var list_temp = (from s in list
                                where s.msgId == item
                                select s).ToList();
                //2.2批量写入
                try
                {
                    smsRecord_CurrentBLL.SaveReceieveMsg(list_temp,item);

                    Console.WriteLine("写入成功{0}个人其对应msgid为{1}",list_temp.Count(),item);
                }
                catch (Exception ex)
                {
                    write_enum =PMS.Model.Enum.WriteInDb_Enum.error;
                }
            }
        }
Example #2
0
 public static PMS.Model.DTO.Core.Master.Department MapDepartmentDTOToMasterDepartmentDTO(PMS.Model.DTO.Core.Department departmentDTO)
 {
     PMS.Model.DTO.Core.Master.Department dto = new PMS.Model.DTO.Core.Master.Department()
     {
         Id = Convert.ToInt32(departmentDTO.DepartmentId)
     };
     return dto;
 }
Example #3
0
 public void AddRole(PMS.Model.DTO.Core.Security.UserRole role)
 {
     if (role != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_roles))
         {
             lst_roles = new List<PMS.Model.DTO.Core.Security.UserRole>();
         }
         lst_roles.Add(role);
     }
 }
Example #4
0
 public static PMS.Model.DTO.Master.Action MapActionEntityToDTO(PMS.Model.Context.PMS_MST_ACTION entity)
 {
     PMS.Model.DTO.Master.Action obj_dto = new DTO.Master.Action()
     {
         Id = entity.ID,
         Name = entity.NAME,
         Description = entity.DESCRIPTION,
         Active = entity.ACTIVE
     };
     return obj_dto;
 }
Example #5
0
 public void AddOwner(PMS.Model.DTO.Core.Task.Owner owner)
 {
     if (owner != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_owners))
         {
             lst_owners = new List<PMS.Model.DTO.Core.Task.Owner>();
         }
         lst_owners.Add(owner);
     }
 }
Example #6
0
 /// <summary>
 /// 执行发送作业(延时或立刻)
 /// 需要先注册发送方法
 /// </summary>
 /// <param name="model">发送对象</param>
 /// <param name="response">响应</param>
 public void JobsRun(PMS.Model.CombineModel.SendAndMessage_Model model, out SMSModel_Receive receive)
 {
     receive = new SMSModel_Receive();
     if (DoSendJobs != null)
     {
         DoSendJobs(model,out receive);
     }
     else
     {
         //response = new PMS.Model.Message.BaseResponse() { Message = "未绑定方法", Success = false };
     }
 }
Example #7
0
 public static PMS.Model.DTO.Core.Master.Department MapDepartmentEntityToDTO(PMS.Model.Context.MST_DEPARTMENT entity)
 {
     PMS.Model.DTO.Core.Master.Department obj_dto = new DTO.Core.Master.Department()
     {
         Id = entity.ID,
         Name = entity.NAME,
         Abbreviation = entity.ABBREVIATION,
         Description = entity.DESCRIPTION,
         Active = entity.ACTIVE
     };
     return obj_dto;
 }
Example #8
0
 public static PMS.Model.Context.PMS_APPRAISAL_CAREER_DEVELOPMENT MapAppraisalCareerDevelopmentDTOToEntity(PMS.Model.DTO.Appraisal.CareerDevelopment dto)
 {
     PMS.Model.Context.PMS_APPRAISAL_CAREER_DEVELOPMENT obj_entity = new Context.PMS_APPRAISAL_CAREER_DEVELOPMENT()
     {
         ID = dto.Id,
         APPRAISAL_ID = dto.Appraisal == null ? (int?)null : dto.Appraisal.Id,
         //SECTION_ID = dto.Section == null ? (int?)null : dto.Section.Id,
         CAREER_PLAN = dto.CareerPlans,
         SHORT_TERM_GOALS = dto.ShortTermGoals,
         LEARNING_PLAN = dto.LearningPlans
     };
     return obj_entity;
 }
Example #9
0
 public static PMS.Model.Context.PMS_APPRAISAL_CAREER_DEVELOPMENT_COMMENT MapAppraisalCareerDevelopmentCommentDTOToEntity(PMS.Model.DTO.Appraisal.CareerDevelopmentComment dto)
 {
     PMS.Model.Context.PMS_APPRAISAL_CAREER_DEVELOPMENT_COMMENT obj_entity = new Context.PMS_APPRAISAL_CAREER_DEVELOPMENT_COMMENT()
     {
         ID = dto.Id,
         ITEM_ID = dto.AppraisalCareerDevelopment == null ? (int?)null : dto.AppraisalCareerDevelopment.Id,
         COMMENT = dto.Comments,
         COMMENTED_BY_ID = dto.Commentor == null ? (int?)null : dto.Commentor.Id,
         COMMENTED_TIMESTAMP = dto.CommentedTimestamp,
         FORM_SAVE_ONLY = dto.FormSaveOnly
     };
     return obj_entity;
 }
        public static void InsertListModel(SMSModel_QueryReceive item, ref List<SMSModel_QueryReceive> list, ref PMS.Model.Enum.MatchCondition_Enum state)
        {
            if(item != null)
            {
                //将拥有符合条件的msgid的item存入list
                list.Add(item);
                state = PMS.Model.Enum.MatchCondition_Enum.conform;
            }
            else
            {

            }
        }
Example #11
0
        public static PMS.Model.DTO.Appraisal.CareerDevelopmentComment MapAppraisalCareerDevelopmentCommentEntityToDTO(PMS.Model.Context.PMS_APPRAISAL_CAREER_DEVELOPMENT_COMMENT entity)
        {
            PMS.Model.DTO.Appraisal.CareerDevelopmentComment obj_dto = new PMS.Model.DTO.Appraisal.CareerDevelopmentComment()
            {
                Id = entity.ID,
                ItemId = entity.ITEM_ID,
                Comments = entity.COMMENT,
                Commentor = CoreMapper.MapEmployeeEntityToDTO(entity.EMPLOYEE),
                CommentedTimestamp = entity.COMMENTED_TIMESTAMP,
                FormSaveOnly = entity.FORM_SAVE_ONLY
            };

            obj_dto.AppraisalCareerDevelopment = entity.PMS_APPRAISAL_CAREER_DEVELOPMENT == null ? null : MapAppraisalCareerDevelopmentEntityToDTO(entity.PMS_APPRAISAL_CAREER_DEVELOPMENT, false);

            return obj_dto;
        }
Example #12
0
        /// <summary>
        /// 执行添加作业方法
        /// 1 先向数据库中的JobInfo表中写入相应数据(手动赋予JobState属性为running)
        /// 2 执行Quartz的新添作业方法
        /// 3 之前未注意到:
        /// 需要获取发送信息的内容,以及查询时保存的一些参数(先实现发送信息的内容)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ContentResult DoAddJobInfo(PMS.Model.J_JobInfo model)
        {
            //***此时传入的model中已经包含了uid的值了
            if (model.NextRunTime <= DateTime.MinValue)
            {
                model.NextRunTime = DateTime.Now;
            }
            if (model.EndRunTime <= DateTime.MinValue)
            {
                model.EndRunTime = DateTime.MaxValue;
            }

               // model.EndRunTime = model.StartRunTime.AddMinutes(1);
            model.CreateTime = DateTime.Now;
            //创建时手动添加该作业的状态
            model.JobState = Convert.ToInt32(PMS.Model.Enum.JobState_Enum.running);
            model.Interval_quartz = Common.Config.QueryQuartzConfigHelper.GetIntervalQueryAgain();
            //注意需要修改此bll中实现的方法,不仅创建J_JobInfo还要创建与UserInfo的关联关系
            //***注意此时的顺序是先向数据库中的JobInfo表写入再执行Quartz操作(向数据库中写入后model中会有JID)——但应该先执行Quartz的添加作业操作****
            //1 将状态写入数据库
            var response = jobInfoBLL.AddJobInfo(model);
            return this.ToResponse(response);

            //11月20日 备注掉
            #region
            //if (jobInfoBLL.AddJobInfo(model).Success)
            //{
            //    //注意:
            //    //在创建之后此model中的JID已经有值了,可以直接获取该JID的值
            //    //2 操作Quartz操作类
            //    //PMS.Model.SMSModel.SMSModel_Send data_temp = new PMS.Model.SMSModel.SMSModel_Send();

            //    //jobService.AddScheduleJob(model, data_temp);
            //    return Content("ok");
            //}

            //else
            //{
            //    return Content("error");
            //}
            #endregion
        }
Example #13
0
 public static PMS.Model.DTO.Core.Employee MapEmployeeEntityToDTO(PMS.Model.Context.EMPLOYEE entity)
 {
     PMS.Model.DTO.Core.Employee obj_dto = new DTO.Core.Employee()
     {
         Id = entity.ID,
         FirstName = entity.FIRST_NAME,
         LastName = entity.LAST_NAME,
         PreferredName = entity.PREFERRED_NAME,
         DomainId = entity.DOMAIN_ID,
         Department = entity.DEPARTMENT == null ? null : MapEmployeeDepartmentToDTO(entity.DEPARTMENT),
         ACRGrade = entity.MST_ACR_GRADE == null ? null : MapGradeEntityToDTO(entity.MST_ACR_GRADE),
         EmploymentType = entity.MST_EMPLOYMENT_TYPE == null ? null : MapEmploymentTypeEntityToDTO(entity.MST_EMPLOYMENT_TYPE),
         Active = entity.ACTIVE,
         OfficeEmailAddress = entity.OFFICE_EMAIL_ADDRESS,
         ContactNo =entity.OFFICE_TEL_NUMBER,
         SeatLocation=entity.OFFICE_SEAT_LOCATION,
         DateOfDeparture = entity.DATE_OF_DEPARTURE,
         DateOfHire = entity.DATE_OF_HIRE,
         SMPEmploeeId=entity.SENIOR_MANAGEMENT_TEAM_MEMBER_ID
     };
     return obj_dto;
 }
Example #14
0
 /// <summary>
 /// 短信发送
 /// </summary>
 /// <param name="smsdata"></param>
 /// <returns></returns>
 public bool SendMsg(PMS.Model.CombineModel.SendAndMessage_Model model, out /*PMS.Model.Message.BaseResponse response*/SMSModel_Receive receive)
 {
     SendJobManagement jobManagement = new SendJobManagement();
     //判断是否开启定时发送功能
     if (model.Model_Message.isTiming)
     {
         //绑定定时发送功能
         //使用作业调度
         jobManagement.DoSendJobs += SendMsgbyDelayed;
     }
     else
     {
         //绑定立刻发送功能
         jobManagement.DoSendJobs += SendMsgbyNow;
     }
     //不管具体绑定的是哪个方法,调用该发送方法
     //SMSModel_Receive receive = new SMSModel_Receive();
     jobManagement.JobsRun(model,out receive);
     //response = new PMS.Model.Message.BaseResponse() { Success = true };
     return false;
 }
Example #15
0
        /// <summary>
        /// 步骤一 获取传入的群组及部门获取对应联系人
        ///获取要删除的联系人id
        ///从联系人集合中去除要删除的联系人获得最终要发送的联系人
        /// </summary>
        /// <param name="model"></param>
        /// <param name="delegateGetPersonList"></param>
        /// <returns></returns>
        public List<string> GetFinalPersonPhoneList(PMS.Model.ViewModel.ViewModel_Message model,DelegateSMS.delegate_GetPersonListByGroupDepartment delegateGetPersonList)
        {
            //List<P_PersonInfo> delegate_GetPersonListByGroupDepartment(string dids, string gids, out int rowCount, int pageSize = -1, int pageIndex = -1);
               // Func<string,string,int,int,int,List<P_PersonInfo>>
            //Func<string,string,>
            //Action<string,string>
            //Action<int, int, string> act = (a, b, c) =>
            //  {

            //  };
            //重新梳理并做抽象
            /*步骤一:
                获取传入的群组及部门获取对应联系人
                获取要删除的联系人id
                从联系人集合中去除要删除的联系人获得最终要发送的联系人
            */
            //1 获取要去除的 联系人id 数组
            var ids = model.PersonId_Int;
            int count = 0;
            string dids_str = null;
            string gids_str = null;
            if (model.GroupIds == null)
            {
                gids_str = "";
            }

            if (model.DepartmentIds == null)
            {
                dids_str = "";
            }

            if (model.GroupIds != null)
            {
                foreach (var item in model.GroupIds)
                {
                    gids_str += item.ToString() + ",";
                }
            }

            if (model.DepartmentIds != null)
            {
                foreach (var item in model.DepartmentIds)
                {
                    dids_str += item.ToString() + ",";
                }
            }

            //2 根据传入的群组及部门id获取对应的联系人
            List<P_PersonInfo> list_person = delegateGetPersonList(dids_str, gids_str, out count);

            //3 去除不需要的联系人,获得最终联系人集合
            list_person = (from p in list_person
                           where !ids.Contains(p.PID)
                           select p).ToList();

            //4 获取联系人集合中的电话生成电话集合
            List<string> list_phones = new List<string>();
            list_person.ForEach(p => list_phones.Add(p.PhoneNum.ToString()));

            return list_phones;
        }
Example #16
0
        /// <summary>
        /// 在发送短信之后执行
        ///  步骤五:
        ///  创建短信内容至数据库 
        ///  创建发送记录至数据库
        /// (此处应放在SMSFactory.SendMsg或写在JobInstance中的SendJob.Exceuted)
        /// </summary>
        /// <param name="model"></param>
        /// <param name="receive"></param>
        /// <param name="list_phones"></param>
        /// <param name="redis_list_id">redis中保存的list的key</param>
        /// <param name="redis_expirationDate">redis中保存集合的过期时间(默认72小时)</param>
        /// <returns></returns>
        public bool AfterSend(PMS.Model.ViewModel.ViewModel_Message model, SMSModel_Receive receive, List<string> list_phones,string redis_list_id,int redis_expirationDate=72)
        {
            //5 将发送的短信以及提交响应存入SMSContent
            var mid = model.SMSMissionID;
            var uid = model.UID;
            bool isSaveMsgOk = smsContentBLL.SaveMsg(receive, model.Content, mid, uid);

            //在current表中存入发送信息,在query之前,表中的StatusCode默认为98,DescContent默认为"暂时未收到查询回执"
            //7月28日 注意此处已修改方法为:CreateReceieveMsg!!!
            if (!smsRecord_CurrentBLL.CreateReceieveMsg(receive.msgid, list_phones))
            {
                return false;
            }

            /*步骤六:
                    写入redis缓存中
                    (此处应放在SMSFactory.SendMsg中或写在JobInstance中的SendJob.Exceuted)
            */
            ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(redis_list_id);

            StringRedisHelper redisStrhelper = new StringRedisHelper();
            redisStrhelper.Set(receive.msgid, "1", DateTime.Now.AddMinutes(redis_expirationDate));
            return true;
        }
Example #17
0
        /// <summary>
        /// 步骤二 获取添加的临时联系人
        /// 向数据库中写入这些临时联系人
        /// </summary>
        /// <param name="model"></param>
        /// <param name="personBLL"></param>
        /// <param name="groupBLL"></param>
        /// <returns></returns>
        public List<string> AddAndGetTempPersons(PMS.Model.ViewModel.ViewModel_Message model,IP_PersonInfoBLL personBLL,IP_GroupBLL groupBLL)
        {
            /*步骤二:
                    获取添加的临时联系人
                    向数据库中写入这些临时联系人
            */
            //1.2 获取临时联系人的电话数组
            var phoneNums = model.PhoneNum_Str;
            //1.3 调用personBLL中的添加联系人方法,将临时联系人写入数据库(qu)
            string PName_Temp = "临时联系人";

            //1.4 目前默认只添加到全部联系人群组中
            int groupID_AllContacts = groupBLL.GetListBy(a => a.GroupName.Equals("全部联系人")).FirstOrDefault().GID;

            List<int> groupIds = new List<int>();
            groupIds.Add(groupID_AllContacts);
            //1.5 循环写入数据库
            bool isSaveTempPersonOk = false;
            if (phoneNums != null && phoneNums.Length != 0)
            {
                foreach (var item in phoneNums)
                {
                    //1.6 判断输入的联系人在是否存在在数据库中

                    if (!personBLL.AddValidation(item))
                    {
                        //1.7 不存在在数据库中,则将临时联系人添加进数据库
                        isSaveTempPersonOk = personBLL.DoAddTempPerson(PName_Temp, item, true, groupIds);
                        if (!isSaveTempPersonOk)
                        {
                           // return false;
                        }
                    }
                    //1.7 存在在数据库中,且已经在发送列表中,这种情况需讨论

                }

            }
            return phoneNums.ToList();
        }
Example #18
0
        /// <summary>
        /// 判断传入的首元素的时间是否超过传入的时间间隔
        /// </summary>
        /// <param name="obj">首元素</param>
        /// <param name="ts">允许的最大时间间隔</param>
        /// <returns></returns>
        public bool CheckFirstObjOvertime(PMS.Model.QueryModel.Redis_ListMsgIdObj obj, TimeSpan ts)
        {
            //
            TimeSpan sp_now = new TimeSpan(DateTime.Now.Ticks);

            TimeSpan sp_target = new TimeSpan(obj.Dt.Ticks);

            //若对象内的时间已经超过指定的时间范围,则返回false
            if (sp_now.Subtract(sp_target).Duration() > ts)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
Example #19
0
        /// <summary>
        ///  根据条件查询:角色名,备注
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="rowCount"></param>
        /// <param name="model"></param>
        /// <param name="isAsc"></param>
        /// <param name="isMiddle"></param>
        /// <returns></returns>
        public List<RoleInfo> GetRoleRecordListByQuery(int pageIndex, int pageSize, ref int rowCount, PMS.Model.ViewModel.ViewModel_RoleInfo_QueryInfo model, bool isAsc, bool isMiddle)
        {
            //1. 找到所有未被删除的用户对象列表,并转为中间件
            var query = GetListBy(a => a.DelFlag == false).ToList().Select(u => u.ToMiddleModel()).ToList();
            //2. 根据用户名查询
            if (model.RoleName != null)
            {
                query = query.Where(c =>c.RoleName.Contains(model.RoleName)).ToList();
            }
            //3. 根据备注查询

            if (model.Remark != null)
            {
                query = query.Where(c => c.Remark != null && c.Remark.Contains(model.Remark)).ToList();
            }

            //4. 获取查询结果条数
            rowCount = query.Count();
            return ToListByPage(query, pageIndex, pageSize, ref rowCount, isAsc, false);
        }
Example #20
0
        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool EditJobTemplate(PMS.Model.ViewModel.ViewModel_JobTemplate model)
        {
            if(model != null)
            {
                var jobTemplate = this.GetListBy(p => p.JTID == model.JTID).FirstOrDefault();
                jobTemplate.JobClassName = model.JobClassName;
                jobTemplate.JobType = model.JobType;
                jobTemplate.CronStr = model.CronStr;
                jobTemplate.Remark = model.Remark;
                jobTemplate.JobGroup = model.JobGroup;

                try
                {
                    this.Update(jobTemplate);
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
            }
            return false;
        }
Example #21
0
 public void AddTrail(PMS.Model.DTO.Appraisal.Trail trail)
 {
     if (trail != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_appraisal_trails))
         {
             lst_appraisal_trails = new List<Trail>();
         }
         lst_appraisal_trails.Add(trail);
     }
 }
Example #22
0
 public void AddReviewer(PMS.Model.DTO.Appraisal.Reviewer reviewer)
 {
     if (reviewer != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_reviewers))
         {
             lst_reviewers = new List<PMS.Model.DTO.Appraisal.Reviewer>();
         }
         lst_reviewers.Add(reviewer);
     }
 }
Example #23
0
 public void AddKPI(PMS.Model.DTO.Appraisal.KPI kpi)
 {
     if (kpi != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_kpi))
         {
             lst_kpi = new List<KPI>();
         }
         lst_kpi.Add(kpi);
     }
 }
Example #24
0
 public void AddCoreValue(PMS.Model.DTO.Appraisal.CoreValue coreValue)
 {
     if (coreValue != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_core_values))
         {
             lst_core_values = new List<CoreValue>();
         }
         lst_core_values.Add(coreValue);
     }
 }
Example #25
0
        /// <summary>
        /// 步骤三 获取短信内容
        /// 封装要提交至联通接口的发送对象(含联系人电话号码)
        /// </summary>
        /// <param name="model">短信对象</param>
        /// <param name="list_phones"></param>
        /// <returns></returns>
        public SMSModel_Send ToSendModel(PMS.Model.ViewModel.ViewModel_Message model,List<string> list_phones)
        {
            /*步骤三
                    获取短信内容
                    封装要提交至联通接口的发送对象
                    (含联系人电话号码)
            */
            //2 获取短信内容
            var content = model.Content;

            //2.1 设置发送对象相关参数
            string subCode = "";//短信子码"74431",接收回馈信息用
            string sign = "【国家海洋预报台】"; //短信签名,!仅在!发送短信时用= "【国家海洋预报台】";
            //短信发送与查询所需参数
            string smsContent = content;//短信内容
            string sendTime;//计划发送时间,为空则立即发送
                            //3 对短信内容进行校验——先暂时不做

            //6月27日新增将List电话集合转成用,拼接的字符串
            //查询时不需要联系人电话
            SMSModel_Send sendMsg = new SMSModel_Send()
            {
                account = "dh74381",
                password = "******",
                content = content,
                phones = list_phones.ToArray(),
                sendtime = DateTime.Now
            };
            return sendMsg;
        }
Example #26
0
        /// <summary>
        /// 延时发送
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool SendMsgbyDelayed(PMS.Model.CombineModel.SendAndMessage_Model model,out  SMSModel_Receive response)
        {
            //response = new PMS.Model.Message.BaseResponse();
            //1 创建quartz父类客户端
            // 不使用服务因为此处需要通过反射的方式创建作业实例
            //Quartz_Service.JobServiceClient client = new Quartz_Service.JobServiceClient();
            //ServiceReference_QuartzService.JobServiceClient client = new ServiceReference_QuartzService.JobServiceClient();
            QuartzJobFactory.IJobService client = new QuartzJobFactory.JobService();
            //2 创建发送作业实例(非模板)
            /*此处需要实现:
                           1)向数据库写入创建的新的作业实例
                           2)创建该作业实例的关联表
            */
            //var jobTemplateInstance= jobTemplateBLL.GetListBy(t => t.JTID == 3);
            //jobInfoBLL.Create(new J_JobInfo() { JobName = "发送作业", JobClassName = "SendJob", NextRunTime=model.Model_Message.NextRunTime });
            //找到对应的作业模板(发送作业模板)
            //2.1 查找当前用户
            var user_current= userInfoBLL.GetListBy(u =>u.ID==  model.Model_Message.UID).FirstOrDefault();
            //2.2 根据当前用户找到指定类型(jobType)的作业模板
            var jobTemplate_target = (from t in user_current.J_JobTemplate
                                     where t.JobType == Convert.ToInt32(PMS.Model.Enum.JobType_Enum.sendJob)
                                     select t).FirstOrDefault();
            //2.3 根据作业模板创建作业实例
            //    调用J_JobInfoBLL中的AddJobInfo方法创建作业实例
            J_JobInfo jobInstance = new J_JobInfo()
            {
                UID = model.Model_Message.UID,
                CreateTime = DateTime.Now,
                EndRunTime = model.Model_Message.EndRunTime == DateTime.MinValue ? model.Model_Message.StartRunTime : model.Model_Message.EndRunTime,//此处加入判断,若EndRunTime时间为1/1/1/1这种情况先将起始时间赋给他
                NextRunTime = model.Model_Message.NextRunTime == DateTime.MinValue ? model.Model_Message.StartRunTime : model.Model_Message.NextRunTime,
                StartRunTime = model.Model_Message.StartRunTime,
                JobClassName = jobTemplate_target.JobClassName,
                JobName = jobTemplate_target.JTName,
                JobGroup = jobTemplate_target.JobGroup
            };
            //执行以下操作
            //var jobInstance = jobInfoBLL.GetListBy(j => j.JID == 27).FirstOrDefault();
            //3 创建JobData
            var jobData = new PMS.Model.JobDataModel.SendJobDataModel()
            {

                //4 将前台传入的model值赋给JobData中的JobValue
                JobDataValue=new PMS.Model.CombineModel.SendAndMessage_Model()
                {
                     Model_Send=new SMSModel_Send()
                     {
                         account = model.Model_Send.account,
                         content = model.Model_Send.content,
                         msgid = model.Model_Send.msgid,
                         password = model.Model_Send.password,
                         phones = model.Model_Send.phones,
                         sendtime = model.Model_Send.sendtime,
                         subcode = model.Model_Send.subcode

                     },

                    Model_Message =new PMS.Model.ViewModel.ViewModel_Message()
                    {
                        UID = model.Model_Message.UID,
                        Content=model.Model_Send.content,
                        SMSMissionID=model.Model_Message.SMSMissionID

                    }
                }
                //JobDataValue = new PMS.Model.SMSModel.SMSModel_Send()
                //{
                //    account = model.Model_Send.account,
                //    content = model.Model_Send.content,
                //    msgid = model.Model_Send.msgid,
                //    password = model.Model_Send.password,
                //    phones = model.Model_Send.phones,
                //    sendtime = model.Model_Send.sendtime,
                //    subcode = model.Model_Send.subcode
                //}
            };

            //5 将发送作业实例添加至计划任务中
            //注意此作业实例中需要含UID
            jobInfoBLL.AddJobInfo(jobInstance, jobData);

            //**** 11-16 创建jobInfo与其他的关联(以便在作业管理页面中显示)
            //在job的bll层中创建作业(同时写入数据库,并添加至调度池中)
            /*var response=*/
            //12-6
            //统一写在JobInfoBLL层中的AddJobInfo方法中
            //QuartzProxy.QuartzServiceFacade quartzService = new QuartzProxy.QuartzServiceFacade(new QuartzProxy.QuartzServiceClientProxy());
            //var response_base= quartzService.AddScheduleJob(jobInstance, jobData);
            //client.AddScheduleJob(jobInstance, jobData);
            response = new SMSModel_Receive() { result="0"};
            return true;
        }
Example #27
0
 public WrappedObserver(PMS parent) => _parent = parent;
Example #28
0
 public WrappedSubscribable(PMS parent) => _parent = parent;
Example #29
0
        /// <summary>
        /// 立刻发送
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool SendMsgbyNow(PMS.Model.CombineModel.SendAndMessage_Model model, out SMSModel_Receive receiveModel)
        {
            //SMSModel_Receive receiveModel = new SMSModel_Receive();
            ServiceReference_SMSService.SMSServiceClient client = new ServiceReference_SMSService.SMSServiceClient();

            //重新梳理并做抽象
            #region 11-14 在控制器中已经调用这些方法(现写在控制器中),此处与控制器重复,注释掉
            ////1 根据选定的群组及部门获取相应的联系人
            //var list_PersonPhonesByGroupAndDepartment = GetFinalPersonPhoneList(model.Model_Message, GetPersonListByGroupDepartment);

            ////2 获取临时联系人电话集合

            //var list_tempPersonPhones = AddAndGetTempPersons(model.Model_Message, personBLL, groupBLL);

            ////2.2 获取最终的联系人电话集合
            //list_PersonPhonesByGroupAndDepartment.AddRange(list_tempPersonPhones);
            //var list_phones = list_PersonPhonesByGroupAndDepartment;

            ////3 转成发送对象
            //var sendMsg = ToSendModel(model.Model_Message, list_phones);

            /*步骤四
                    生成提交对象及短信及作业对象
                    由SMSFactory进行短信提交操作(并选择延时/立刻发送)
            */
            //4 短信发送
            //注意:desc:定时时间格式错误;
            //      result:定时时间格式错误
            //PMS.Model.CombineModel.SendAndMessage_Model sendandMsgModel = new PMS.Model.CombineModel.SendAndMessage_Model() { Model_Message = model, Model_Send = sendMsg };
            //model.Model_Send = sendMsg;
            #endregion
            // SMSModel_Receive receive = new SMSModel_Receive();
            PMS.Model.Message.BaseResponse response = new PMS.Model.Message.BaseResponse();
            client.SendMsg(model.Model_Send, out receiveModel);
            //receiveModel = new SMSModel_Receive() { msgid = "210cb72fe038484fb2952d0db96e0ae7", desc = "提交成功", result = "0", failPhones = new string[] { "" } };
            //发送之后执行将发送记录写会数据库的操作
            this.AfterSend(model.Model_Message, receiveModel, model.Model_Send.phones.ToList(), this.redis_list_id, this.Interval_OverTime);
            //SendMsg(model, out response);
            return true;
        }
Example #30
0
 public void AddAppraisalStage(PMS.Model.DTO.Appraisal.Stage appraisalStage)
 {
     if (appraisalStage != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_appraisal_stages))
         {
             lst_appraisal_stages = new List<Stage>();
         }
         lst_appraisal_stages.Add(appraisalStage);
     }
 }
Example #31
0
 public void AddComment(PMS.Model.DTO.Appraisal.SectionComment comment)
 {
     if (comment != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_comments))
         {
             lst_comments = new List<SectionComment>();
         }
         lst_comments.Add(comment);
     }
 }
Example #32
0
 public void AddApprover(PMS.Model.DTO.Appraisal.Approver approver)
 {
     if (approver != null)
     {
         if (Lib.Utility.Common.IsNullOrEmptyList(lst_approvers))
         {
             lst_approvers = new List<Approver>();
         }
         lst_approvers.Add(approver);
     }
 }