Example #1
0
        private static void Init(Entities.Culture culture)
        {
            JobProgress progress = progressController.Jobs.GetByName("Init");

            if (progress == null)
            {
                progress = progressController.CreateJob(0, 27, "Init");
            }
            else
            {
                progress.MinValue = 0;
                progress.MaxValue = 27;
            }

            Currencies.Init(settings.SqlConnectionString);
            progress.Value++;

            Types.Init(settings.SqlConnectionString);
            progress.Value++;

            Categories.Init(settings.SqlConnectionString);
            progress.Value++;

            Employees.Init(settings.SqlConnectionString);
            progress.Value++;

            SignUpTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            PersonTitleTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            ContactMediaTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            TourTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            PaymentTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            TourMembershipTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            Phonebook.Init(settings.SqlConnectionString);
            progress.Value++;

            TourStates.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            TourCostConstraintTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            Tours.Init(settings.SqlConnectionString);
            progress.Value++;

            ServiceTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            MailEventTypes.Init(settings.SqlConnectionString, culture);
            progress.Value++;

            TourRuleConstraints.Init(settings.SqlConnectionString);
            progress.Value++;

            TourCostRules.Init(settings.SqlConnectionString);
            progress.Value++;

            TourCostGroups.Init(settings.SqlConnectionString);
            progress.Value++;

            TourGroupServiceCosts.Init(settings.SqlConnectionString);
            progress.Value++;

            TourGroupServicePayments.Init(settings.SqlConnectionString);
            progress.Value++;

            TourGroupMembers.Init(settings.SqlConnectionString);
            progress.Value++;

            TourGroupEmployees.Init(settings.SqlConnectionString);
            progress.Value++;

            TourGroups.Init(settings.SqlConnectionString);
            progress.Value++;

            Services.Init(settings.SqlConnectionString);
            progress.Value++;

            TourGroupServices.Init(settings.SqlConnectionString);
            progress.Value++;

            Mails.Init(settings.SqlConnectionString);
            progress.Value++;

            // Note: please fix # of progress jobs if you added
            // anything else here.
        }
Example #2
0
        public static bool Send(Mail mail, UserCollection recipients)
        {
            bool res;

            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    // Insert mail
                    res = _mailsRepo.InsertMail(mail);

                    // Insert Send event
                    if (res)
                    {
                        var me = new MailEvent
                        {
                            EventTime = DateTime.Now,
                            EventUser = DomainModel.Application.User,
                            EventType = MailEventTypes.GetById(21) // Send
                        };

                        res = _mailsRepo.InsertEvent(mail, me);
                        if (res)
                        {
                            mail.EventLog.Add(me);
                        }
                    }

                    // Insert Receieve events
                    foreach (User user in recipients)
                    {
                        var me = new MailEvent
                        {
                            EventTime = DateTime.Now,
                            EventUser = user,
                            EventType = MailEventTypes.GetById(22) // Receive
                        };

                        if (!(res = _mailsRepo.InsertEvent(mail, me)))
                        {
                            break;
                        }

                        mail.EventLog.Add(me);
                    }

                    if (res)
                    {
                        ts.Complete();
                    }
                    else
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                res = false;

                try
                {
                    DomainModel.Application.Status.Update(
                        StatusController.Abstract.StatusTypes.Error,
                        "",
                        ex.Message);
                }
                catch (Exception)
                { }
            }

            return(res);
        }