コード例 #1
0
        /// <summary>
        /// Gets the min start date.
        /// </summary>
        /// <param name="userId">The user id.</param>
        /// <returns></returns>
        public static DateTime GetTimeTrackingBlockMinStartDate(int userId)
        {
            TimeTrackingBlock[] userBlocks = TimeTrackingBlock.List(
                new FilterElementCollection(FilterElement.EqualElement("OwnerId", userId)),
                new SortingElementCollection(SortingElement.Ascending("StartDate")), 0, 1);

            if (userBlocks.Length > 0)
            {
                return(userBlocks[0].StartDate);
            }

            return(DateTime.Now.AddDays(-210));
        }
コード例 #2
0
ファイル: SelectPopup.ascx.cs プロジェクト: hdgardner/ECF
        /// <summary>
        /// Gens the source.
        /// </summary>
        /// <param name="text">The text.</param>
        /// <param name="totalCount">The total count.</param>
        /// <returns></returns>
        private DataTable genSource(string text, out int totalCount)
        {
            DataTable dt = new DataTable();

            dt.Locale = CultureInfo.InvariantCulture;
            dt.Columns.Add(new DataColumn("PrimaryKeyId", typeof(int)));
            dt.Columns.Add(new DataColumn(TitleFieldName, typeof(string)));
            MetaClass mc = MetaDataWrapper.ResolveMetaClassByNameOrCardName(ClassName);

            FilterElementCollection fec = new FilterElementCollection();

            fec.Add(new FilterElement(mc.TitleFieldName, FilterElementType.Contains, text));
            if (!String.IsNullOrEmpty(CardFilter))
            {
                string[] mas = CardFilter.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                if (mas.Length > 0)
                {
                    OrBlockFilterElement fe = new OrBlockFilterElement();
                    foreach (string sCard in mas)
                    {
                        fe.ChildElements.Add(FilterElement.EqualElement("Card", sCard.Trim()));
                    }
                    fec.Add(fe);
                }
            }

            MetaObject[] list = MetaObject.List(mc,
                                                fec,
                                                new SortingElementCollection(SortingElement.Ascending(mc.TitleFieldName)));
            int count = 0;

            foreach (MetaObject bo in list)
            {
                DataRow row = dt.NewRow();
                row["PrimaryKeyId"] = bo.PrimaryKeyId;
                row[TitleFieldName] = bo.Properties[mc.TitleFieldName].Value.ToString();
                dt.Rows.Add(row);
                count++;
                if (count > 10)
                {
                    break;
                }
            }
            totalCount = list.Length;

            return(dt);
        }
コード例 #3
0
        /// <summary>
        /// Invokes this instance.
        /// </summary>
        public override void Invoke()
        {
            // Remove Expired
            RemoveExpiredMessages();

            //int maxDeliveryAttempts = 100; // TODO: Read From Config

            EntityObject[] elements = BusinessManager.List(OutgoingMessageQueueEntity.ClassName,
                                                           OutgoingMessageUtil.CreateIbnClientMessageDeliveryProviderFilters(),
                                                           new SortingElement[]
            {
                SortingElement.Ascending(OutgoingMessageQueueEntity.FieldCreated)
            });

            foreach (OutgoingMessageQueueEntity element in elements)
            {
                try
                {
                    // Load Ibn Message
                    IbnClientMessageEntity message = (IbnClientMessageEntity)BusinessManager.Load(IbnClientMessageEntity.ClassName, element.IbnClientMessageId.Value);

                    // Send
                    int toOriginalId   = DBUser.GetOriginalId(message.ToId);
                    int fromOriginalId = DBUser.GetOriginalId(message.FromId);

                    IMHelper.SendMessage(toOriginalId, fromOriginalId, message.HtmlBody);

                    element.Error = string.Empty;
                    element.DeliveryAttempts++;
                    element.IsDelivered = true;
                }
                catch (Exception ex)
                {
                    element.Error = ex.Message;
                    element.DeliveryAttempts++;

                    // TODO: Save Complete Error Stack || Complete Delivery Log
                }

                BusinessManager.Update(element);
            }

            //
        }
コード例 #4
0
        public override void Invoke()
        {
            // TODO: Remove Expired
            RemoveExpiredMessages();

            //int maxDeliveryAttempts = 100; // TODO: Read From Config
            int maxMessagesPerConnection = 10;

            // Prepare temporary collection
            List <MailMessage> outputMessages             = new List <MailMessage>();
            List <OutgoingMessageQueueEntity> queueEntity = new List <OutgoingMessageQueueEntity>();

            // Load Outgoing Message Queue Entity
            EntityObject[] elements = BusinessManager.List(OutgoingMessageQueueEntity.ClassName,
                                                           OutgoingMessageUtil.CreateEmailDeliveryProviderFilters(),
                                                           new SortingElement[]
            {
                SortingElement.Ascending(OutgoingMessageQueueEntity.FieldSource),
                SortingElement.Ascending(OutgoingMessageQueueEntity.FieldCreated)
            });


            // Run Message Delivery Process
            for (int elementIndex = 0; elementIndex < elements.Length; elementIndex++)
            {
                // Read Element From Outgoing Message Queue
                OutgoingMessageQueueEntity element = (OutgoingMessageQueueEntity)elements[elementIndex];

                // Load Email Message
                EmailEntity emailEntity = (EmailEntity)BusinessManager.Load(EmailEntity.ClassName, element.EmailId.Value);

                // Create Output Mail Message
                MailMessage outputMessage = CopyEmailEntityToMailMessage(emailEntity);

                // Add Output message to Output queue
                outputMessages.Add(outputMessage);
                queueEntity.Add(element);

                string currentSource     = element.Source;
                string nextElementSource = (elementIndex < (elements.Length - 1)) ?
                                           ((OutgoingMessageQueueEntity)elements[elementIndex + 1]).Source :
                                           string.Empty;

                if (outputMessages.Count < maxMessagesPerConnection &&
                    currentSource == nextElementSource)
                {
                    continue;
                }

                // Send Output queue
                try
                {
                    // OZ [2010-03-03]: Check that SmtpServer is configured. Write To Outgoing log
                    if (SmtpBox.TotalCount() == 0)
                    {
                        throw new SmtpNotConfiguredException();
                    }

                    // Initialize Smtp Client
                    SmtpClient smtpClient = Mediachase.IBN.Business.EMail.SmtpClientUtility.CreateSmtpClient(element.Source);

                    // Send
                    smtpClient.Send(outputMessages.ToArray());

                    // Process result
                    ProcessSendResult(outputMessages, queueEntity);
                }
                catch (Exception ex)
                {
                    ProcessException(outputMessages, queueEntity, ex);
                }

                // Clear Output queue
                outputMessages.Clear();
                queueEntity.Clear();
            }

            //
        }