Ejemplo n.º 1
0
        private bool SendEmailMessages(TaskShit Task)
        {
            TaskShit task = _helperSvc.getTask(Task.Id);

            task.status = true;
            _helperSvc.updateTask(task);
            _session.Transact(session =>
            {
                foreach (
                    QueuedMessage queuedMessage in
                    session.QueryOver <QueuedMessage>().Where(
                        message => message.SentOn == null && message.Tries < MAX_TRIES)
                    .Where(message => message.Site.Id == _site.Id)
                    .List())
                {
                    if (_emailSender.CanSend(queuedMessage))
                    {
                        _emailSender.SendMailMessage(queuedMessage);
                    }
                    else
                    {
                        queuedMessage.SentOn = CurrentRequestData.Now;
                    }
                    session.SaveOrUpdate(queuedMessage);
                }
            });

            //update task

            task.status  = false;
            task.LastRun = CurrentRequestData.Now;

            return(_helperSvc.updateTask(task));
        }
Ejemplo n.º 2
0
        public bool updateTask(TaskShit Task)
        {
            if (Task != null)
            {
                _session.Transact(session => session.Update(Task));
                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
        public bool addTask(TaskShit Task)
        {
            if (Task != null)
            {
                _session.Transact(session => session.Save(Task));
                return(true);
            }

            return(false);
        }
Ejemplo n.º 4
0
        private bool PortalImport(TaskShit Task)
        {
            TaskShit task = _helperSvc.getTask(Task.Id);

            task.status = true;
            _helperSvc.updateTask(task);
            //execute Task

            //update task

            task.status  = false;
            task.LastRun = CurrentRequestData.Now;

            return(_helperSvc.updateTask(task));
        }
Ejemplo n.º 5
0
        public string RunTask()
        {
            //run emailTask



            IList <TaskShit> tasks = _helperSvc.GetAllTask();

            if (tasks.Count() == 3)
            {
                //add Executebulkstafftask
                TaskShit BulkUpload = new TaskShit
                {
                    Name            = "BulkUpload",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 360,
                    LastRun         = CurrentRequestData.Now
                };
                _helperSvc.addTask(BulkUpload);


                //add Executebulkstafftask
                TaskShit PortalImport = new TaskShit
                {
                    Name            = "PortalImport",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 360,
                    LastRun         = CurrentRequestData.Now
                };
                _helperSvc.addTask(PortalImport);
            }

            if (!tasks.Any())
            {
                //create tasks

                TaskShit birthday = new TaskShit
                {
                    Name            = "Birthday",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 36000,
                    LastRun         = CurrentRequestData.Now
                };

                TaskShit Email = new TaskShit
                {
                    Name            = "SendEmail",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 30,
                    LastRun         = CurrentRequestData.Now
                };


                TaskShit Subscriptions = new TaskShit
                {
                    Name            = "Subscriptions",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 36000,
                    LastRun         = CurrentRequestData.Now
                };

                _helperSvc.addTask(birthday);
                _helperSvc.addTask(Email);
                _helperSvc.addTask(Subscriptions);
            }

            foreach (TaskShit task in tasks)
            {
                double timediff = CurrentRequestData.Now.Subtract(task.LastRun).TotalSeconds;
                //check if task is running.
                if (!task.status && timediff >= task.RunTimerSeconds)
                {
                    switch (task.Name)
                    {
                    case "SendEmail":
                        try
                        {
                            SendEmailMessages(task);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                            throw;
                        }
                        break;


                    case "Birthday":
                        try
                        {
                            DateTime datetime = CurrentRequestData.Now;

                            int hour = datetime.Hour;

                            if (hour > 8)
                            {
                                SendBithdayMessageTask(task);
                            }
                        }
                        catch (Exception e)
                        {
                            task.status = false;
                            _helperSvc.updateTask(task);
                            Console.WriteLine(e);
                            throw;
                        }
                        break;


                    case "Subscriptions":
                        try
                        {
                            SubscriptionTask(task);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                            throw;
                        }
                        break;
                    }
                }
            }

            return("Complete");
        }
Ejemplo n.º 6
0
        private bool SubscriptionTask(TaskShit Task)
        {
            TaskShit task = _helperSvc.getTask(Task.Id);

            task.status = true;
            _helperSvc.updateTask(task);
            //companySvc.ExecuteSubscriptionCheck();

            //activate them old shit

            IList <Subscription> activate = _companySvc.GetNewlyApprovedActiveSubscription();

            foreach (Subscription item in activate)
            {
                if (item.Expirationdate > CurrentRequestData.Now)
                {
                    item.Status = (int)SubscriptionStatus.Active;
                }
                else
                {
                    item.Status = (int)SubscriptionStatus.Expired;
                }
                _companySvc.UpdateSubscription(item);
            }


            IList <Subscription>       expiringsoon = _companySvc.GetSubscriptionExpiringSoon();
            IList <Subscription>       expiredd     = _companySvc.GetexpiredSubscriptions();
            IEnumerable <Subscription> expired      = expiringsoon.Where(x => x.Expirationdate < CurrentRequestData.Now);

            foreach (Subscription item in expiredd)
            {
                item.Status = (int)SubscriptionStatus.Expired;
                _companySvc.UpdateSubscription(item);
            }

            StringBuilder bodyText = new StringBuilder();

            bodyText.AppendLine("The following companies are about to expire.");
            bodyText.AppendLine(Environment.NewLine);


            foreach (Subscription sub in expiringsoon)
            {
                Company company = _companySvc.GetCompany(sub.CompanyId);


                bodyText.AppendFormat("{0} ------- {1} {2}", company.Name.ToUpper(), sub.SubscriptionCode, Convert.ToDateTime(sub.Expirationdate).ToShortDateString());
                bodyText.AppendLine(Environment.NewLine);
            }
            bodyText.AppendLine("Thank You");

            MrCMS.Entities.People.UserRole role = _rolesvc.GetRoleByName("CLIENT SERVICE");



            if (role != null && expiringsoon.Any())
            {
                foreach (MrCMS.Entities.People.User user in role.Users)
                {
                    //each user
                    QueuedMessage emailmsg = new QueuedMessage();
                    //Send Company Subscription Notice to these emails
                    string Email2 = "[email protected], [email protected], [email protected], [email protected], [email protected] ";
                    emailmsg.FromAddress = _mailSettings.SystemEmailAddress;
                    emailmsg.ToAddress   = user.Email;
                    emailmsg.ToAddress   = Email2;
                    emailmsg.Subject     = "Company Subscription Expiration Notice ";
                    emailmsg.FromName    = "NOVOHUB";
                    emailmsg.Body        = bodyText.ToString();

                    _emailSender.AddToQueue(emailmsg);
                }
            }


            //update task

            task.status  = false;
            task.LastRun = CurrentRequestData.Now;

            return(_helperSvc.updateTask(task));
        }
Ejemplo n.º 7
0
        private bool SendBithdayMessageTask(TaskShit Task)
        {
            TaskShit task = _helperSvc.getTask(Task.Id);

            task.status = true;
            _helperSvc.updateTask(task);
            IList <Enrollee> enrolleewithbirthday = _enrolleeService.GetEnrolleeCelebratingBirthday();

            List <string> phonenumbersent = new List <string>();
            DateTime      today           = CurrentRequestData.Now;

            foreach (Enrollee enrollee in enrolleewithbirthday.Where(x => x.Mobilenumber.Length > 10))
            {
                if (enrollee.LastyearBirthdaymsgsent < today.Year)
                {
                    string fullname = enrollee.Surname + " " + enrollee.Othernames;

                    if (!string.IsNullOrEmpty(fullname) && !phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        string messageFormated = _smsservice.GetConfig().BdaySmsTemplate.Replace("%name%", fullname);


                        Sms sms = new Sms();
                        sms.FromId       = "NovoHealth";
                        sms.DeliveryDate = CurrentRequestData.Now;
                        sms.Message      =
                            string.Format(messageFormated);
                        sms.DateDelivered = CurrentRequestData.Now;
                        sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                        sms.Msisdn        = enrollee.Mobilenumber;
                        sms.Status        = SmsStatus.Pending;
                        sms.Type          = SmsType.Birthday;

                        bool resp = _smsservice.SendSms(sms);

                        phonenumbersent.Add(enrollee.Mobilenumber);

                        //update enrollee last birthdaysent

                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                    //not sent for years

                    if (phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        //duplicate enrollee
                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                }
            }
            Log log = new Log();

            log.Message = string.Format("Birthday Message was sent to  {0} Enrollee's {1}", phonenumbersent.Count(), CurrentRequestData.Now.ToLongTimeString());
            log.Type    = LogEntryType.Audit;
            log.Detail  = "Birthday Message Sent";

            _logger.Insert(log);



            //Do PostVerification EVS

            IList <EnrolleeVerificationCode> verificationlis = _enrolleeService.GetPreviousDayAuthenticatedCodes();

            int smscount = 0;

            foreach (EnrolleeVerificationCode item in verificationlis)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.EnrolleeId);
                Provider provider = _providerservice.GetProvider(item.ProviderId);

                if (enrollee != null && provider != null & enrollee.Mobilenumber.Length > 9)
                {
                    string msg = string.Format("Dear {0} ,Novo Health Africa Cares. How were you served at {1} yesterday ,Call or text.08180287867.", (enrollee.Surname + " " + enrollee.Othernames).ToUpper(), provider.Name.ToUpper());


                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = msg;

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);


                    smscount++;
                }
                item.PostSMSSent = true;
                _helperSvc.Updateverification(item);
            }
            Log logit = new Log();

            logit.Message = string.Format("PostEVS Message was sent to  {0} Enrollee's {1}", smscount, CurrentRequestData.Now.ToLongTimeString());
            logit.Type    = LogEntryType.Audit;
            logit.Detail  = "Post EVS Message Sent";



            //send delivery
            IList <AuthorizationCode> thedeliveries = _claimservice.getBirthAuthorization();

            foreach (AuthorizationCode item in thedeliveries)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.enrolleeID);

                if (enrollee != null && enrollee.Mobilenumber.Length > 9)
                {
                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = "Dear esteemed enrollee, Novo Health Africa wishes to use this medium to congratulate you on the arrival of your bundle of Joy. It is with great joy we share this period and experience of Joy with you and your family. Please accept our heartfelt wishes. With love from NHA.";

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);
                    item.deliverysmssent = true;

                    _claimservice.updateAuthorization(item);
                }
            }


            //update task

            task.status  = false;
            task.LastRun = CurrentRequestData.Now;



            return(_helperSvc.updateTask(task));
        }
Ejemplo n.º 8
0
        public TaskShit getTask(int Id)
        {
            TaskShit result = _session.QueryOver <TaskShit>().Where(x => x.Id == Id).SingleOrDefault();

            return(result);
        }