
рдХрд╛рдо рдкрд░ рдФрд░ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдореЗрдВ, рд╣рдореЗрдВ рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ
рдбреЗрдЯрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдлреЛрди рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрдкрд░реНрдХреЛрдВ, рдореЗрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдХреНрд╕рд░ рдпрд╣ рднреА рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИред
рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрдИ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдШрдЯрдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдпреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдЙрди рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдЪреНрдЫрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ
XtraScheduler рдЕрдиреБрд╕реВрдЪрдХ рдИрд╡реЗрдВрдЯ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рд╕реЗ рдорд┐рд▓реА
рдереАрдВ ред рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрддреНрдкрд╛рдж рд╕реЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рджреЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╡рд╕реНрддреБрдПрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдВрдЧреАред
рдпреЗ рджреЛ рдбреЗрдЯрд╛ рд╕реЗрдЯ (рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп / рдЕрдВрддрд┐рдо) рдФрд░ рдПрдХ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝рд░ рд╣реИ рдЬреЛ рдЗрди рд╕реЗрдЯреЛрдВ рдкрд░ рдХрдИ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓рдХреНрд╖реНрдп рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдСрдмреНрдЬреЗрдХреНрдЯ
рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рдЖрдкрдХреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрдпрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдЕрд░реНрде рдХреЗрд╡рд▓ рдПрдХ "рдореБрдЦреНрдп" рдХреЙрдкреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓рдХрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдЖрдпрд╛рддрдХ / рдирд┐рд░реНрдпрд╛рддрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреБрдХреНрдд рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕реЗрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
рдПрдХ рдмреЗрд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рд╕рднреА рд╡рдВрд╢рдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ, рдЧреБрдгреЛрдВ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдРрд╕реЗ рд╡рд░реНрдЧ рдХреЛ рдХрд╣реЗрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SynchronizerBaseред рдРрд╕рд╛ рд╡рд░реНрдЧ рд╡рд╛рдВрдЫрд┐рдд рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдЖрд╡рд╢реНрдпрдХ рддреБрд▓реНрдпрдХрд╛рд▓рди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдХреЙрд▓ рдХреЗ рдПрдХ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд░рдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд░рд╛рд╕рдд рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╢реАрд▓рддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╣реЛрдиреЗ рд╕реЗ рдЖрдк рдХреЛрдб рдбреБрдкреНрд▓реАрдХреЗрд╢рди рд╕реЗ рдореБрдХреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЧреБрдгреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рдпрд╣ рддрдереНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЧреВ рд╡рд╛рд░рд┐рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕рдВрдЧрдд рдПрдкреАрдЖрдИ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред
public abstract class SynchronizerBase {
рдХрд░реНрддрд╡реНрдпреЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрди
рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рд╕рдВрдЧрдд рд╕рд┐рдВрдХреНрд░реЛрдмрд╛рдЗрдЬрд╝рд░рдмреЗрд╕ рд╡рдВрд╢рдЬреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ "рд╕рдХреНрд╖рдо" рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реБрдП рд╕реЗрдЯ "рдореБрдЦреНрдп" рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдЬреЛ "рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЬрд╛рдирддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдХрдИ рд╡рдВрд╢рдЬ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ImportSynchronizer рдФрд░ ExportSynchronizer, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рдВрд╢рдЬреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпреЗ рдХрдХреНрд╖рд╛рдПрдВ рдЕрдореВрд░реНрдд рд░рд╣ рд╕рдХрддреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
XtraScheduler рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реНрдХреАрдо рдорд┐рд▓реА:

рдЙрдк-рд╡рд┐рднрд╛рдЬрдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо
рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╣реА рдЕрд▓рдЧ рдХрд░рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓рдХрд░, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
public class ImportSynchronizeManager : ImportManager { public ImportSynchronizeManager(AppointmentExchanger synchronizer) : base(synchronizer) { } protected internal override void PerformExchange() { Appointments.BeginUpdate(); try { PrepareSynchronization(); SynchronizeAppointments(); DeleteNonSynchronizedAppointments(); } finally { Appointments.EndUpdate(); } } } public class ExportSynchronizeManager : ExportManager { public ExportSynchronizeManager(AppointmentExchanger synchronizer) : base(synchronizer) { } protected internal override void PerformExchange() { PrepareSynchronization(); SynchronizeOutlookAppointments(); CreateNewOutlookAppointments(); } }
рдбреЗрдЯрд╛рд╕реЗрдЯ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди
рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рддреАрди рдореБрдЦреНрдп рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ:
- рдореВрд▓ рдбреЗрдЯрд╛ рд╕реЗрдЯ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдХреНрд╖реНрдп рдкрд░ рд╡рд╕реНрддреБ рдХреА рдПрдХ рдирдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ;
- рд╕реНрд░реЛрдд рд╕реЗрдЯ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдХреНрд╖реНрдп рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ;
- рд▓рдХреНрд╖реНрдп рд╕реЗрдЯ рдкрд░ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рдХрд╛рд▓реЗрдВ рдЬреЛ рдореВрд▓ рдПрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдСрдкрд░реЗрд╢рди рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдо рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

рд╡рд░реНрдгрд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЖрдкрдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рд░рд┐рд╕ рдореЗрдВ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ "рдореБрдЦреНрдп" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╕рдВрдж рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рд╕реЗрдЯ рд╕реНрдерд╛рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ ImportSynchronizer рдФрд░ ExportSynchronizer Classes рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдкрд░ рд╡рд┐рдкрд░реАрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВрдЧреЗред
рдШрдЯрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди
рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдЬрдм рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ "рдСрдкрд░реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ" рдФрд░ "рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж" рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ред рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рдЗрд╡реЗрдВрдЯ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред
SynchronizingEventArgs рдФрд░ SynchronizedEventArgs рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд╕реЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдФрд░ рдЧреБрдг рдЬреЛрдбрд╝реЗрдВред рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рддреБрд░рдВрдд рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рддреЛ рддрд░реНрдХ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╡рд╛рд░рд┐рд╕ рдореЗрдВ рд▓рд╛рдкрддрд╛ рдЧреБрдгреЛрдВ рдХреЛ рдмрдирд╛рдПрдВред
public class AppointmentEventArgs : EventArgs { public AppointmentEventArgs(Appointment apt) { } public Appointment Appointment { get { ... } } } public class AppointmentCancelEventArgs : AppointmentEventArgs { public AppointmentCancelEventArgs(Appointment apt) : base(apt) { } public bool Cancel { get { ... } } } public class AppointmentSynchronizingEventArgs : AppointmentCancelEventArgs { public AppointmentSynchronizingEventArgs(Appointment apt) : base(apt) { } public SynchronizeOperation Operation { get { ... } } } public class OutlookAppointmentSynchronizingEventArgs : AppointmentSynchronizingEventArgs { public OutlookAppointmentSynchronizingEventArgs(Appointment apt, _AppointmentItem olApt) : base(apt) { } public _AppointmentItem OutlookAppointment { get { ... } } }
рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк OnException рдШрдЯрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛ рдХреЗ рддрд░реНрдХ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
iCalendarImporter importer;
рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛
рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред рдЗрд╕реЗ SynchronizingEventArgs рдИрд╡реЗрдВрдЯ рдХреЗ рддрд░реНрдХреЛрдВ рдореЗрдВ рд░рджреНрдж рдЧреБрдг рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рджреЛ рд╕реНрд╡рддрдВрддреНрд░ рдбреЗрдЯрд╛ рд╕реЗрдЯ "рдорд░реНрдЬрд┐рдВрдЧ" рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдореЗрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ, рдЬрдм рдпрд╣ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди, рдкрд╣рд▓реЗ рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реЗ рдореЗрдВ
рд╕рднреА рд╣рдЯрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
AppointmentImportSynchronizer synchronizer;
рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЗрд░рдлреЗрд░ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛
рд╡рд╕реНрддреБ рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ SynchronizeOperation {рдХреНрд░рд┐рдПрдЯ, рд░рд┐рдкреНрд▓реЗрд╕, рдбрд┐рд▓реАрдЯ} рдкреНрд░реЙрдкрд░реНрдЯреА рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореВрд▓ рд╕реЗрдЯ рд╕реЗ рдХреЙрдкреА рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рд╣рдЯрд╛ рд╕рдХреЗрдВрдЧреЗред
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ "рд╕рдВрдкрд╛рджрд┐рдд рд╕рдВрдШрд░реНрд╖" рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
void synchronizer_AppointmentSynchronizing(object sender, AppointmentSynchronizingEventArgs e) { switch (e.Operation) { case SynchronizeOperation.Replace: if (ShouldDeleteInsteadReplace.Checked) e.Operation = SynchronizeOperation.Delete; break; }
рдпреВрдЖрдИ рддрддреНрд╡
рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝рд░ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдВрджреЗрд╢, рд╕рдВрд╡рд╛рдж рдФрд░ рдЕрдиреНрдп рджреГрд╢реНрдп рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗред рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛ рд╕реЗред
рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ
рдХрднреА-рдХрднреА рдпрд╣ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рдЕрдкрдиреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрд╣ рддрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддреБрд▓реНрдпрдХрд╛рд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛ рд╕реЗрдЯ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдХреЛрдб рд╕реЗ рдЗрд╕ рд╕реЗрдЯ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг
рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ред
рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрдирдХреЗ рдкреНрд░рджрд╛рддрд╛ рдХреЛ "рдкрд░реНрдЪреА" рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЙрдирдХреЗ рддрд░реНрдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝рд░ рдХреЛ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
void DoFilteredImport() { OutlookImport importer = new OutlookImport(this.schedulerStorage1); TimeInterval interval = CalculateCurrentWeekInterval(); ParameterizedCalendarProvider provider = new ParameterizedCalendarProvider(interval); importer.SetCalendarProvider(provider); importer.Import(System.IO.Stream.Null); }
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛ рд░рд╣реА рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдзрд╛рд░ рд╡рд░реНрдЧ SynchronizerBase рдореЗрдВ рдЯрд░реНрдорд┐рдиреЗрдЯ рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдЧреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рддреБрд░рдВрдд рдмрд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрдд рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
void synchronizer_OnException(object sender, ExchangeExceptionEventArgs e) {
рддрд╛рдирд╛рдирд╛
рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдкрдХреЗ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЧреБрдгреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдХрд╕реНрдЯрдо рдЧреБрдг рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕реНрддрд░ рдкрд░ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
void exporter_AppointmentExporting(object sender, AppointmentExportingEventArgs e) { iCalendarAppointmentExportingEventArgs args = e as iCalendarAppointmentExportingEventArgs; AddEventAttendees(args.VEvent, тАЬtest@corp.comтАЭ); } private void AddEventAttendee(VEvent ev, string address) { TextProperty p = new TextProperty("ATTENDEE", String.Format("mailto:{0}", address)); p.AddParameter("CN", address); p.AddParameter("RSVP", "TRUE"); ev.CustomProperties.Add(p); }
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
public class MyOutlookImportSynchronizer : OutlookImportSynchronizer { public MyOutlookImportSynchronizer(SchedulerStorageBase storage) : base(storage) { } protected override OutlookExchangeManager CreateExchangeManager() { return new MyExchangeManager(); } }
рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ
рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдмрдирд╛рдПрдБ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреИрд▓реЗрдВрдбрд░ рдкрд░ рджрд░реНрд╢рд╛рдИ рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдпрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдИ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реАред рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕рд╣рд╛рдпрдХ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд░рдЦреЗрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдШрдЯрдХ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдВред
public class OutlookExchangeHelper { public static string[] GetOutlookCalendarNames(); public static string[] GetOutlookCalendarPaths() ; public static List<OutlookCalendarFolder> GetOutlookCalendarFolders(); } public class OutlookUtils { public static _Application GetOutlookApplication(); public static void ReleaseOutlookObject(object obj); } public class iCalendarConvert { public static TimeSpan ToUtcOffset(string value); public static string FromUtcOffset(TimeSpan value) ; public static string UnescapeString(string str); }
рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд "рдЯрд┐рдкреНрд╕ рдХрд╛ рд╕рдВрдЧреНрд░рд╣" рдЖрдкрдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред