Exemplo n.º 1
0
        public void EmailFunctionality(string email, int EventId, GenerateEmailDto dto)
        {
            var repoUser = _contextManager.CreateRepositiry <IUserRepo>();
            var user     = repoUser.GetUserByEmail(email);

            if (user == null)
            {
                user = new User
                {
                    Email     = email,
                    FirstName = "",
                    LastName  = "",
                    Username  = ""
                };

                Thread thread = new Thread(() => _generateEmailWrapper.GenerateAndSendEmail(dto, user));
                thread.Start();
            }
            else
            {
                var repo        = _contextManager.CreateRepositiry <IEventUserLinkRepo>();
                var companyUser = repo.GetRecordByEventAndUser(user.Id, EventId);

                if (companyUser == null)
                {
                    Thread thread = new Thread(() => _generateEmailWrapper.GenerateAndSendEmail(dto, user));
                    thread.Start();
                }
            }
        }
Exemplo n.º 2
0
        public void InviteUsersToEvent(EventTreatmentUsersModel model)
        {
            var repo        = _contextManager.CreateRepositiry <IEventRepo>();
            var eventRecord = repo.GetById(model.EventId);

            _subscriptionService.CheckSubscription(eventRecord.CompanyId);

            if (eventRecord == null)
            {
                throw new ValidationException("Event not found.");
            }

            var generateEmail = new GenerateEmailDto
            {
                UrlAdress     = _urlAdress + "/event/" + model.EventId + "?",
                EmailMainText = "Invitation to the event, for confirmation follow the link",
                ObjectId      = model.EventId,
                Subject       = "Welcome to the Event"
            };

            foreach (string email in model.Email)
            {
                EmailFunctionality(email, model.EventId, generateEmail);
            }
        }
Exemplo n.º 3
0
        public void SendWelcomeEmail(UserCreateDto dto)
        {
            try
            {
                var user = new User
                {
                    FirstName = dto.FirstName,
                    LastName  = dto.LastName,
                    Email     = dto.Email,
                    Username  = dto.Username
                };

                var generateEmail = new GenerateEmailDto
                {
                    UrlAdress     = _urlAdress + "/signin?",
                    EmailMainText = "You are currently registered using",
                    ObjectId      = 0,
                    Subject       = "Welcome"
                };

                var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, user);
                _emailWrapper.SendEmail(emailModel);
            }
            catch
            {
                throw new ValidationException("Sorry, unexpected error.");
            }
        }
Exemplo n.º 4
0
        public void AddUsersCSV(int EventId, IFormFile file)
        {
            var repo        = _contextManager.CreateRepositiry <IEventRepo>();
            var eventRecord = repo.GetById(EventId);

            _subscriptionService.CheckSubscription(eventRecord.CompanyId);

            var listEmails = new List <string>();

            using (var reader = new StreamReader(file.OpenReadStream()))
                using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
                {
                    csv.Read();
                    csv.ReadHeader();
                    while (csv.Read())
                    {
                        listEmails.Add(csv.GetField("Email"));
                    }
                }

            var generateEmail = new GenerateEmailDto
            {
                UrlAdress     = _urlAdress + "/event/" + EventId + "?",
                EmailMainText = "Invitation to the event, for confirmation follow the link",
                ObjectId      = EventId,
                Subject       = "Welcome to the Event"
            };

            foreach (string email in listEmails)
            {
                EmailFunctionality(email, EventId, generateEmail);
            }
        }
        public void AddUsersCSV(int CompanyId, IFormFile file)
        {
            _subscriptionService.CheckSubscription(CompanyId);
            var listEmails = new List <string>();

            using (var reader = new StreamReader(file.OpenReadStream()))
                using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
                {
                    csv.Read();
                    csv.ReadHeader();
                    while (csv.Read())
                    {
                        listEmails.Add(csv.GetField("Email"));
                    }
                }
            var a = listEmails;

            var generateEmail = new GenerateEmailDto
            {
                UrlAdress     = _urlAdress + "/company/" + CompanyId + "?",
                EmailMainText = "Invitation to the company, for confirmation follow the link",
                ObjectId      = CompanyId,
                Subject       = "Welcome to the Company"
            };

            foreach (string email in listEmails)
            {
                EmailFunctionality(email, CompanyId, generateEmail);
            }
        }
