/// <summary> /// Sends to contact. /// </summary> /// <param name="invoiceId">The invoice id.</param> /// <param name="contactId">The contact id.</param> public static void SendToContact(Guid invoiceId, Guid contactId) { var dataManager = new DataManager(); var invoice = dataManager.Invoice.SelectById(invoiceId); var siteActionTemplate = dataManager.SiteActionTemplate.SelectSystemSiteActionTemplate(invoice.SiteID, SiteActionTemplates.InvoicingNotification); var siteAction = new tbl_SiteAction { SiteID = invoice.SiteID, SiteActionTemplateID = siteActionTemplate.ID, ContactID = contactId, ActionStatusID = (int)ActionStatus.Scheduled, ActionDate = DateTime.Now, ObjectID = invoice.ID, MessageTypeID = (int)MessageType.InvoiceNotification, DirectionID = (int)Direction.Out, MessageTitle = siteActionTemplate.Title }; dataManager.SiteAction.Add(siteAction); var siteActionAttachment = new tbl_SiteActionAttachment { SiteID = siteAction.SiteID, SiteActionID = siteAction.ID, FileName = string.Empty }; dataManager.SiteActionAttachment.Add(siteActionAttachment); }
/// <summary> /// Adds the specified site action. /// </summary> /// <param name="siteActionAttachment">The site action attachment.</param> /// <returns></returns> public tbl_SiteActionAttachment Add(tbl_SiteActionAttachment siteActionAttachment) { siteActionAttachment.ID = Guid.NewGuid(); _dataContext.tbl_SiteActionAttachment.AddObject(siteActionAttachment); _dataContext.SaveChanges(); return(siteActionAttachment); }
/// <summary> /// Updates the specified site action attacment. /// </summary> /// <param name="siteActionAttacment">The site action attacment.</param> public void Update(tbl_SiteActionAttachment siteActionAttacment) { var toUpdate = _dataContext.tbl_SiteActionAttachment.SingleOrDefault(o => o.ID == siteActionAttacment.ID); if (toUpdate != null) { toUpdate.FileName = siteActionAttacment.FileName; _dataContext.SaveChanges(); } }
/// <summary> /// Pendings the payment. /// </summary> /// <param name="invocieId">The invocie id.</param> public static void PendingPayment(Guid invocieId) { var dataManager = new DataManager(); var invoice = dataManager.Invoice.SelectById(invocieId); if (!invoice.BuyerCompanyID.HasValue) { return; } var siteActionTemplate = dataManager.SiteActionTemplate.SelectSystemSiteActionTemplate(invoice.SiteID, SiteActionTemplates.InvoicingNotification); var client = dataManager.ServiceLevelClient.SelectByCompanyId(invoice.SiteID, invoice.BuyerCompanyID.Value); if (client != null) { var contacts = client.tbl_ServiceLevelContact.ToList(); foreach (var serviceLevelContact in contacts) { if (!serviceLevelContact.IsInformAboutInvoice) { continue; } var siteAction = new tbl_SiteAction { SiteID = invoice.SiteID, SiteActionTemplateID = siteActionTemplate.ID, ContactID = serviceLevelContact.ContactID, ActionStatusID = (int)ActionStatus.Scheduled, ActionDate = DateTime.Now, ObjectID = invoice.ID, MessageTypeID = (int)MessageType.InvoiceNotification, DirectionID = (int)Direction.Out, MessageTitle = siteActionTemplate.Title }; dataManager.SiteAction.Add(siteAction); if (serviceLevelContact.InvoiceInformFormID != (int)InvoiceInformForm.None) { var siteActionAttachment = new tbl_SiteActionAttachment { SiteID = siteAction.SiteID, SiteActionID = siteAction.ID, FileName = string.Empty }; dataManager.SiteActionAttachment.Add(siteActionAttachment); } } } }
/// <summary> /// Proceeds the attachments. /// </summary> /// <param name="siteAction">The site action.</param> /// <param name="attacments">The attacments.</param> private string ProceedAttachments(tbl_SiteAction siteAction, IEnumerable <MessagePart> attacments) { var fsp = new FileSystemProvider(); foreach (var attachment in attacments) { if (!attachment.IsAttachment) { continue; } var newFileName = fsp.Upload(siteAction.SiteID, "POP3SourceMonitorings", attachment.FileName, new MemoryStream(attachment.Body), FileType.Attachment); var siteActionAttachment = new tbl_SiteActionAttachment { SiteID = siteAction.SiteID, SiteActionID = siteAction.ID, FileName = newFileName }; _dataManager.SiteActionAttachment.Add(siteActionAttachment); if (siteAction.MessageText.ToLower().Contains("<img")) { var regex = new Regex("src=[\"\']\\S*" + attachment.FileName.Replace(Path.GetExtension(attachment.FileName), string.Empty) + "[\\S]+[\"\']"); foreach (Match match in regex.Matches(siteAction.MessageText)) { if (!match.Value.Contains("http://")) { siteAction.MessageText = siteAction.MessageText.Replace(match.Value, string.Format( "src=\"{0}{1}\"", Settings. LeadForceSiteUrl, fsp.GetLink(siteAction.SiteID, "POP3SourceMonitorings", newFileName, FileType.Attachment))); } } } } _dataManager.SiteAction.Update(siteAction); return(siteAction.MessageText); }
private string AddInvoiceRow(tbl_Invoice invoice, tbl_ServiceLevelContact serviceLevelContact) { var printLink = string.Empty; if (PortalSettings != null) { PortalLink = DataManager.PortalSettings.SelectPortalLink(PortalSettings.SiteID, true); printLink = string.Format(InvoicePrintLinkTemplate.Replace("#PortalLink#", PortalLink), invoice.ID); } if (serviceLevelContact.InvoiceInformFormID != (int)InvoiceInformForm.None) { var siteActionAttachment = new tbl_SiteActionAttachment { SiteID = SiteAction.SiteID, SiteActionID = SiteAction.ID, FileName = printLink + "?autoexport=pdf" }; DataManager.SiteActionAttachment.Add(siteActionAttachment); var webClient = new WebClient(); var file = webClient.DownloadData(siteActionAttachment.FileName); MailMessage.Attachments.Add(new Attachment(new MemoryStream(file), string.Format("Счет #{0}.pdf", invoice.Number), MediaTypeNames.Application.Pdf)); } var row = SiteActionTemplates.InvoiceRowTemplate; row = row.Replace("#Invoice.List.PrintVersion.Link#", printLink).Replace("#Invoice.List.Number#", invoice.Number) .Replace("#Invoice.List.CreatedAt#", invoice.CreatedAt.ToString("dd.MM.yyyy")) .Replace("#Invoice.List.Amount#", invoice.InvoiceAmount.ToString("F")) .Replace("#Invoice.List.PaymentDatePlanned#", invoice.PaymentDatePlanned.HasValue ? invoice.PaymentDatePlanned.Value.ToString("dd.MM.yyyy") : "") .Replace("#Invoice.List.Note#", invoice.Note); return(row); }