public async Task <IActionResult> GetByName(string name, bool isCheckName)
        {
            var requestId = Guid.NewGuid().ToString();

            _logger.LogInformation($"RequestID:{requestId} - GetOpportunityByName called.");

            try
            {
                if (String.IsNullOrEmpty(name))
                {
                    _logger.LogError($"RequestID:{requestId} - GetOpportunityByName name == null.");
                    return(NotFound($"RequestID:{requestId} - GetOpportunityByName Invalid parameter passed"));
                }
                var thisOpportunity = await _opportunityService.GetItemByNameAsync(name, isCheckName, requestId);

                if (thisOpportunity == null)
                {
                    _logger.LogError($"RequestID:{requestId} - GetOpportunityByName no opporunities found.");
                    return(NotFound($"RequestID:{requestId} - GetOpportunityByName no opportunities found"));
                }

                return(Ok(JObject.FromObject(thisOpportunity)));
            }
            catch (Exception ex)
            {
                _logger.LogError($"RequestID:{requestId} - GetOpportunityByName error: {ex.Message}");
                var errorResponse = JsonErrorResponse.BadRequest($"GetOpportunityByName error: {ex.Message} ", requestId);

                return(BadRequest(errorResponse));
            }
        }
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            var requestId = $"bot_{Guid.NewGuid().ToString()}";

            _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post called.");

            try
            {
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.ServiceUrl: {activity.ServiceUrl}");
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.ChannelId: {activity.ChannelId}");

                var channelDataJson = JObject.FromObject(activity.ChannelData);
                var activityJson    = JObject.FromObject(activity);
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.channelData: {activityJson}");
                //var teamsChannelData = (TeamsChannelData)activity.ChannelData;
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.channelData: {channelDataJson["team"]["name"].ToString()} - {channelDataJson["team"]["id"].ToString()}");

                await _cardNotificationService.HandleIncomingRequestAsync(activity, _connectorClient);

                // Update the opportunity with the channelId
                var opportunity = await _opportunityService.GetItemByNameAsync(channelDataJson["team"]["name"].ToString(), false, requestId);

                if (opportunity != null)
                {
                    //TODO : WAVE-4 GENERIC ACCELERATOR Change : start
                    var obj = opportunity.MetaDataFields.FirstOrDefault(x => x.DisplayName == "OpportunityChannelId") ?? null;
                    if (obj != null)
                    {
                        obj.Values = channelDataJson["team"]["id"].ToString();
                    }
                    else
                    {
                        opportunity.MetaDataFields.Add(new OpportunityMetaDataFields {
                            DisplayName = "DisbursementSchedule", Values = channelDataJson["team"]["id"].ToString(), FieldType = FieldType.String
                        });
                    }

                    //opportunity.OpportunityChannelId = channelDataJson["team"]["id"].ToString();
                    //TODO : WAVE-4 GENERIC ACCELERATOR Change : end
                    await _opportunityService.UpdateItemAsync(opportunity, requestId);
                }

                var resp = new HttpResponseMessage(HttpStatusCode.OK);
                resp.Content = new StringContent($"<html><body>Message received.</body></html>", System.Text.Encoding.UTF8, @"text/html");

                return(resp);
            }
            catch (Exception ex)
            {
                _logger.LogError($"RequestID:{requestId} MessagesController_Post error: {ex.Message}");
                var errorResponse = JsonErrorResponse.BadRequest($"MessagesController_Post error: {ex} ", requestId);

                var resp = new HttpResponseMessage(HttpStatusCode.BadRequest);
                resp.Content = new StringContent($"<html><body>Error: {errorResponse} </body></html>", System.Text.Encoding.UTF8, @"text/html");

                return(resp);
            }
        }
Beispiel #3
0
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            var requestId = $"bot_{Guid.NewGuid().ToString()}";

            _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post called.");

            try
            {
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.ServiceUrl: {activity.ServiceUrl}");
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.ChannelId: {activity.ChannelId}");

                var channelDataJson = JObject.FromObject(activity.ChannelData);
                var activityJson    = JObject.FromObject(activity);
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.channelData: {activityJson}");
                //var teamsChannelData = (TeamsChannelData)activity.ChannelData;
                _logger.LogInformation($"RequestID:{requestId} - MessagesController_Post activity.channelData: {channelDataJson["team"]["name"].ToString()} - {channelDataJson["team"]["id"].ToString()}");

                var connector = new ConnectorClient(new Uri(activity.ServiceUrl), _microsoftAppCredentials);
                var response  = await _cardNotificationService.HandleIncomingRequestAsync(activity, _connectorClient);

                // Update the opportunity with the channelId
                var opportunity = await _opportunityService.GetItemByNameAsync(channelDataJson["team"]["name"].ToString(), false, requestId);

                if (opportunity != null)
                {
                    opportunity.OpportunityChannelId = channelDataJson["team"]["id"].ToString();
                    var updateOpp = await _opportunityService.UpdateItemAsync(opportunity, requestId);
                }

                var resp = new HttpResponseMessage(HttpStatusCode.OK);
                resp.Content = new StringContent($"<html><body>Message received.</body></html>", System.Text.Encoding.UTF8, @"text/html");

                return(resp);
            }
            catch (Exception ex)
            {
                _logger.LogError($"RequestID:{requestId} MessagesController_Post error: {ex.Message}");
                var errorResponse = JsonErrorResponse.BadRequest($"MessagesController_Post error: {ex} ", requestId);

                var resp = new HttpResponseMessage(HttpStatusCode.BadRequest);
                resp.Content = new StringContent($"<html><body>Error: {errorResponse} </body></html>", System.Text.Encoding.UTF8, @"text/html");

                return(resp);
            }
        }