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); }
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); }
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)); } }
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); } }