/// <summary> /// Get configured wait value in milliseconds. /// </summary> /// <returns>Wait value in milliseconds.</returns> private TimeOption GetWaitValue() { var timeOption = new TimeOption(); var waitInMilliseconds = this.utilityConfigurationSection.GetSection("shortWaitInMilliseconds").Get <int>(); timeOption.Short = TimeSpan.FromMilliseconds(waitInMilliseconds); waitInMilliseconds = this.utilityConfigurationSection.GetSection("mediumWaitInMilliseconds").Get <int>(); timeOption.Medium = TimeSpan.FromMilliseconds(waitInMilliseconds); waitInMilliseconds = this.utilityConfigurationSection.GetSection("longWaitInMilliseconds").Get <int>(); timeOption.Long = TimeSpan.FromMilliseconds(waitInMilliseconds); return(timeOption); }
public static int GetDays(this TimeOption option) { switch (option) { case (TimeOption.week): return(7); case (TimeOption.month): return(30); case (TimeOption.year): return(365); default: return(1); } }
private Video getVideo(TimeOption option) { var data = new VideoRetrieve(); Video video = new Video(); switch (option) { case TimeOption.ThisWeek: video = data.MostViewedThisWeek; break; case TimeOption.ThisMonth: video = data.MostViewedThisMonth; break; } return(video); }
public string BuildAnswer(string question) { TimeOption option = getOption(question); Video video = getVideo(option); string responseMessage = string.Empty; if (video.Title != null) { responseMessage = getResponseMessage(video, option); } else { if (option.Equals(TimeOption.ThisYear)) { responseMessage = resources.mostViewedThisYearResponse; } } return(responseMessage); }
public static string GetDescription(this TimeOption option) { switch (option) { case (TimeOption.day): return("1 day"); case (TimeOption.week): return("1 week"); case (TimeOption.month): return("1 month"); case (TimeOption.year): return("1 year"); default: return(string.Empty); } }
private string getResponseMessage(Video video, TimeOption option) { string responseMessage = string.Empty; switch (option) { case TimeOption.ThisWeek: responseMessage = string.Format(resources.mostViewedThisWeekResponse, video.Title, video.Views, video.Link); break; case TimeOption.ThisMonth: responseMessage = string.Format(resources.mostViewedThisMonthResponse, video.Title, video.Views, video.Link); break; case TimeOption.ThisYear: responseMessage = string.Format(resources.mostViewedThisYearResponse, video.Title, video.Views, video.Link); break; } return(responseMessage); }
private TimeOption getOption(string question) { TimeOption option = TimeOption.notSpecified; EscapeSanitizer escaptesanitzer = new EscapeSanitizer(); string satizedThisWeekResouce = escaptesanitzer.Sanitize(resources.thisWeek); string satizedThisMonthResouce = escaptesanitzer.Sanitize(resources.thisMonth); string satizedThisYearResouce = escaptesanitzer.Sanitize(resources.thisYear); if (question.Contains(satizedThisWeekResouce)) { option = TimeOption.ThisWeek; } if (question.Contains(satizedThisMonthResouce)) { option = TimeOption.ThisMonth; } if (question.Contains(satizedThisYearResouce)) { option = TimeOption.ThisYear; } return(option); }
private async Task <CarbonFootprintResult> CalculateFlightEmission(FlightOption flightOption, TimeOption timeOption) { var yearlyNumberOfFlights = ((double)flightOption.GetAverageValue() / timeOption.GetDays()) * TimeOption.year.GetDays(); var response = await emissionClient.GetHotelEmission(yearlyNumberOfFlights); return(mapper.Map <CarbonFootprintResult>(response)); }
private async Task <CarbonFootprintResult> CalculateAccomodationEmmision(AccomodationOption accomodationOption, TimeOption timeOption) { var yearlyNumberOfDates = ((double)accomodationOption.GetAverageValue() / timeOption.GetDays()) * TimeOption.year.GetDays(); var response = await emissionClient.GetHotelEmission(yearlyNumberOfDates); return(mapper.Map <CarbonFootprintResult>(response)); }
private async Task <CarbonFootprintResult> CalculatePaperEmmision(PaperOption paperOption, TimeOption timeOption) { var yearlyWeight = (paperOption.GetLbsWeight() / timeOption.GetDays()) * TimeOption.year.GetDays(); var response = await emissionClient.GetPaperEmission(yearlyWeight); return(mapper.Map <CarbonFootprintResult>(response)); }
public async Task <EmissionResult> CalculateEmission(CarbonFootprintRequest request, TimeOption timeOption) { CarbonFootprintResult flightsEmission = new CarbonFootprintResult(); CarbonFootprintResult accomodationEmission = new CarbonFootprintResult(); CarbonFootprintResult paperEmission = new CarbonFootprintResult(); Task t1 = Task.Run(async() => { flightsEmission = await CalculateFlightEmission(request.FlightOption, timeOption); }); Task t2 = Task.Run(async() => { accomodationEmission = await CalculateAccomodationEmmision(request.AccomodationOption, timeOption); }); Task t3 = Task.Run(async() => { paperEmission = await CalculatePaperEmmision(request.PaperOption, timeOption); }); await Task.WhenAll(t1, t2, t3); var totalTons = Math.Round(flightsEmission.Tons + accomodationEmission.Tons + paperEmission.Tons, 2); var totalCost = Math.Round(flightsEmission.Cost + accomodationEmission.Cost + paperEmission.Cost, 2); if (totalTons != 0) { flightsEmission.TonsPct = Math.Round(flightsEmission.Tons * 100 / totalTons, 2); accomodationEmission.TonsPct = Math.Round(accomodationEmission.Tons * 100 / totalTons, 2); paperEmission.TonsPct = Math.Round(paperEmission.Tons * 100 / totalTons, 2); } else { flightsEmission.TonsPct = 0; accomodationEmission.TonsPct = 0; paperEmission.TonsPct = 0; } return(new EmissionResult { Flights = flightsEmission, Accomodation = accomodationEmission, Paper = paperEmission, TotalTons = totalTons, TotalCost = totalCost }); }
public async Task <EmissionResponse> CalculateEmissionResponse(EmissionRequest request, TimeOption timeOption) { var emissionResponse = new EmissionResponse { NonUser = await CalculateEmission(request.NonUser, timeOption), User = await CalculateEmission(request.User, timeOption), }; emissionResponse.SavedTrees = (int)((emissionResponse.NonUser.TotalTons - emissionResponse.User.TotalTons) / 0.02); emissionResponse.SavedCost = Math.Round(emissionResponse.NonUser.TotalCost - emissionResponse.User.TotalCost, 2); return(emissionResponse); }
public async Task <IActionResult> GetAmountOptions(TimeOption timeOption, [FromBody] EmissionRequest request) { return(Ok(await emissionService.CalculateEmissionResponse(request, timeOption))); }