Esempio n. 1
0
        public void CreateAttachmentTopic(AttachmentTopicDto topicDto)
        {
            var topic = new AttachmentTopic(topicDto.TopicName, topicDto.Description, 
                topicDto.Subject, topicDto.Body,
                topicDto.ReportId, topicDto.SqlStatement, topicDto.Parameter, topicDto.CreatedBy);
            var taskDtos = topicDto.TopicTasks;
            if (taskDtos != null)
            {
                var tasks = (from task in taskDtos
                     select new TopicTask(topic.ID, (TaskSchedule) task.TaskSchedule, task.Month, task.Week, task.Day, task.Hour));
                topic.AddTopicTasks(tasks.ToArray());
            }

            var subscribers = topicDto.Subscribers;
            if (subscribers != null)
            {
                var taskSubcribers = (from subscriber in subscribers
                    select new Subscriber(topic.ID, subscriber.Email));
                topic.AddSubscribers(taskSubcribers.ToArray());
            }

            this._attachmentTopicRepository.Add(topic);
        }
        public ActionResult Index()
        {
            if (!TempData.ContainsKey(ReportId))
                return BlankView("There are not report or any fields to subscribe.");

            var reportId = (Guid) TempData[ReportId];
            var tableOrView = TempData[TableOrView] as string;
            var sql = TempData[Sql] as string;
            var sqlParameter = TempData[SqlParameter] as IDictionary<string, object>;
            var parameters = StorageParameter.ConvertParameterToString(sqlParameter);
            var subscribers = new List<SubscriberDto> {new SubscriberDto {Email = this.LoginUser.Email}};

            var model = new AttachmentTopicDto
            {
                TopicName = tableOrView,
                ReportId = reportId,
                SqlStatement = CryptoFactory.AES.Encrypt(sql),
                Parameter = CryptoFactory.AES.Encrypt(parameters),
                Subscribers = subscribers
            };

            this.ViewBagTask();
            return View(model);
        }
 /// <summary>
 /// 初始化一个新的<c>AttachmentJobHandler</c>实例
 /// </summary>
 /// <param name="attachmentTopic">附件主题对象</param>
 /// <param name="topicTasks">此时刻该附件正执行的任务集合</param>
 public AttachmentJobHandler(AttachmentTopicDto attachmentTopic, IEnumerable<TopicTaskDto> topicTasks)
 {
     this._attachmentTopic = attachmentTopic;
     this._topicTasks = topicTasks;
 }
 /// <summary>
 /// 初始化一个新的<c>AttachmentJobHandler</c>实例
 /// </summary>
 /// <param name="attachmentTopic">附件主题对象</param>
 public AttachmentJobHandler(AttachmentTopicDto attachmentTopic)
 {
     this._attachmentTopic = attachmentTopic;
 }
        public ActionResult UserSubscribe(AttachmentTopicDto model)
        {
            if (model.TopicTasks == null || !model.TopicTasks.Any())
                return BlankView("Create the topic failure. there are not any topic task.");

            var subscribers = this.GetValidSubscribers();
            if (subscribers == null || !subscribers.Any())
                return BlankView("Create the topic failure. there are not any subscriber.");

            model.Subscribers = (from subscriber in subscribers
                select new SubscriberDto
                {
                    Email = subscriber
                }).ToList();

            model.CreatedBy = this.LoginUser.Identity.Name;
            this.EncodeInput(model);
            model.SqlStatement = CryptoFactory.AES.Decrypt(model.SqlStatement);
            model.Parameter = CryptoFactory.AES.Decrypt(model.Parameter);

            try
            {
                using (var service = ServiceLocator.Instance.Resolve<ISubscriberService>())
                {
                    service.CreateAttachmentTopic(model);
                }
            }
            catch (Exception)
            {
                return BlankView("Create the topic failure.");
            }

            return BlankView("Create the topic OK.");
        }