public void ServiceRequestMessageConstructorTest()
        {
            ServiceName           serviceName = new ServiceName(); // TODO: Initialize to an appropriate value
            ServiceRequestMessage target      = new ServiceRequestMessage(serviceName);

            Assert.Inconclusive("TODO: Implement code to verify target");
        }
        public async Task <IActionResult> CreateServiceRequestMessage(ServiceRequestMessage message)
        {
            // Message and Service Request Id (Service request Id is the partition key for a message)
            if (string.IsNullOrWhiteSpace(message.Message) || string.IsNullOrWhiteSpace(message.PartitionKey))
            {
                return(Json(false));
            }

            // Get Service Request details
            var serviceRequesrDetails = await _serviceRequestOperations.GetServiceRequestByRowKey(message.PartitionKey);

            // Populate message details
            message.FromEmail       = HttpContext.User.GetCurrentUserDetails().Email;
            message.FromDisplayName = HttpContext.User.GetCurrentUserDetails().Name;
            message.MessageDate     = DateTime.UtcNow;
            message.RowKey          = Guid.NewGuid().ToString();

            // Get Customer and Service Engineer names
            var customerName        = (await _userManager.FindByEmailAsync(serviceRequesrDetails.PartitionKey)).UserName;
            var serviceEngineerName = (await _userManager.FindByEmailAsync(serviceRequesrDetails.ServiceEngineer)).UserName;
            var adminName           = (await _userManager.FindByEmailAsync(_options.Value.AdminEmail)).UserName;

            // Save the message to Azure Storage
            await _serviceRequestMessageOperations.CreateServiceRequestMessageAsync(message);

            // Broadcast the message to all clients asscoaited with Service Request
            _signalRConnectionManager.GetHubContext <ServiceMessagesHub>()
            .Clients
            .Users(new List <string> {
                customerName, serviceEngineerName, adminName
            })
            .publishMessage(message);
            // Return true
            return(Json(true));
        }
        public async Task CreateServiceRequestMesageAsync(ServiceRequestMessage serviceRequestMessage)
        {
            using (_unitOfWork)
            {
                await _unitOfWork.Repository <ServiceRequestMessage>().AddAsync(serviceRequestMessage);

                _unitOfWork.CommitTransaction();
            }
        }
Example #4
0
        void SendRequest()
        {
            ServiceRequestMessage message = new ServiceRequestMessage()
            {
                Request = TextBoxServiceRequest.Text
            };

            SendToService(message);
        }
Example #5
0
        private void HandleMessage(ServiceRequestMessage message)
        {
            var service = this.RegisterService(message.ServiceName);

            if (service == null)
            {
                throw new SshConnectionException($"Service \"{message.ServiceName}\" not available.",
                                                 DisconnectReason.ServiceNotAvailable);
            }
            this.SendMessage(new ServiceAcceptMessage(message.ServiceName));
        }
Example #6
0
        private void HandleMessage(ServiceRequestMessage message)
        {
            SshService service = RegisterService(message.ServiceName);

            if (service != null)
            {
                SendMessage(new ServiceAcceptMessage(message.ServiceName));
                return;
            }
            throw new SshConnectionException(string.Format("Service \"{0}\" not available.", message.ServiceName),
                                             DisconnectReason.ServiceNotAvailable);
        }
Example #7
0
 void SendRequest()
 {
     ServiceRequestMessage message = new ServiceRequestMessage() { Request = TextBoxServiceRequest.Text };
     SendToService(message);
 }