public MessageApiController(
     SignInManager <User> signInManager,
     DataContext context,
     IGetMessageService messageService,
     IPostMessageService postMessageService
     )
 {
     _signInManager      = signInManager;
     _context            = context;
     _messageService     = messageService;
     _messageServicePost = postMessageService;
 }
        /// <summary>
        /// Executes the business logic.
        /// </summary>
        public override void Execute()
        {
            Trace(string.Format(CultureInfo.InvariantCulture, TraceMessageHelper.EnteredMethod, UnderlyingSystemTypeName, MethodBase.GetCurrentMethod().Name));

            using (OrganizationServiceContext = OrganizationServiceContext ?? new CrmServiceContext(OrganizationService))
                using (CrmService = CrmService ?? new CrmService(OrganizationServiceContext, TracingService))
                    using (PostMessageService = PostMessageService ?? new PostMessageService(CrmService, OrganizationServiceContext, PluginExecutionContext, TracingService))
                    {
                        Trace(string.Format(CultureInfo.InvariantCulture, "{0} | {1} started at {2} milliseconds", UnderlyingSystemTypeName, MethodBase.GetCurrentMethod().Name, Stopwatch.ElapsedMilliseconds));
                        PostMessageService.PostMessage();
                        Trace(string.Format(CultureInfo.InvariantCulture, "{0} | {1} ended at {2} milliseconds", UnderlyingSystemTypeName, MethodBase.GetCurrentMethod().Name, Stopwatch.ElapsedMilliseconds));
                    }

            Trace(string.Format(CultureInfo.InvariantCulture, TraceMessageHelper.ExitingMethod, UnderlyingSystemTypeName, MethodBase.GetCurrentMethod().Name));
        }