Exemplo n.º 6
0
        public void sendRestoreEmail(string email)
        {
            var repo = _contextManager.CreateRepositiry <IUserRepo>();
            var user = repo.GetUserByEmail(email);

            if (user == null)
            {
                throw new ValidationException("Incorrect email combination");
            }

            if (user.isSocialNetworks)
            {
                throw new ValidationException("You have already registered via Social Networks");
            }

            var generateEmail = new GenerateEmailDto
            {
                UrlAdress     = _urlAdress + "/resetpassword?",
                EmailMainText = "Password recovery",
                ObjectId      = 0,
                Subject       = "Password recovery"
            };

            var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, user);

            _emailWrapper.SendEmail(emailModel);
        }
Exemplo n.º 7
0
        public async Task CheckFinishedEvents()
        {
            var repo       = _contextManager.CreateRepositiry <IEventRepo>();
            var listEvents = repo.GetAll(x => x.HoldingDate.Date == DateTime.UtcNow.Date);

            foreach (var oneEvent in listEvents)
            {
                var repoEventUsers = _contextManager.CreateRepositiry <IEventUserLinkRepo>();
                var eventListUsers = repoEventUsers.GetListUsers(oneEvent.Id);

                foreach (var user in eventListUsers)
                {
                    var generateEmail = new GenerateEmailDto
                    {
                        UrlAdress     = "as" + "/signin?",
                        EmailMainText = "To leave a review follow the link",
                        ObjectId      = 0,
                        Subject       = "Event review"
                    };

                    var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, user);
                    _emailWrapper.SendEmail(emailModel);
                }
            }
        }
        public string AppointUserAsAdmin(CompanyTreatmentUsersModel model)
        {
            _subscriptionService.CheckSubscription(model.CompanyId);
            var repoComp = _contextManager.CreateRepositiry <ICompanyRepo>();
            var company  = repoComp.GetById(model.CompanyId);

            if (company == null)
            {
                throw new ValidationException("Company not found.");
            }

            var userError = "Something wrong with this email(s):";

            foreach (string email in model.Email)
            {
                var repoUser = _contextManager.CreateRepositiry <IUserRepo>();
                var user     = repoUser.GetUserByEmail(email);
                if (!(user == null))
                {
                    var repo        = _contextManager.CreateRepositiry <ICompanyUserLinkRepo>();
                    var companyUser = repo.GetRecordByCompanyAndUser(user.Id, model.CompanyId);

                    if (!(companyUser == null))
                    {
                        companyUser.UserCompanyRole = (int)Model.Enums.CompanyUserRoleEnum.Admin;
                        _contextManager.Save();

                        var generateEmail = new GenerateEmailDto
                        {
                            UrlAdress     = _urlAdress + "/company/" + model.CompanyId + "?",
                            EmailMainText = "Congratulations, you are Admin of " + company.Name + "! Now you can invite people to the company and create events.",
                            ObjectId      = model.CompanyId,
                            Subject       = "Company"
                        };
                        var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, user);
                        _emailWrapper.SendEmail(emailModel);
                    }
                    else
                    {
                        userError = userError + " " + email;
                    }
                }
                else
                {
                    userError = userError + " " + email;
                }
            }
            if (userError == "Something wrong with this email:")
            {
                return("Users are successfully assigned");
            }
            else
            {
                return(userError);
            }
        }
