/// <summary>
        /// Sets current user to email participant.
        /// </summary>
        protected virtual void SetCurrentPatricipant()
        {
            Guid userContactId  = UserConnection.CurrentUser.ContactId;
            var  senderContacts = GetContactsByEmails(UserConnection, new List <string> {
                SenderEmail
            });
            bool addAsRecepient = !InsertedValues.ContainsKey(userContactId) &&
                                  !IsEmailParticipantExistsByRoles(userContactId, ParticipantRoles);
            bool addAsSender = senderContacts.ContainsKey(userContactId) ||
                               (SenderEmail.IsEmpty() && addAsRecepient);

            if (addAsSender)
            {
                AddActivityParticipantToInsertedValues(userContactId,
                                                       new Dictionary <string, object> {
                    { "ReadMark", true },
                    { "RoleId", ParticipantRoles["From"] }
                }, true);
            }
            else if (addAsRecepient)
            {
                AddActivityParticipantToInsertedValues(userContactId,
                                                       new Dictionary <string, object> {
                    { "RoleId", ParticipantRoles["To"] }
                }, false);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Returns the validity of Message object.
 /// </summary>
 public bool IsValid()
 {
     return(SenderAlias.IsValidMessengerAlias() &&
            Body.IsValidMessageBody() &&
            Subject.IsValidMessageSubject() &&
            SenderEmail.IsValidEmail());
 }
Ejemplo n.º 3
0
        public IActionResult UpdateDeliveryState(string billCode, int stateId)
        {
            CredentialManage credential = JsonConvert.DeserializeObject <CredentialManage>(HttpContext.Session.GetString(Constants.VM_MANAGE));
            Bill             bill       = GetApiBills.GetBills(credential).SingleOrDefault(p => p.GenerateCodeCheck == billCode);
            DeliveryProduct  delivery   = GetApiDeliveryProducts.GetDeliveryProducts().SingleOrDefault(p => p.DeliveryProductBillId == bill.BillId);

            delivery.DeliveryProductStateId = stateId;

            if (GetApiDeliveryStates.GetDeliveryProductStates()
                .SingleOrDefault(p => p.DeliveryProductStateId == stateId).DeliveryProductStateName == "Đã giao hàng")
            {
                bill.IsCompleted     = true;
                bill.DateOfDelivered = DateTime.Now;
                GetApiBills.Update(bill, credential.JwToken);
            }

            GetApiDeliveryProducts.Update(delivery, credential.JwToken);

            // sender mail
            UserProfile profile = GetApiUserProfile.GetUserProfiles().SingleOrDefault(p => p.UserProfileId == bill.UserProfileId);

            string body = "Đơn hàng có mã #" + bill.GenerateCodeCheck + " đã cập nhật trạng thái vận chuyển mới: " +
                          GetApiDeliveryStates.GetDeliveryProductStates()
                          .SingleOrDefault(p => p.DeliveryProductStateId == stateId).DeliveryProductStateName;

            SenderEmail.SendMail(profile.UserProfileEmail, "PETSHOP: UPDATE DELIVERY STATE'S YOUR BILL", body);
            return(Json(bill));
        }
Ejemplo n.º 4
0
        public int CompareTo(object obj)
        {
            ViewSettings otherViewSettings = obj as ViewSettings;

            if (Name.CompareTo(otherViewSettings.Name) == 0 &&
                EnableSSL.CompareTo(otherViewSettings.EnableSSL) == 0 &&
                Host.CompareTo(otherViewSettings.Host) == 0 &&
                Port.CompareTo(otherViewSettings.Port) == 0 &&
                UserEmail.CompareTo(otherViewSettings.UserEmail) == 0 &&
                UserPassword.CompareTo(otherViewSettings.UserPassword) == 0 &&
                SenderName.CompareTo(otherViewSettings.SenderName) == 0 &&
                SenderEmail.CompareTo(otherViewSettings.SenderEmail) == 0 &&
                RecieverEmail.CompareTo(otherViewSettings.RecieverEmail) == 0 &&
                MessageSubject.CompareTo(otherViewSettings.MessageSubject) == 0 &&
                MessageBody.CompareTo(otherViewSettings.MessageBody) == 0 &&
                SiteUrl.CompareTo(otherViewSettings.SiteUrl) == 0 &&
                TableClassID.CompareTo(otherViewSettings.TableClassID) == 0 &&
                CompareValue.CompareTo(otherViewSettings.CompareValue) == 0 &&
                TimeStartSettings.CompareTo(otherViewSettings.TimeStartSettings) == 0 &&
                NotNullColumn.CompareTo(otherViewSettings.NotNullColumn) == 0 &&
                ColumnToCompare.CompareTo(otherViewSettings.ColumnToCompare) == 0)
            {
                return(0);
            }
            return(1);
        }
Ejemplo n.º 5
0
 public IActionResult ReplyFeedback(int feedbackId, string email, string content)
 {
     if (feedbackId != 0 && email != null && content != null)
     {
         SenderEmail.SendMail(email, "PETSHOP RESPONSE FOR FEEDBACK", content);
         UpdateIsRead(feedbackId);
     }
     return(Ok(email));
 }
 public void ValidateOptions()
 {
     ClientId.ThrowConfigurationExceptionIfNull($"{Position}:{ClientId}");
     Secret.ThrowConfigurationExceptionIfNull($"{Position}:{Secret}");
     AuthUrl.ThrowConfigurationExceptionIfNull($"{Position}:{AuthUrl}");
     EmailUrl.ThrowConfigurationExceptionIfNull($"{Position}:{EmailUrl}");
     SenderEmail.ThrowConfigurationExceptionIfNull($"{Position}:{SenderEmail}");
     SenderName.ThrowConfigurationExceptionIfNull($"{Position}:{SenderName}");
 }
Ejemplo n.º 7
0
 public UsuariosController(SistemaDeControleDeTCCsContext context,
                           SenderEmail senderEmail,
                           UserManager <Usuario> userManager,
                           RoleManager <IdentityRole> roleManager)
 {
     _context     = context;
     _senderEmail = senderEmail;
     _userManager = userManager;
     _roleManager = roleManager;
 }
Ejemplo n.º 8
0
        //Method to sending users verification emails
        public void SendVerificationLinkEmail(string emailID, string activationCode, string emailFor = "VerifyAccount")
        {
            SenderEmail senderData = new SenderEmail();
            var         verifyUrl  = "User/" + emailFor + "/" + activationCode;
            var         link       = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "/" + verifyUrl);

            var fromEmail         = new MailAddress(senderData.email, "Live Chat Room");
            var toEmail           = new MailAddress(emailID);
            var fromEmailPassword = senderData.password;

            //creating messages
            string subject = "", body = "";

            using (StreamReader reader = new StreamReader(HostingEnvironment.MapPath("~/Content/ResetPasswordMessage.html")))
            {
                body = reader.ReadToEnd();
            }
            var userRecord = userRepo.Users.Where(a => a.EmailID == emailID).FirstOrDefault();

            if (emailFor == "VerifyAccount")
            {
                subject = "Your account is successfully created";
                body    = body.Replace("#link", "<a href='" + link + "'>Verify Account</a>");
                body    = body.Replace("#message", "Welcome #user, <br/><br/>We are excited to tell you that your account is successfully created!" +
                                       "<br/><br/>Click on the link below to verify your account!");
                body = body.Replace("#user", userRecord.UserName);
            }
            else if (emailFor == "ResetPassword")
            {
                subject = "Reset Password";
                body    = body.Replace("#link", "<a href=" + link + ">Reset Password link</a>");
                body    = body.Replace("#message", "Welcome #user, <br /><br />We got request for reset your account password. Please click on the link below to reset your password!");
                body    = body.Replace("#user", userRecord.UserName);
            }

            //configuring smtp
            var smtp = new SmtpClient
            {
                Host                  = "smtp.gmail.com",
                Port                  = 587,
                EnableSsl             = true,
                DeliveryMethod        = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials           = new NetworkCredential(fromEmail.Address, fromEmailPassword)
            };

            using (var message = new MailMessage(fromEmail, toEmail)
            {
                Subject = subject,
                Body = body,
                IsBodyHtml = true
            })

                smtp.Send(message);
        }
Ejemplo n.º 9
0
        public IActionResult Register(RegisterModel register, IFormFile avatarFile)
        {
            if (ModelState.IsValid)
            {
                if (!ExistEmail(register.Email))
                {
                    // create session register code
                    string generateCodeRegister = Encryptor.RandomString(12);
                    HttpContext.Session.SetString("generateCodeRegister", generateCodeRegister);

                    // create session register model
                    if (avatarFile != null)
                    {
                        string extension = Path.GetExtension(avatarFile.FileName);

                        if (CheckExtension(extension))
                        {
                            string avatarName = Encryptor.RandomString(12);

                            var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images/avatar", avatarName + extension);
                            using (var file = new FileStream(path, FileMode.Create))
                            {
                                avatarFile.CopyTo(file);
                            }
                            register.Avatar = avatarName + extension;
                        }
                        else
                        {
                            ModelState.AddModelError("", "Kiểu file không hỗ trợ (jpg, png, ...)");
                        }
                    }

                    // send coderegister to email
                    SenderEmail.SendMail(register.Email, "VERIFY", "Code verify: " + generateCodeRegister);

                    HttpContext.Session.SetObject("register", register);
                    return(RedirectToAction("VerifyEmail", "Verify"));
                }
                else
                {
                    ModelState.AddModelError("", "Email đã tồn tại");
                }
            }
            else
            {
                ModelState.AddModelError("", "Email không hợp lệ");
            }

            return(View());
        }
Ejemplo n.º 10
0
        public IActionResult ApproveBill(int billId)
        {
            CredentialManage credential = JsonConvert.DeserializeObject <CredentialManage>(HttpContext.Session.GetString(Constants.VM_MANAGE));

            Bill bill = GetApiBills.GetBills(credential).SingleOrDefault(p => p.BillId == billId);

            // update
            bill.IsApprove  = true;
            bill.IsDelivery = true;

            if (Directory.Exists(Constants.EMBEDED_MAIL_URL) && System.IO.File.Exists(Constants.EMBEDED_MAIL_URL + bill.GenerateCodeCheck + ".png"))
            {
                // get credential
                string token = credential.JwToken;

                using (HttpClient client = Common.HelperClient.GetClient(token))
                {
                    client.BaseAddress = new Uri(Common.Constants.BASE_URI);

                    var postTask = client.PutAsJsonAsync <Bill>(Constants.BILL + "/" + bill.BillId, bill);
                    postTask.Wait();

                    var result = postTask.Result;

                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsAsync <Bill>();
                        readTask.Wait();

                        // send email
                        UserProfile user = GetApiUserProfile.GetUserProfiles().SingleOrDefault(p => p.UserProfileId == bill.UserProfileId);

                        SenderEmail.SendMail(user.UserProfileEmail, "PETSHOP Hóa đơn #" + bill.GenerateCodeCheck, "Đơn hàng có mã: #" + bill.GenerateCodeCheck + " vừa được duyệt", bill.GenerateCodeCheck);

                        return(Json(readTask.Result));
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            else
            {
                return(NoContent());
            }
        }
Ejemplo n.º 11
0
        public string ResetPassword(string loginData)
        {
            LoginViewModel loginView = JsonConvert.DeserializeObject <LoginViewModel>(loginData);
            Login          login     = db.GetLogin(loginView.Login);

            if (login != null)
            {
                var newPassword = PasswordManager.CreateRandomPassword();
                login.Password = PasswordManager.GetMd5Hash(newPassword);
                db.ChangePassword(login);
                SenderEmail sm = new SenderEmail(loginView.Login, $"Hasło zostało zmienione na: {newPassword}\nPo ponownym zalogowaniu zaleca się " +
                                                 $"zmianę hasła", "Zmiana Hasła");
                sm.SendEmail();
                return("Hasło zmienione");
            }
            return("Hasło nie zmienione");
        }
Ejemplo n.º 12
0
        public IActionResult GenerateVerifyCode(string email)
        {
            VerifyModel verifyModel = new VerifyModel()
            {
                CodeVerify = Encryptor.RandomString(6),
                Status     = false,
                Email      = email
            };

            HttpContext.Session.SetObject("verifyForgetPW", verifyModel);
            // send code

            SenderEmail.SendMail(email, "PETSHOP VERIFY RESTORE ACCOUNT", "Code verify: " + verifyModel.CodeVerify);
            return(NoContent());

            throw new Exception();
        }
Ejemplo n.º 13
0
        private void sendEmail(RegistroBeneficiarioNatural registro, PAM_Validacion result)
        {
            var correo = new Email();

            correo.From("*****@*****.**");
            correo.Subject("SOLICITUD DE PERSONA NATURAL : " + result.data);
            correo.Body(
                string.Format(
                    @"<div><h2>Sr(a). Beneficiario </h2><p>La solicitud {0} se encuentra en estado {1} con fecha de registro {2}</p></div>",
                    result.data, registro.estado, DateTime.Now.ToString("dd/MM/yyyy")));

            var correos = registro.actores.Select(x => x.CORREO_ELECTRONICO).ToList();

            correos.Add(registro.correo);
            correo.To(correos.ToArray());
            SenderEmail.send(correo);
        }
Ejemplo n.º 14
0
        public IActionResult GenerateVerifyCode()
        {
            VerifyModel verifyModel = new VerifyModel()
            {
                CodeVerify = Encryptor.RandomString(6),
                Status     = false
            };

            HttpContext.Session.SetObject("verifyChangePW", verifyModel);
            // send code

            // get credential
            CredentialModel credential = JsonConvert.DeserializeObject <CredentialModel>(HttpContext.Session.GetString("vm"));

            SenderEmail.SendMail(credential.Profile.UserProfileEmail, "PETSHOP VERIFY CHANGE PASSWORD", "Code verify: " + verifyModel.CodeVerify);
            return(NoContent());
        }
Ejemplo n.º 15
0
 public RegisterModel(
     UserManager <Usuario> userManager,
     SignInManager <Usuario> signInManager,
     ILogger <RegisterModel> logger,
     RoleManager <IdentityRole> roleManager,
     SistemaDeControleDeTCCsContext context,
     SenderEmail senderEmail
     //IEmailSender emailSender
     )
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _logger        = logger;
     _roleManager   = roleManager;
     _context       = context;
     _senderEmail   = senderEmail;
     //_emailSender = emailSender;
 }
Ejemplo n.º 16
0
        public IActionResult ResetPassword(string accountEmail)
        {
            CredentialManage credential = JsonConvert.DeserializeObject <CredentialManage>(HttpContext.Session.GetString(Constants.VM_MANAGE) != null ? HttpContext.Session.GetString(Constants.VM_MANAGE) : "");
            string           token      = credential.JwToken;

            AccountManage acc = GetApiAccountManage.GetAccountManages(token).SingleOrDefault(p => p.Email == accountEmail);


            string newPassword = Encryptor.RandomString(6);

            acc.Password = Encryptor.MD5Hash(newPassword);

            using (HttpClient client = HelperClient.GetClient(token))
            {
                client.BaseAddress = new Uri(Constants.BASE_URI);
                var putTask = client.PutAsJsonAsync <AccountManage>(Constants.ACCOUNT_MANAGE + "/" + acc.Email, acc);
                putTask.Wait();
                var result = putTask.Result;
            }
            //send Email
            SenderEmail.SendMail(accountEmail, "PETSHOP - Reset Your Password", String.Format("Your new password is here {0} please check it", newPassword));

            return(NoContent());
        }
Ejemplo n.º 17
0
 public Settings(SenderEmail senderEmail)
 {
     SenderEmail = senderEmail;
 }
Ejemplo n.º 18
0
        public async Task <bool> GetPayment(string pagamentoId)
        {
            try
            {
                Wirecard.WirecardClient WC = null;
                WC = await SetAmbiente(WC);

                var _id      = new ObjectId(pagamentoId);
                var repMongo = new Repository.MongoRep("", _settings, "");

                var lstPagamentos = await repMongo.ListarById <Models.DTO.PagamentoPage>(_id);

                if (lstPagamentos != null)
                {
                    var userId                     = lstPagamentos.FirstOrDefault().UsuarioId;
                    var _pagamentoAtual            = lstPagamentos.FirstOrDefault().Obj;
                    var _pagamentoAtualContractual = lstPagamentos.FirstOrDefault();
                    if (_pagamentoAtual.paymentResponse != null)
                    {
                        #region Pagamentos Comuns
                        var result = await WC.Payment.Consult(_pagamentoAtual.paymentResponse.Id);

                        if (result.Status != _pagamentoAtual.paymentResponse.Status)
                        {
                            _pagamentoAtual.paymentResponse.Status = result.Status;
                            if (_pagamentoAtual.StatusPagamento == "Pendente" && result.Status == "AUTHORIZED")//Pago
                            {
                                _pagamentoAtual.StatusPagamento = "Pago";
                            }

                            //Mudar Status
                            await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>()
                            {
                                _id = _id,
                                Obj = _pagamentoAtual
                            });

                            if (_pagamentoAtual.StatusPagamento == "Pago")
                            {
                                //Inserir credito se for authorizado o pagamento
                                var credito = new Models.CreditoMetricas()
                                {
                                    UserId       = userId,
                                    Qtd          = _pagamentoAtual.Quantidade,
                                    DataCredito  = DateTime.Now,
                                    Debito       = 0,
                                    DataValidade = DateTime.Now.AddMonths(1),
                                    DataCriacao  = DateTime.Now
                                };
                                await repMongo.GravarOne <Models.CreditoMetricas>(credito);
                            }
                        }
                        if (result.Status == "CANCELLED" && _pagamentoAtual.StatusPagamento == "Pendente")
                        {
                            _pagamentoAtual.StatusPagamento = "Cancelado";
                            //Mudar Status
                            await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>()
                            {
                                _id = _id,
                                Obj = _pagamentoAtual
                            });
                        }
                        if (result.Status == "REFUNDED" && _pagamentoAtual.StatusPagamento == "Pendente")
                        {
                            _pagamentoAtual.StatusPagamento = "Cancelado";
                            //Mudar Status
                            await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>()
                            {
                                _id = _id,
                                Obj = _pagamentoAtual
                            });
                        }
                        if (result.Status == "REFUNDED" && _pagamentoAtual.StatusPagamento == "Pago")
                        {
                            _pagamentoAtual.StatusPagamento = "Cancelado";
                            //Mudar Status
                            await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>()
                            {
                                _id = _id,
                                Obj = _pagamentoAtual
                            });
                        }
                        #endregion
                    }
                    else
                    {
                        if (_pagamentoAtual.subscriptionResponse != null)
                        {
                            #region Invoices
                            var lstResult = await WC.Signature.ListSignatureInvoices(_pagamentoAtual.subscriptionResponse.Code);

                            foreach (var result in lstResult.Invoices)
                            {
                                if (_pagamentoAtual.Invoices == null)
                                {
                                    _pagamentoAtual.Invoices = new List <Invoice>();
                                }
                                var _invoice = _pagamentoAtual.Invoices.Where(w => w.Id == result.Id).FirstOrDefault();

                                if (_invoice == null)
                                {
                                    _pagamentoAtual.Invoices.Add(result);
                                    _invoice = result;
                                }

                                if (result.Status.Code == 3)//Pago
                                {
                                    _pagamentoAtual.StatusPagamento = "Pago";
                                    _pagamentoAtual.NextInvoice     = DateTime.Now.AddMonths(1);

                                    //Mudar Status
                                    await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>()
                                    {
                                        _id = _id,
                                        Obj = _pagamentoAtual
                                    });

                                    //Inserir credito se for authorizado o pagamento
                                    var credito = new Models.CreditoMetricas()
                                    {
                                        UserId       = userId,
                                        Qtd          = _pagamentoAtual.Quantidade,
                                        DataCredito  = DateTime.Now,
                                        Debito       = 0,
                                        DataValidade =
                                            _pagamentoAtual.codPlan.Contains("year")?
                                            DateTime.Now.AddMonths(12) :DateTime.Now.AddMonths(1),
                                        DataCriacao = DateTime.Now
                                    };
                                    await repMongo.GravarOne <Models.CreditoMetricas>(credito);

                                    //Email de pagamento
                                    var usuarioId = await repMongo.FindFilter <Models.Usuario>("Obj.UserId", _pagamentoAtual.Usuario.UserId);

                                    var envio = SenderEmail.Pagamento(_pagamentoAtual.Usuario.Email, usuarioId._id.ToString());
                                }

                                if (_invoice.Status != result.Status)
                                {
                                    if (result.Status.Code == 4)//Problemas no pagto
                                    {
                                        _pagamentoAtual.StatusPagamento = "Problemas";

                                        //Mudar Status
                                        await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>()
                                        {
                                            _id = _id,
                                            Obj = _pagamentoAtual
                                        });
                                    }
                                }
                            }

                            _pagamentoAtualContractual.Obj = _pagamentoAtual;
                            await repMongo.AlterarInvoices(_pagamentoAtualContractual);

                            #endregion
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Ejemplo n.º 19
0
 public Settings(string connectionString, SenderEmail senderEmail = null)
 {
     new ConnectionFactory(connectionString);
     SenderEmail = senderEmail;
 }
Ejemplo n.º 20
0
 public TccsController(SistemaDeControleDeTCCsContext context, SenderEmail senderEmail)
 {
     _context     = context;
     _senderEmail = senderEmail;
 }
Ejemplo n.º 21
0
 public IntegrationEmail(SenderEmail sender)
 {
     senderEmail = sender;
     Exceptions  = new List <Exception>();
 }