/// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
                    }
                }
            }
        }
Exemplo n.º 5
0
        /// <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);
        }