Exemplo n.º 9
0
        public async Task SubscriptionEmail()
        {
            var repo           = _contextManager.CreateRepositiry <ICompanySubRepo>();
            var listCompanySub = repo.GetListOfExpiringSubs();

            foreach (var oneCompSub in listCompanySub)
            {
                var generateEmail = new GenerateEmailDto
                {
                    UrlAdress     = _urlAdress + "/company/" + oneCompSub.CompanyId,
                    EmailMainText = "Your subscription to " + oneCompSub.Company.Name + " will expire in 5 days",
                    ObjectId      = 0,
                    Subject       = "Sudscription"
                };

                var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, oneCompSub.User);
                _emailWrapper.SendEmail(emailModel);
            }
        }
        public EmailDto GenerateEmail(GenerateEmailDto dto, User user)
        {
            try
            {
                //  string FilePath = Path.Combine(Directory.GetCurrentDirectory(), "..\\Study.EventManager.Services", "Resources", "WelcomeTemplate.html");
                string FilePath = Path.Combine(Directory.GetCurrentDirectory(), "Resources", "WelcomeTemplate.html");

                StreamReader str      = new StreamReader(FilePath);
                string       MailText = str.ReadToEnd();
                var          url      = "";

                if (dto.ObjectId == 0)
                {
                    url = GetUrl(user.Email, dto.UrlAdress);
                }
                else
                {
                    url = GetObjectUrl(dto.ObjectId, user.Email, dto.UrlAdress);
                }

                var mainText = dto.EmailMainText;

                var mailText = MailText.Replace("[username]", user.FirstName + " " + user.LastName).Replace("[email]", user.Email).Replace("[verifiedLink]", url).Replace("[mainText]", mainText);

                var emailModel = new EmailDto
                {
                    Subject   = $"{dto.Subject} {user.Email}",
                    Body      = mailText,
                    ToAddress = user.Email,
                    ToName    = user.Username
                };

                return(emailModel);
            }
            catch
            {
                throw new GenerateEmailExceptions("Sorry, unexpected error.");
            }
        }
Exemplo n.º 11
0
        public void SendEmailToUsers(int EventId, string subject, string mainMassage)
        {
            var eventRepo = _contextManager.CreateRepositiry <IEventRepo>();
            var getEvent  = eventRepo.GetById(EventId);

            _subscriptionService.CheckSubscription(getEvent.CompanyId);

            if (getEvent == null)
            {
                throw new ValidationException("Event not found");
            }

            var repo      = _contextManager.CreateRepositiry <IEventUserLinkRepo>();
            var data      = repo.GetAll(x => x.EventId == EventId);
            var listUsers = repo.GetAllUsers(EventId);

            if (listUsers == null)
            {
                throw new ValidationException("Users not found in this event");
            }

            var generateEmail = new GenerateEmailDto
            {
                UrlAdress     = _urlAdress + "/event/" + EventId + "?",
                EmailMainText = mainMassage,
                ObjectId      = EventId,
                Subject       = subject
            };

            listUsers.Select(x => x.User);

            foreach (EventUserLink user in listUsers)
            {
                Thread thread = new Thread(() => _emailWrapper.SendEmail(_generateEmailWrapper.GenerateEmail(generateEmail, user.User)));
                thread.Start();
            }
        }
Exemplo n.º 12
0
        public void SendEventTicket(Event eventU, User user)
        {
            _subscriptionService.CheckSubscription(eventU.CompanyId);

            var pdfBytes = GetEventTicket(eventU, user);

            var file = new FileSendEmail
            {
                FileBytes = pdfBytes,
                FileName  = eventU.Name + "_Ticket.pdf"
            };

            var generateEmail = new GenerateEmailDto
            {
                UrlAdress     = _urlAdress + "/event/" + eventU.Id + "?",
                EmailMainText = "Your Ticket on Event",
                ObjectId      = eventU.Id,
                Subject       = "event ticket"
            };

            var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, user);

            _emailWrapper.SendEmail(emailModel, file);
        }
        public void GenerateAndSendEmail(GenerateEmailDto dto, User user)
        {
            var model = GenerateEmail(dto, user);

            _emailWrapper.SendEmail(model);
        }