Avinash Gupta Ответов: 2

Как я могу вызвать один и тот же метод из двух разных методов, которые имеют два разных(второстепенных) требования


Я хочу вызвать метод(содержащий текстовое тело электронной почты) из двух разных методов, логическое требование которых одинаково, но каждый метод имеет разное текстовое тело электронной почты. Как я могу это сделать?
В приведенном ниже коде, когда он вызывается двумя разными методами, единственное различие заключается в теле письма

Что я уже пробовал:

Это тот метод, который я хочу вызвать:
private bool GenerateEmailOTP(int randomNumber, string emailId)
        {
            var MailUrl = ConfigurationManager.AppSettings["MailUrl"];
            var senderEmail = ConfigurationManager.AppSettings["SenderEmail"];

            var subject = "Verification Code from Broadspire SSP";

            var emailBody = @"Dear Claimant,
                                <br>
                                <br>
                                Thank you for contacting Broadspire. 
                                <br>
                                <br>
                                Please enter following code {0} to generate New Pin. 
                                <br>
                                <br>
                                Thank you,
                                <br>
                                Broadspire SSP Team.";
            var body = String.Format(emailBody, randomNumber);

            Email oEmail = new Email(Config.MailSettings_Smtp_From, emailId, subject, body);
            oEmail.Message.IsBodyHtml = true;
            oEmail.Send(false);

            return true;
        }

Dylvh

Вы хотите, чтобы тело электронной почты отличалось при вызове метода от двух других различных методов? Затем ваш метод возвращает логическое значение, но оно всегда будет возвращать true. Разве вы не хотите скорее перейти от bool к void? Или есть причина, по которой это бул?

Avinash Gupta

Это webApi, поэтому он должен использоваться для целей переднего плана

BillWoodruff

Уточните это: "каждый метод имеет различное текстовое тело электронной почты." Кроме содержания строки, какая еще разница существует ?

RickZeeland

Если вы отвергли мое решение, не могли бы вы сказать мне почему ?

2 Ответов

Рейтинг:
2

F-ES Sitecore

Я бы сохранил различные тела электронной почты в конфигурационном файле (вероятно, web.config) и добавил параметр к методу GenerateEmailOTP, который позволяет вызывающему коду указать, какое тело электронной почты они хотят, и метод получит соответствующее тело почты на основе того, что это за параметр.

private bool GenerateEmailOTP(int randomNumber, string emailId, string emailType)


Самый простой способ сделать это-сохранить различные конфигурации, используя имя настроек, например "newPinBody" и "someOtherBody", и вызывающий код передаст "newPin" или "someOther" в качестве параметра функции, а затем код будет использовать ConfigurationManager для чтения соответствующего тела

string body = ConfigurationManager.AppSettings[emailType + "Body"]


Рейтинг:
0

RickZeeland

Вы можете использовать необязательный параметр, например

private bool GenerateEmailOTP(int randomNumber, string emailId, bool body2 = false)
Видеть: [Dotnetperls]