Пример #1
0
        public void SendOrganizationInviteNotification(InviteNotification notification,
                                                       OrganizationInviteCommand command)
        {
            var objectName = string.Empty;
            var customText = string.Empty;
            var userRole   = string.Empty;

            using (var session = noSqlSessionFactory())
            {
                var org =
                    session.GetAll <Data.MongoDB.Organization>().Where(o => o.Id == command.OrganizationId).Select(
                        o => new { o.Name, o.CustomInvitationText }).SingleOrDefault();
                objectName = org.Name;
                customText = org.CustomInvitationText;
            }

            using (var session = actionsSessionFactory.CreateContext())
            {
                var member =
                    session.UserInterestingOrganizations.SingleOrDefault(
                        u => u.OrganizationId == command.OrganizationId && u.UserId == command.UserId);

                userRole = member.Role;
            }

            SendInviteNotification(notification, (int)NotificationTypes.OrganizationInvite, command.UserFullName,
                                   command.UserLink, objectName, command.OrganizationLink, command.Email, userRole, customText,
                                   u => u.OrganizationId == command.OrganizationId);
        }
Пример #2
0
        public new bool Execute(params string[] args)
        {
            SendEmail = true;
            SendSms   = false;
            var    msg = base.Execute(args);
            string userFromId;
            var    emailsTo = msg.To.Select(m => m.Address).ToList();

            using (var usersContext = usersContextFactory.CreateContext())
            {
                var usersTo = (from ue in usersContext.UserEmails
                               where emailsTo.Contains(ue.Email)
                               select new { ue.User.ObjectId, ue.Email }).ToList();

                userFromId =
                    usersContext.UserEmails.Where(u => u.Email == msg.From.Address)
                    .Select(u => u.User.ObjectId)
                    .SingleOrDefault();

                using (var context = actionsContextFactory.CreateContext(true))
                {
                    var message = new Data.EF.Actions.Message()
                    {
                        Date             = DateTime.Now,
                        Error            = Exception != null ? Exception.Message : null,
                        From             = msg.From.Address,
                        FromDisplayName  = msg.From.DisplayName,
                        FromUserObjectId = userFromId,
                        Body             = msg.Body,
                        Subject          = msg.Subject
                    };
                    foreach (var to in msg.To)
                    {
                        message.To             = to.Address;
                        message.ToDisplayName  = to.DisplayName;
                        message.ToUserObjectId =
                            usersTo.Where(u => u.Email == to.Address).Select(u => u.ObjectId).SingleOrDefault();
                        context.Messages.Add(message);
                    }
                }
            }

            var success = Exception == null;

            Exception = null;
            return(success);
        }
Пример #3
0
        public IEnumerable <TextValue> GetCategories()
        {
            using (var actionSession = actionSessionFactory.CreateContext())
            {
                var langCode = CurrentUser.LanguageCode;
                var cats     = (from c in actionSession.Categories
                                join ct in actionSession.Categories_Translation.Where(t => t.LanguageCode == langCode) on c.Id equals ct.CategoryId into ps
                                from ct in ps.DefaultIfEmpty()
                                select new TextValue {
                    ValueInt = c.Id, Text = ct != null ? ct.Name : c.Name
                }).FromCache(tags: new [] { langCode });

                return(cats.OrderBy(c => c.Text));
            }
        }
Пример #4
0
 public SimpleListContainerModel GetMyProjects(int pageNumber, string userObjectId)
 {
     using (var actionSession = actionSessionFactory.CreateContext())
     {
         var result = (from a in actionSession.Actions
                       where a.UserObjectId == userObjectId && a.ActionTypeId == (int)ActionTypes.JoinedProject &&
                       (!a.IsPrivate || CurrentUser.OrganizationIds.Contains(a.OrganizationId)) && !a.IsDeleted
                       group a by new { Id = a.ObjectId, Subject = a.Subject } into g
                       select new SimpleListModel
         {
             Id = g.Key.Id,
             Subject = g.Key.Subject,
             Date = g.Max(a => a.Date)
         }).OrderByDescending(i => i.Date).GetExpandablePage(pageNumber, CustomAppSettings.PageSizeList).ToList();
         result.ForEach(r => r.Type = EntryTypes.Project);
         var simpleList = new SimpleListContainerModel();
         simpleList.List = new ExpandableList <SimpleListModel>(result, CustomAppSettings.PageSizeList);
         return(simpleList);
     }
 }