public Task <ResultInfo> SendMessageAsync(CreateHelpRequest message, string appName = null) { return(RetryUtils.DoAsync(async() => { var text = new StringBuilder(); if (!string.IsNullOrEmpty(appName)) { text.AppendLine($"*AppName:* {appName}"); } text.AppendLine($"*From:* {message.Email}"); text.AppendLine($"*Subject:* {message.Subject}"); text.AppendLine($"*Description:* {message.Description}"); var slack = new SlackClient(_options.Url); var slackMessage = new SlackMessage() { Channel = _options.Channel, Text = text.ToString(), Username = _options.Username, IconEmoji = Emoji.Angel }; return await slack.PostAsync(slackMessage) ? new ResultInfo(HttpStatusCode.OK) : new ResultInfo(HttpStatusCode.BadRequest, "Error in post message"); }, TimeSpan.FromMilliseconds(500), 3, false, exception => { LoggerUtils.Log("SlackManager exception", exception, nameof(SlackManager)); })); }
public Task <ResultInfo> AddRequestAsync(CreateHelpRequest model) { return(RetryUtils.DoAsync(async() => { var baseUrl = new Uri(new Uri(_options.Url), _addRequestApiMethod); var client = new RestClient(baseUrl); var request = new RestRequest(Method.POST); var outgoingQueryString = HttpUtility.ParseQueryString(string.Empty); outgoingQueryString.Add("apikey", _options.ApiKey); outgoingQueryString.Add("group", _options.Group); outgoingQueryString.Add("businessUnit", _options.BusinessUnit); outgoingQueryString.Add("email", model.Email); outgoingQueryString.Add("subject", model.Subject); outgoingQueryString.Add("description", model.Description); var postdata = outgoingQueryString.ToString(); request.AddParameter("application/x-www-form-urlencoded", postdata, ParameterType.RequestBody); var response = await client.ExecuteTaskAsync(request); if (!response.IsSuccessful) { LoggerUtils.Log($"HelpDesk API request was failed with code: {response.StatusCode}" + Environment.NewLine + $"Response: {response.Content}", _logFileName); return new ResultInfo(response.StatusCode, _invalidRequestMessage); } var responseModel = JsonConvert.DeserializeObject <CreateHelpDeskRequestResponse>(response.Content); if (responseModel.Response.Result.Status == CreateHelpDeskRequestResponse.Status.Failure) { LoggerUtils.Log($"HelpDesk API AddRequest was failed with message: {responseModel.Response.Result.Message}", _logFileName); return new ResultInfo(HttpStatusCode.BadRequest, _invalidRequestMessage); } return new ResultInfo(HttpStatusCode.OK); }, TimeSpan.FromMilliseconds(500), 3, false, exception => { LoggerUtils.Log("HelpDeskManager exception", exception, _logFileName); })); }