/// <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)); }
/// <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); }
/// <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); } // }
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(); } // }