Пример #1
0
        private void btnSendMessageWeb_Click(object sender, RoutedEventArgs e)
        {
            SendMessageMode mode = SendMessageMode.All;

            if (rbSelectedCountries.IsChecked.Value)
            {
                mode = SendMessageMode.SelectedCountries;
            }
            else if (rbExceptSelectedCountries.IsChecked.Value)
            {
                mode = SendMessageMode.ExceptSelectedCountries;
            }
            var start1 = Stopwatch.StartNew();
            var test   = cmbCountries.SelectedItems.Cast <Country>().Select(x => x.GeoId).ToList();
            AdminServiceClient client = new AdminServiceClient();

            client.SendMessage(txtTopic.Text, txtContent.Text, mode, test);
        }
Пример #2
0
        public void SendMessage(string topic, string message, SendMessageMode mode, List <int> countriesId)
        {
            var session = NHibernateContext.Current().Session;

            using (var trans = session.BeginTransaction())
            {
                //get admin
                var             admin    = session.QueryOver <Profile>().Where(x => x.UserName == "Admin").SingleOrDefault();
                IList <Profile> profiles = null;
                if (mode == SendMessageMode.All)
                {
                    profiles = session.QueryOver <Profile>().Where(x => !x.IsDeleted && x.GlobalId != admin.GlobalId).List();
                }
                else if (mode == SendMessageMode.SelectedCountries)
                {
                    profiles = session.QueryOver <Profile>().Where(x => !x.IsDeleted && x.GlobalId != admin.GlobalId).WhereRestrictionOn(x => x.CountryId).IsIn(countriesId).List();
                }
                else
                {
                    profiles = session.QueryOver <Profile>().Where(x => !x.IsDeleted && x.GlobalId != admin.GlobalId).WhereRestrictionOn(x => x.CountryId).Not.IsIn(countriesId).List();
                }
                foreach (var profile in profiles)
                {
                    var msg = new Message();
                    msg.Content     = message;
                    msg.Topic       = topic;
                    msg.Sender      = admin;
                    msg.Receiver    = profile;
                    msg.CreatedDate = DateTime.UtcNow;
                    msg.Priority    = (Model.MessagePriority)MessagePriority.System;
                    session.Save(msg);
                }

                trans.Commit();
            }
        }