public ActionResult SendMessageToVolunteersByDisaster(SendMessageToAllVolunteersByDisasterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                PopulateSendMessageViewModel(model);
                return(View("CreateMessage", model));
            }
            else if (model.IsSMSMessage && model.Message.Length > Constants.TwilioMessageLength)
            {
                PopulateSendMessageViewModel(model);
                ModelState["Message"].Errors.Add(string.Format("The message cannot have more than {0} characters when submiting as a SMS.", Constants.TwilioMessageLength));
                return(View("CreateMessage", model));
            }

            var sender             = model.DisasterName + " - Coordinator";
            var recipientCriterion = new RecipientCriterion(model.DisasterId, model.SelectedClusterIds, model.ClusterCoordinatorsOnly, model.CheckedInOnly);
            var message            = new Message(model.Subject, model.Message)
            {
                IsSMSMessage = model.IsSMSMessage
            };

            _messageSvc.SendMessageToDisasterVolunteers(message, recipientCriterion, sender);

            return(View(model));
        }
        public void MessageService__Calls_AdminSvc_WithSelectedClusters()
        {
            var mockAdminSvc           = new Mock <IAdmin>();
            var mockMessageCoordinator = new Mock <IMessageCoordinator>();

            var recipientCriterion = new RecipientCriterion(1, new [] { 1, 2 }, false, false);

            var sut = new MessageService(mockAdminSvc.Object, mockMessageCoordinator.Object);

            sut.SendMessageToDisasterVolunteers(new Message("Body", "Subject"), recipientCriterion);

            mockAdminSvc.Verify(m => m.GetVolunteersForDate(1, DateTime.Today, false, false, recipientCriterion.ClusterIds), Times.Once());
        }
        public ActionResult SendMessageToVolunteersByDisaster(SendMessageToAllVolunteersByDisasterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                PopulateSendMessageViewModel(model);
                return(View("CreateMessage", model));
            }
            var recipientCriterion = new RecipientCriterion(model.DisasterId, model.ClusterId);
            var message            = new Message(model.Subject, model.Message);

            _messageSvc.SendMessageToDisasterVolunteers(recipientCriterion, message);

            return(View(model));
        }
        public ActionResult SendMessageToVolunteersByDisaster(SendMessageToAllVolunteersByDisasterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                PopulateSendMessageViewModel(model);
                return(View("CreateMessage", model));
            }
            var sender             = model.DisasterName + " - Coordinator";
            var recipientCriterion = new RecipientCriterion(model.DisasterId, model.ClusterId, model.ClusterCoordinatorsOnly, model.CheckedInOnly);
            var message            = new Message(model.Subject, model.Message);

            _messageSvc.SendMessageToDisasterVolunteers(message, recipientCriterion, sender);

            return(View(model));
        }
        public void MessageService__Calls_AdminSvc_WithSelectedClusters()
        {
            var mockAdminSvc = new Mock<IAdmin>();
            var mockMessageCoordinator = new Mock<IMessageCoordinator>();

            var recipientCriterion = new RecipientCriterion(1, new []{1,2}, false,false);

            var sut = new MessageService(mockAdminSvc.Object, mockMessageCoordinator.Object);
            sut.SendMessageToDisasterVolunteers(new Message("Body","Subject"), recipientCriterion );

            mockAdminSvc.Verify(m=>m.GetVolunteersForDate(1,DateTime.Today,false,false, recipientCriterion.ClusterIds), Times.Once());

        }