Ejemplo n.º 1
0
        public async Task <UserSetting> GetSettingsForUserAsync(string userId)
        {
            var isHelpDeskUser = Context.SecurityProvider.IsTdHelpDeskUser ||
                                 Context.SecurityProvider.IsTdAdministrator;
            var settings = await Context.UserSettings.FindAsync(userId);

            //ensure settings exist
            if (settings == null)
            {
                settings = UserSetting.GetDefaultSettingsForUser(userId, isHelpDeskUser);
                using (var tempCtx = new TdDomainContext())
                {
                    await tempCtx.UserSettingsManager.AddOrUpdateSettingsForUser(settings);

                    await tempCtx.SaveChangesAsync();
                }
            }
            //ensure that the user has all required lists for their role, if not blow away list settings and recreate
            if (!settings.ListSettings.HasRequiredDefaultListSettings(isHelpDeskUser))
            {
                settings.ListSettings = new UserTicketListSettingsCollection
                {
                    UserTicketListSetting.GetDefaultListSettings(userId, isHelpDeskUser)
                };
                using (var tempCtx = new TdDomainContext())
                {
                    await tempCtx.UserSettingsManager.AddOrUpdateSettingsForUser(settings);

                    await tempCtx.SaveChangesAsync();
                }
            }
            return(settings);
        }
Ejemplo n.º 2
0
 private static void RaiseTicketsChanged(TdDomainContext sender, IEnumerable <Ticket> tickets)
 {
     //TODO: Static events have their (rare) uses, but this should use a service bus or formal pub/sub mechanism eventually
     if (TicketsChanged != null)
     {
         TicketsChanged(sender, tickets);
     }
 }
Ejemplo n.º 3
0
 private static void RaiseNotificationsCreated(TdDomainContext sender, IEnumerable <TicketEventNotification> notifications)
 {
     //TODO: Static events have their (rare) uses, but this should use a service bus or formal pub/sub mechanism eventually
     if (NotificationsCreated != null)
     {
         NotificationsCreated(sender, notifications);
     }
 }
Ejemplo n.º 4
0
        public async Task <UserSetting> GetSettingsForUserAsync(string userId)
        {
            var settings = await Context.UserSettings.FindAsync(userId);

            if (settings == null)
            {
                //settings for user not found, make default and save on separate context (so we don't commit other changes on this context as a side-effect).
                settings = UserSetting.GetDefaultSettingsForUser(userId, Context.SecurityProvider.IsTdHelpDeskUser || Context.SecurityProvider.IsTdAdministrator);
                using (var tempCtx = new TdDomainContext())
                {
                    tempCtx.UserSettingsManager.AddSettingsForUser(settings);
                    await tempCtx.SaveChangesAsync();
                }
            }
            return(settings);
        }
Ejemplo n.º 5
0
 public UserSettingsManager(TdDomainContext context)
 {
     Context = context;
 }