示例#1
0
        public string SendEmailtoVendor(ActionTabEmailOld item)
        {
            try
            {
                ActionTabEmail actionTabEmail = new ActionTabEmail();

                //1. ) Adding "to" Fields in Message Fields.
                ToFields toFields = new ToFields();
                toFields.EmailAddress = "%%DeliveryAddress%%";
                toFields.FriendlyName = "";

                List <ToFields> toFieldsList = new List <ToFields>();
                toFieldsList.Add(toFields);
                MessagesFields messagesFields = new MessagesFields();
                messagesFields.To = toFieldsList;


                List <string> emailAddresses = new List <string>();
                emailAddresses.Add(item.Toemail);

                //2.) Adding CC Fields in Message Fields.
                List <CcFields> ccFieldsList = new List <CcFields>();
                if (item.Ccemail != null)
                {
                    foreach (string ccItem in item.Ccemail)
                    {
                        CcFields ccFields = new CcFields();
                        // ccFields.EmailAddress = "%%CcEmail1%%";
                        ccFields.EmailAddress = "%%DeliveryAddress%%";
                        ccFields.FriendlyName = "";
                        ccFieldsList.Add(ccFields);

                        emailAddresses.Add(ccItem);
                    }
                    messagesFields.Cc = ccFieldsList;
                }

                // Adding Work Order Attachment for sending email.
                string FileName      = null;
                string temp_inBase64 = null;
                List <AttachmentsDocuments> DocsFile = new List <AttachmentsDocuments>();
                if (item.ChekValue == true)
                {
                    byte[] EmailPDFData = repository.GetPDFDataWith(item.WorkOrderId);
                    temp_inBase64 = Convert.ToBase64String(EmailPDFData);
                    FileName      = "WO_" + item.WorkOrderNumber + ".pdf";

                    AttachmentsDocuments docs = new AttachmentsDocuments();
                    docs.Name    = FileName;
                    docs.Content = temp_inBase64;
                    DocsFile.Add(docs);
                }

                // Adding Other Document for sending email.
                if (item.OtherDocument != null)
                {
                    foreach (var value in item.OtherDocument)
                    {
                        List <Tuple <byte[], string> > DocsData = repository.GetAttachmentData(value);
                        FileName      = DocsData[0].Item2;
                        temp_inBase64 = Convert.ToBase64String(DocsData[0].Item1);

                        AttachmentsDocuments docs = new AttachmentsDocuments();
                        docs.Name    = FileName;
                        docs.Content = temp_inBase64;
                        DocsFile.Add(docs);
                    }
                }

                // Getting data for dynamic values on Email Template
                List <EmailData> EmailData = GetEmailData(item.WorkOrderId);
                List <fn_getClientResourceData_Result> HeaderData = repository.DataforPDfHeader(item.ClientId);
                List <List <PerMessage> > perMessagesArrayList    = new List <List <PerMessage> >();

                MergedData mergedData = new MergedData();
                foreach (string e in emailAddresses)
                {
                    List <PerMessage> perMessagesList = new List <PerMessage>();

                    PerMessage perMessageDeliveryAddress = new PerMessage();
                    perMessageDeliveryAddress.Field = "DeliveryAddress";
                    perMessageDeliveryAddress.Value = e;
                    PerMessage perMessageVendorName = new PerMessage();
                    perMessageVendorName.Field = "VendorName";
                    perMessageVendorName.Value = EmailData[0].VendorName;

                    PerMessage perMessageCSRName = new PerMessage();
                    perMessageCSRName.Field = "CSRName";
                    perMessageCSRName.Value = EmailData[0].FirstName + " " + EmailData[0].LastName;

                    PerMessage perMessageCompanyName = new PerMessage();
                    perMessageCompanyName.Field = "CompanyName";
                    perMessageCompanyName.Value = EmailData[0].ClientName;

                    PerMessage perMessageCompanyName2 = new PerMessage();
                    perMessageCompanyName2.Field = "CompanyName2";
                    perMessageCompanyName2.Value = EmailData[0].ClientName;

                    PerMessage perMessageAddress01 = new PerMessage();;
                    PerMessage perMessageAddress02 = new PerMessage();
                    PerMessage perMessageTelephone = new PerMessage();
                    PerMessage perMessageFax       = new PerMessage();
                    PerMessage perMessageURL       = new PerMessage();

                    foreach (fn_getClientResourceData_Result headerData in HeaderData)
                    {
                        if (headerData.Name == "WOHeaderLine01")
                        {
                            perMessageAddress01.Field = "Address01";
                            perMessageAddress01.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine02")
                        {
                            perMessageAddress02.Field = "Address02";
                            perMessageAddress02.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine03")
                        {
                            perMessageTelephone.Field = "Telephone";
                            perMessageTelephone.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine04")
                        {
                            perMessageFax.Field = "Fax";
                            perMessageFax.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine05")
                        {
                            perMessageURL.Field = "URL";
                            perMessageURL.Value = headerData.Value;
                        }
                    }
                    PerMessage perMessageMessage = new PerMessage();
                    perMessageMessage.Field = "Message";
                    perMessageMessage.Value = item.Message;



                    perMessagesList.Add(perMessageDeliveryAddress);
                    perMessagesList.Add(perMessageVendorName);
                    perMessagesList.Add(perMessageCSRName);
                    perMessagesList.Add(perMessageCompanyName);
                    perMessagesList.Add(perMessageCompanyName2);
                    perMessagesList.Add(perMessageAddress01);
                    perMessagesList.Add(perMessageAddress02);
                    perMessagesList.Add(perMessageTelephone);
                    perMessagesList.Add(perMessageFax);
                    perMessagesList.Add(perMessageURL);
                    perMessagesList.Add(perMessageMessage);

                    perMessagesArrayList.Add(perMessagesList);

                    mergedData.PerMessage = perMessagesArrayList;
                }

                messagesFields.MergeData   = mergedData;
                messagesFields.Attachments = DocsFile;
                messagesFields.Subject     = item.WorkOrderNumber;

                // To add everything in the Message Fields
                List <MessagesFields> messagesFieldsList = new List <MessagesFields>();
                messagesFieldsList.Add(messagesFields);
                actionTabEmail.Messages = messagesFieldsList;

                string Updatevalue = repository.SendEmailtoVendor(item.WorkOrderId, FileName, item.Notes);
                new EmailController().SendEmail(actionTabEmail, item.ClientId);
                return(Updatevalue);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Message: " + ex.Message);
                return(ex.Message);
            }
        }
        public bool SubmitQuoteWithEmail(ServiceRequestInvoiceAction1 item)
        {
            try
            {
                ActionTabEmail actionTabEmail = new ActionTabEmail();

                //1. ) Adding "to" Fields in Message Fields.
                ToFields toFields = new ToFields();
                toFields.EmailAddress = "%%DeliveryAddress%%";
                toFields.FriendlyName = "";

                List <ToFields> toFieldsList = new List <ToFields>();
                toFieldsList.Add(toFields);
                MessagesFields messagesFields = new MessagesFields();
                messagesFields.To = toFieldsList;


                List <string> emailAddresses = new List <string>();
                emailAddresses.Add(item.Toemail);

                //2.) Adding CC Fields in Message Fields.
                List <CcFields> ccFieldsList = new List <CcFields>();
                foreach (string ccItem in item.Ccemail)
                {
                    CcFields ccFields = new CcFields();
                    ccFields.EmailAddress = "%%DeliveryAddress%%";
                    ccFields.FriendlyName = "";
                    ccFieldsList.Add(ccFields);

                    emailAddresses.Add(ccItem);
                }
                messagesFields.Cc = ccFieldsList;

                string FileName      = null;
                string temp_inBase64 = null;
                List <AttachmentsDocuments> DocsFile = new List <AttachmentsDocuments>();

                var UpdatedValue = repository.SubmitQuoteWithEmail(item);


                byte[] EmailPDFData = repository.GetServiceInvoicePDFData(item.ServiceRequestInvoiceHeaderId);
                temp_inBase64 = Convert.ToBase64String(EmailPDFData);
                FileName      = "Quote" + ".pdf";
                AttachmentsDocuments docs = new AttachmentsDocuments();
                docs.Name    = FileName;
                docs.Content = temp_inBase64;
                DocsFile.Add(docs);

                // Getting data for dynamic values on Email Template
                List <EmailDataForQuoteInvoice> EmailData = GetEmailData(item.ServiceRequestInvoiceHeaderId);
                UOWWorkOrder uOWWorkOrder = new UOWWorkOrder();
                List <fn_getClientResourceData_Result> HeaderData = uOWWorkOrder.DataforPDfHeader(item.ClientId);
                List <List <PerMessage> > perMessagesArrayList    = new List <List <PerMessage> >();

                MergedData mergedData = new MergedData();
                foreach (string e in emailAddresses)
                {
                    List <PerMessage> perMessagesList = new List <PerMessage>();

                    PerMessage perMessageDeliveryAddress = new PerMessage();
                    perMessageDeliveryAddress.Field = "DeliveryAddress";
                    perMessageDeliveryAddress.Value = e;

                    PerMessage perMessageVendorName = new PerMessage();
                    perMessageVendorName.Field = "VendorName";
                    perMessageVendorName.Value = EmailData[0].CustomerName;

                    PerMessage perMessageCSRName = new PerMessage();
                    perMessageCSRName.Field = "CSRName";
                    perMessageCSRName.Value = EmailData[0].FirstName + " " + EmailData[0].LastName;

                    PerMessage perMessageCompanyName = new PerMessage();
                    perMessageCompanyName.Field = "CompanyName";
                    perMessageCompanyName.Value = EmailData[0].ClientName;

                    PerMessage perMessageCompanyName2 = new PerMessage();
                    perMessageCompanyName2.Field = "CompanyName2";
                    perMessageCompanyName2.Value = EmailData[0].ClientName;

                    PerMessage perMessageAddress01 = new PerMessage();;
                    PerMessage perMessageAddress02 = new PerMessage();
                    PerMessage perMessageTelephone = new PerMessage();
                    PerMessage perMessageFax       = new PerMessage();
                    PerMessage perMessageURL       = new PerMessage();

                    foreach (fn_getClientResourceData_Result headerData in HeaderData)
                    {
                        if (headerData.Name == "WOHeaderLine01")
                        {
                            perMessageAddress01.Field = "Address01";
                            perMessageAddress01.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine02")
                        {
                            perMessageAddress02.Field = "Address02";
                            perMessageAddress02.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine03")
                        {
                            perMessageTelephone.Field = "Telephone";
                            perMessageTelephone.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine04")
                        {
                            perMessageFax.Field = "Fax";
                            perMessageFax.Value = headerData.Value;
                        }
                        if (headerData.Name == "WOHeaderLine05")
                        {
                            perMessageURL.Field = "URL";
                            perMessageURL.Value = headerData.Value;
                        }
                    }
                    PerMessage perMessageMessage = new PerMessage();
                    perMessageMessage.Field = "Message";
                    perMessageMessage.Value = item.Message;
                    perMessagesList.Add(perMessageDeliveryAddress);
                    perMessagesList.Add(perMessageVendorName);
                    perMessagesList.Add(perMessageCSRName);
                    perMessagesList.Add(perMessageCompanyName);
                    perMessagesList.Add(perMessageCompanyName2);
                    perMessagesList.Add(perMessageAddress01);
                    perMessagesList.Add(perMessageAddress02);
                    perMessagesList.Add(perMessageTelephone);
                    perMessagesList.Add(perMessageFax);
                    perMessagesList.Add(perMessageURL);
                    perMessagesList.Add(perMessageMessage);
                    perMessagesArrayList.Add(perMessagesList);
                    mergedData.PerMessage = perMessagesArrayList;
                }

                messagesFields.MergeData   = mergedData;
                messagesFields.Attachments = DocsFile;
                messagesFields.Subject     = item.ActionCode;

                // To add everything in the Message Fields
                List <MessagesFields> messagesFieldsList = new List <MessagesFields>();
                messagesFieldsList.Add(messagesFields);
                actionTabEmail.Messages = messagesFieldsList;

                if (UpdatedValue == true)
                {
                    new EmailController().SendEmailToCustomer(actionTabEmail, item.ClientId);
                }

                return(UpdatedValue);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }