public override void Save(MailboxStoreTypeProvider session)
 {
     if (!(this.RequestGuid == Guid.Empty))
     {
         SmtpAddress smtpAddress = this.SmtpAddress;
         if (!string.IsNullOrEmpty(this.SmtpAddress.ToString()))
         {
             AggregatedAccountListConfiguration aggregatedAccountListConfiguration = this.Read(session, null) as AggregatedAccountListConfiguration;
             if (aggregatedAccountListConfiguration != null)
             {
                 this.AggregatedAccountList = aggregatedAccountListConfiguration.AggregatedAccountList;
             }
             if (this.AggregatedAccountList == null)
             {
                 this.AggregatedAccountList = new List <AggregatedAccountInfo>();
             }
             AggregatedAccountInfo aggregatedAccountInfo = this.AggregatedAccountList.Find((AggregatedAccountInfo account) => account.RequestGuid == this.RequestGuid);
             if (aggregatedAccountInfo == null)
             {
                 this.AggregatedAccountList.Add(new AggregatedAccountInfo(this.AggregatedMailboxGuid, this.SmtpAddress, this.RequestGuid));
             }
             else
             {
                 aggregatedAccountInfo.SmtpAddress = aggregatedAccountInfo.SmtpAddress;
             }
             this.UpdateFAI(session);
             return;
         }
     }
 }
Beispiel #2
0
        // Token: 0x06000A62 RID: 2658 RVA: 0x0004446C File Offset: 0x0004266C
        internal static bool TryLoadRegionalConfiguration(MailboxSession session, out MailboxRegionalConfiguration regionalConfiguration)
        {
            regionalConfiguration = null;
            ADUser aduser = Utils.GetADRecipient(UserSettings.GetExternalDirectoryOrganizationId(session), session.MailboxOwnerLegacyDN) as ADUser;

            if (aduser == null)
            {
                Utils.Tracer.TraceError <string>((long)typeof(MailboxData).GetHashCode(), "Can't find AD recipient by mailbox owner's DN {0}", session.MailboxOwnerLegacyDN);
                return(false);
            }
            MailboxStoreTypeProvider mailboxStoreTypeProvider = new MailboxStoreTypeProvider(aduser);

            mailboxStoreTypeProvider.MailboxSession = session;
            try
            {
                regionalConfiguration = (MailboxRegionalConfiguration)mailboxStoreTypeProvider.Read <MailboxRegionalConfiguration>(session.MailboxOwner.ObjectId);
            }
            catch (FormatException arg)
            {
                Utils.Tracer.TraceError <ADObjectId, FormatException>((long)typeof(MailboxData).GetHashCode(), "MailboxRegionalConfiguration cannot be retrieved for user {0}. Error: {1}", session.MailboxOwner.ObjectId, arg);
                return(false);
            }
            if (regionalConfiguration == null || null == regionalConfiguration.TimeZone || regionalConfiguration.TimeZone.ExTimeZone == null)
            {
                Utils.Tracer.TraceError <ADObjectId>((long)typeof(MailboxData).GetHashCode(), "User {0} doesn't set a valid RegionalConfiguration or TimeZone", session.MailboxOwner.ObjectId);
                return(false);
            }
            return(true);
        }
Beispiel #3
0
        public override MRSRequestMailboxEntry Read(RequestIndexEntryProvider requestIndexEntryProvider, RequestIndexEntryObjectId identity)
        {
            this.ValidateRequestIndexId(identity.IndexId);
            ADUser aduser = requestIndexEntryProvider.ReadADUser(identity.IndexId.Mailbox, Guid.Empty);

            if (aduser == null)
            {
                return(null);
            }
            ExchangePrincipal      mailboxOwner = ExchangePrincipal.FromADUser(aduser, RemotingOptions.AllowCrossSite);
            MRSRequestMailboxEntry result;

            using (MailboxSession mailboxSession = MailboxSession.OpenAsAdmin(mailboxOwner, CultureInfo.InvariantCulture, "Client=MSExchangeMigration"))
            {
                MailboxStoreTypeProvider session = new MailboxStoreTypeProvider(aduser)
                {
                    MailboxSession = mailboxSession
                };
                MRSRequestMailboxEntry mrsrequestMailboxEntry = MRSRequest.Read <MRSRequestMailboxEntry>(session, identity.RequestGuid);
                mrsrequestMailboxEntry.RequestIndexId = identity.IndexId;
                mrsrequestMailboxEntry.OrganizationId = identity.OrganizationId;
                result = mrsrequestMailboxEntry;
            }
            return(result);
        }
        protected override void InternalProcessRecord()
        {
            base.InternalProcessRecord();
            MailboxStoreTypeProvider mailboxStoreTypeProvider = null;

            try
            {
                mailboxStoreTypeProvider = (MailboxStoreTypeProvider)this.CreateSession();
                if (this.LocalizeDefaultFolderName.IsPresent)
                {
                    Exception[] array;
                    mailboxStoreTypeProvider.MailboxSession.LocalizeDefaultFolders(out array);
                    if (array != null && array.Length > 0)
                    {
                        base.WriteError(new InvalidOperationException(Strings.ErrorCannotLocalizeDefaultFolders(this.Identity.ToString(), array[0].Message), array[0]), ErrorCategory.InvalidOperation, this.Identity);
                    }
                }
                mailboxStoreTypeProvider.MailboxSession.SetMailboxLocale();
            }
            finally
            {
                if (mailboxStoreTypeProvider != null && mailboxStoreTypeProvider.MailboxSession != null)
                {
                    mailboxStoreTypeProvider.MailboxSession.Dispose();
                    mailboxStoreTypeProvider.MailboxSession = null;
                }
            }
        }
        protected override IConfigDataProvider CreateMailboxDataProvider(ADUser adUser)
        {
            MailboxStoreTypeProvider mailboxStoreTypeProvider = new MailboxStoreTypeProvider(adUser);
            ExchangePrincipal        principal = ExchangePrincipal.FromADUser(base.SessionSettings, adUser, RemotingOptions.AllowCrossSite);

            mailboxStoreTypeProvider.MailboxSession = StoreTasksHelper.OpenMailboxSession(principal, "Set-MailboxConfiguration", this.LocalizeDefaultFolderName.IsPresent);
            return(mailboxStoreTypeProvider);
        }
 private void UpdateFAI(MailboxStoreTypeProvider session)
 {
     using (UserConfigurationXmlAdapter <AggregatedAccountListConfiguration> userConfigurationXmlAdapter = new UserConfigurationXmlAdapter <AggregatedAccountListConfiguration>(session.MailboxSession, "AggregatedAccountList", SaveMode.ResolveConflicts, new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), AggregatedAccountListConfiguration.property))
     {
         userConfigurationXmlAdapter.Save(this);
     }
     base.ResetChangeTracking();
 }
Beispiel #7
0
 public override void Save(MailboxStoreTypeProvider session)
 {
     using (UserConfigurationDictionaryAdapter <MRSRequest> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <MRSRequest>(session.MailboxSession, MRSRequest.GetName(this.RequestGuid), SaveMode.NoConflictResolutionForceSave, new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MRSRequestSchema.PersistedProperties))
     {
         userConfigurationDictionaryAdapter.Save(this);
     }
     base.ResetChangeTracking();
 }
Beispiel #8
0
 public override void Save(MailboxStoreTypeProvider session)
 {
     using (UserConfigurationDictionaryAdapter <MailboxSpellingConfiguration> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <MailboxSpellingConfiguration>(session.MailboxSession, "OWA.UserOptions", new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MailboxSpellingConfiguration.mailboxProperties))
     {
         userConfigurationDictionaryAdapter.Save(this);
     }
     base.ResetChangeTracking();
 }
 public override void Save(MailboxStoreTypeProvider session)
 {
     using (UserConfigurationDictionaryAdapter <AggregatedAccountConfiguration> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <AggregatedAccountConfiguration>(session.MailboxSession, "AggregatedAccount", SaveMode.NoConflictResolutionForceSave, new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), AggregatedAccountConfiguration.aggregatedAccountProperties))
     {
         userConfigurationDictionaryAdapter.Save(this);
     }
     base.ResetChangeTracking();
 }
 protected override void WriteResult(IConfigurable dataObject)
 {
     if (this.VerifyDefaultFolderNameLanguage.IsPresent)
     {
         MailboxStoreTypeProvider mailboxStoreTypeProvider = (MailboxStoreTypeProvider)base.DataSession;
         ((MailboxRegionalConfiguration)dataObject).DefaultFolderNameMatchingUserLanguage = mailboxStoreTypeProvider.MailboxSession.VerifyDefaultFolderLocalization();
     }
     base.WriteResult(dataObject);
 }
 public override void Delete(MailboxStoreTypeProvider session)
 {
     using (UserConfiguration mailboxConfiguration = UserConfigurationHelper.GetMailboxConfiguration(session.MailboxSession, "AggregatedAccount", UserConfigurationTypes.Dictionary, false))
     {
         if (mailboxConfiguration == null)
         {
             return;
         }
     }
     UserConfigurationHelper.DeleteMailboxConfiguration(session.MailboxSession, "AggregatedAccount");
 }
        public IEnumerable <T> FindPaged <T>(MailboxStoreTypeProvider session, QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy, int pageSize)
        {
            T        t    = (T)((object)this.Read(session, session.ADUser.Identity));
            List <T> list = new List <T>();

            if (t != null)
            {
                list.Add(t);
            }
            return(list);
        }
Beispiel #13
0
 public override void Delete(MailboxStoreTypeProvider session)
 {
     using (UserConfiguration mailboxConfiguration = UserConfigurationHelper.GetMailboxConfiguration(session.MailboxSession, MRSRequest.GetName(this.RequestGuid), UserConfigurationTypes.Dictionary, false))
     {
         if (mailboxConfiguration == null)
         {
             return;
         }
     }
     UserConfigurationHelper.DeleteMailboxConfiguration(session.MailboxSession, MRSRequest.GetName(this.RequestGuid));
 }
        public override IConfigurable Read(MailboxStoreTypeProvider session, ObjectId identity)
        {
            base.Principal = ExchangePrincipal.FromADUser(session.ADUser, null);
            IConfigurable result;

            using (UserConfigurationXmlAdapter <AggregatedAccountListConfiguration> userConfigurationXmlAdapter = new UserConfigurationXmlAdapter <AggregatedAccountListConfiguration>(session.MailboxSession, "AggregatedAccountList", SaveMode.NoConflictResolution, new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), new GetReadableUserConfigurationDelegate(UserConfigurationHelper.GetReadOnlyMailboxConfiguration), AggregatedAccountListConfiguration.property))
            {
                result = userConfigurationXmlAdapter.Read(base.Principal);
            }
            return(result);
        }
Beispiel #15
0
        public override IConfigurable Read(MailboxStoreTypeProvider session, ObjectId identity)
        {
            base.Principal = ExchangePrincipal.FromADUser(session.ADUser, null);
            IConfigurable result;

            using (UserConfigurationDictionaryAdapter <MailboxSpellingConfiguration> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <MailboxSpellingConfiguration>(session.MailboxSession, "OWA.UserOptions", new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MailboxSpellingConfiguration.mailboxProperties))
            {
                result = userConfigurationDictionaryAdapter.Read(base.Principal);
            }
            return(result);
        }
 public override void Save(MailboxStoreTypeProvider session)
 {
     using (UserConfigurationDictionaryAdapter <MailboxRegionalConfiguration> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <MailboxRegionalConfiguration>(session.MailboxSession, "OWA.UserOptions", new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MailboxRegionalConfiguration.mailboxProperties))
     {
         userConfigurationDictionaryAdapter.Save(this);
     }
     if (base.IsModified(MailboxRegionalConfigurationSchema.Language) && this.Language != null)
     {
         this.SaveCultures(session.MailboxSession.GetADRecipientSession(false, ConsistencyMode.FullyConsistent));
     }
     base.ResetChangeTracking();
 }
Beispiel #17
0
 internal static void CleanupMailboxStoreTypeProvider(IConfigDataProvider provider)
 {
     if (provider != null)
     {
         MailboxStoreTypeProvider mailboxStoreTypeProvider = (MailboxStoreTypeProvider)provider;
         if (mailboxStoreTypeProvider.MailboxSession != null)
         {
             mailboxStoreTypeProvider.MailboxSession.Dispose();
             mailboxStoreTypeProvider.MailboxSession = null;
         }
     }
 }
 public override IConfigurable Read(MailboxStoreTypeProvider session, ObjectId identity)
 {
     base.Principal = ExchangePrincipal.FromADUser(session.ADUser, null);
     using (UserConfigurationDictionaryAdapter <MailboxRegionalConfiguration> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <MailboxRegionalConfiguration>(session.MailboxSession, "OWA.UserOptions", new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MailboxRegionalConfiguration.mailboxProperties))
     {
         userConfigurationDictionaryAdapter.Fill(this);
     }
     if (base.Principal.PreferredCultures.Any <CultureInfo>())
     {
         this.Language = base.Principal.PreferredCultures.First <CultureInfo>();
     }
     return(this);
 }
Beispiel #19
0
 public override void Save(MailboxStoreTypeProvider session)
 {
     using (WorkingHoursAdapter <MailboxCalendarConfiguration> workingHoursAdapter = new WorkingHoursAdapter <MailboxCalendarConfiguration>(session.MailboxSession))
     {
         using (UserConfigurationDictionaryAdapter <MailboxCalendarConfiguration> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <MailboxCalendarConfiguration>(session.MailboxSession, "OWA.UserOptions", new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MailboxCalendarConfiguration.mailboxProperties))
         {
             using (UserConfigurationDictionaryAdapter <MailboxCalendarConfiguration> userConfigurationDictionaryAdapter2 = new UserConfigurationDictionaryAdapter <MailboxCalendarConfiguration>(session.MailboxSession, "Calendar", new GetUserConfigurationDelegate(UserConfigurationHelper.GetCalendarConfiguration), MailboxCalendarConfiguration.calendarProperties))
             {
                 workingHoursAdapter.Save(this);
                 userConfigurationDictionaryAdapter.Save(this);
                 userConfigurationDictionaryAdapter2.Save(this);
                 base.ResetChangeTracking();
             }
         }
     }
 }
Beispiel #20
0
        public override void Delete(RequestIndexEntryProvider requestIndexEntryProvider, MRSRequestMailboxEntry instance)
        {
            this.ValidateRequestIndexId(instance.RequestIndexId);
            ADUser aduser = requestIndexEntryProvider.ReadADUser(instance.RequestIndexId.Mailbox, Guid.Empty);

            if (instance.Principal == null)
            {
                instance.Principal = ExchangePrincipal.FromADUser(aduser, RemotingOptions.AllowCrossSite);
            }
            using (MailboxSession mailboxSession = MailboxSession.OpenAsAdmin(instance.Principal, CultureInfo.InvariantCulture, "Client=MSExchangeMigration"))
            {
                MailboxStoreTypeProvider session = new MailboxStoreTypeProvider(aduser)
                {
                    MailboxSession = mailboxSession
                };
                instance.Delete(session);
            }
        }
        public override void Delete(MailboxStoreTypeProvider session)
        {
            AggregatedAccountListConfiguration aggregatedAccountListConfiguration = this.Read(session, null) as AggregatedAccountListConfiguration;

            if (aggregatedAccountListConfiguration != null)
            {
                this.AggregatedAccountList = aggregatedAccountListConfiguration.AggregatedAccountList;
            }
            if (this.AggregatedAccountList != null)
            {
                this.AggregatedAccountList = this.AggregatedAccountList.FindAll((AggregatedAccountInfo account) => account.RequestGuid != this.RequestGuid);
            }
            if (this.AggregatedAccountList == null || this.AggregatedAccountList.Count == 0)
            {
                UserConfigurationHelper.DeleteMailboxConfiguration(session.MailboxSession, "AggregatedAccountList");
                return;
            }
            this.UpdateFAI(session);
        }
