public async Task Add(EmailSms emailSms) { await WithConnection(async (connection, transaction) => { DynamicParameters parameters = new DynamicParameters(); parameters.Add("@Id", emailSms.Id, DbType.String); parameters.Add("@TYPE", emailSms.Type.AsEnumToInt(), DbType.Int32); parameters.Add("@MessageType", emailSms.MessageType.AsEnumToInt(), DbType.Int32); parameters.Add("@PhoneNumber", emailSms.PhoneNumber, DbType.String); parameters.Add("@Email", emailSms.Email, DbType.String); parameters.Add("@Title", emailSms.Title, DbType.String); parameters.Add("@CONTENT", emailSms.Content, DbType.String); parameters.Add("@Model", Serialize.JsonSerializeObject(emailSms.Model) ?? string.Empty, DbType.String); parameters.Add("@Template", emailSms.Template ?? string.Empty, DbType.String); parameters.Add("@STATUS", emailSms.Status.AsEnumToInt(), DbType.Int32); parameters.Add("@CreatedDateUtc", emailSms.CreatedDateUtc, DbType.DateTime); parameters.Add("@UpdatedDateUtc", emailSms.CreatedDateUtc, DbType.DateTime); parameters.Add("@CreatedUid", emailSms.CreatedUid, DbType.String); parameters.Add("@UpdatedUid", emailSms.CreatedUid, DbType.String); parameters.Add("@VerifyId", emailSms.VerifyId, DbType.String); var data = await connection.ExecuteAsync(ProcName.EmailSms_Add, parameters, transaction, commandType: CommandType.StoredProcedure); if (data > 0 && emailSms.Verify != null) { await Add(emailSms.Verify, connection, transaction); } return(data); }); }
public async Task <ICommandResult> Handle(EmailOrSmsBaseCommand command) { try { EmailSms emailOrSms = new EmailSms(); string file = command.Type.GetDisplayName(); object model = null; switch (command.Type) { case EnumDefine.EmailOrSmsTypeEnum.ExternalLoginConfirmWhenAccountIsExist: model = Common.Serialize.JsonDeserializeObject <TestEmailSmsModel>(command.Model.ToString()); break; } string content = await _templateRenderer.ParseFromTemplateFileAsync(file, model); emailOrSms.Create(command, content); await _emailSmsService.AddToDb(emailOrSms); await _emailSmsService.SendCommand(new EmailSmsSendCommand() { Id = emailOrSms.Id }); ICommandResult result = new CommandResult() { Message = "", ObjectId = emailOrSms.Id, Status = CommandResult.StatusEnum.Sucess }; return(result); } catch (MessageException e) { e.Data["Param"] = command; ICommandResult result = new CommandResult() { Message = e.Message, Status = CommandResult.StatusEnum.Fail, ResourceName = e.ResourceName }; return(result); } catch (Exception e) { e.Data["Param"] = command; ICommandResult result = new CommandResult() { Message = e.Message, Status = CommandResult.StatusEnum.Fail }; return(result); } }
public async Task <ICommandResult> Handle(EmailSmsSendCommand mesage) { try { if (string.IsNullOrEmpty(mesage.Id)) { throw new MessageException(ResourceKey.EmailSms_EmailSmsSendCommand_IsNotNullOrEmpty); } REmailSms emailSms = await _emailSmsService.GetFromDb(mesage.Id); if (emailSms == null) { throw new MessageException(ResourceKey.EmailSms_NotFound); } EmailSms emailOrSms = new EmailSms(emailSms); Ref <string> response = new Ref <string>(); bool isOk = false; if (emailOrSms.CheckMessageType(EnumDefine.EmailOrSmsMessageTypeEnum.Email)) { isOk = await _sendMailClient.Send(ConfigSettingEnum.AwsSenderAddress.GetConfig(), emailOrSms.Email, emailOrSms.Title, emailOrSms.Content, response); } if (emailOrSms.CheckMessageType(EnumDefine.EmailOrSmsMessageTypeEnum.Sms)) { //await _sendMailClient.Send(ConfigSettingEnum.AwsSenderAddress.GetConfig(), emailOrSms.Email, emailOrSms.Title, emailOrSms.Content); } if (isOk) { emailOrSms.SetSendSuccess(); } else { emailOrSms.SetSendFail(); } await _emailSmsService.ChangeToSendSuccess(emailOrSms.Id, emailOrSms.SendDate.GetValueOrDefault(), emailOrSms.Status, response.Value); ICommandResult result = new CommandResult() { Message = "", ObjectId = emailOrSms.Id, Status = CommandResult.StatusEnum.Sucess }; return(result); } catch (MessageException e) { e.Data["Param"] = mesage; ICommandResult result = new CommandResult() { Message = e.Message, Status = CommandResult.StatusEnum.Fail, ResourceName = e.ResourceName }; return(result); } catch (Exception e) { e.Data["Param"] = mesage; ICommandResult result = new CommandResult() { Message = e.Message, Status = CommandResult.StatusEnum.Fail }; return(result); } }
public async Task AddToDb(EmailSms emailSms) { await _emailSmsRepository.Add(emailSms); }