Beispiel #22
0
        public static T Read <T>(MailboxStoreTypeProvider session, Guid requestGuid) where T : MRSRequest, new()
        {
            ExchangePrincipal principal = ExchangePrincipal.FromADUser(session.ADUser, null);
            T result;

            using (UserConfigurationDictionaryAdapter <T> userConfigurationDictionaryAdapter = new UserConfigurationDictionaryAdapter <T>(session.MailboxSession, MRSRequest.GetName(requestGuid), new GetUserConfigurationDelegate(UserConfigurationHelper.GetMailboxConfiguration), MRSRequestSchema.PersistedProperties))
            {
                try
                {
                    T t = userConfigurationDictionaryAdapter.Read(principal);
                    if (t.RequestGuid != requestGuid)
                    {
                        throw new CannotFindRequestIndexEntryException(requestGuid);
                    }
                    result = t;
                }
                catch (FormatException innerException)
                {
                    throw new CannotFindRequestIndexEntryException(requestGuid, innerException);
                }
            }
            return(result);
        }
Beispiel #23
0
        // Token: 0x06001664 RID: 5732 RVA: 0x0007E0B0 File Offset: 0x0007C2B0
        internal static ExTimeZone LoadRegionalConfiguration(ADUser adUser, MailboxSession session)
        {
            ExTraceGlobals.HeuristicsTracer.TraceFunction(0L, "ReminderTimeCalculatorContext.LoadRegionalConfiguration");
            MailboxStoreTypeProvider mailboxStoreTypeProvider = new MailboxStoreTypeProvider(adUser);

            mailboxStoreTypeProvider.MailboxSession = session;
            MailboxRegionalConfiguration mailboxRegionalConfiguration = null;

            try
            {
                mailboxRegionalConfiguration = (MailboxRegionalConfiguration)mailboxStoreTypeProvider.Read <MailboxRegionalConfiguration>(session.MailboxOwner.ObjectId);
            }
            catch (FormatException arg)
            {
                ExTraceGlobals.GeneralTracer.TraceError <IExchangePrincipal, FormatException>(0L, "User '{0}' doesn't have a valid regional configuration - {1}", session.MailboxOwner, arg);
            }
            if (mailboxRegionalConfiguration != null && mailboxRegionalConfiguration.TimeZone != null)
            {
                ExTraceGlobals.HeuristicsTracer.TraceDebug <string, IExchangePrincipal>(0L, "Found time zone {0} for User '{0}'", mailboxRegionalConfiguration.TimeZone.ExTimeZone.ToString(), session.MailboxOwner);
                return(mailboxRegionalConfiguration.TimeZone.ExTimeZone);
            }
            ExTraceGlobals.HeuristicsTracer.TraceDebug <IExchangePrincipal>(0L, "User '{0}' doesn't have a valid regional configuration - using UTC as default time zone", session.MailboxOwner);
            return(ExTimeZone.UtcTimeZone);
        }
Beispiel #24
0
        public override IConfigurable Read(MailboxStoreTypeProvider session, ObjectId identity)
        {
            Guid requestGuid = new Guid(identity.GetBytes());

            return(MRSRequest.Read <MRSRequest>(session, requestGuid));
        }
 public IConfigurable[] Find(MailboxStoreTypeProvider session, QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy)
 {
     throw new NotImplementedException();
 }
 public abstract IConfigurable Read(MailboxStoreTypeProvider session, ObjectId identity);
 public virtual void Delete(MailboxStoreTypeProvider session)
 {
     throw new NotImplementedException();
 }
 public abstract void Save(MailboxStoreTypeProvider session);