/// <summary> /// Gets calculation modes for customer order. /// </summary> /// <param name="request">The service request.</param> /// <returns>The service response.</returns> public static GetCustomerOrderCalculationModesServiceResponse GetCalculationModes(GetCustomerOrderCalculationModesServiceRequest request) { CalculationModes disallowedModes; SalesTransaction salesTransaction = request.SalesTransaction; switch (salesTransaction.CustomerOrderMode) { case CustomerOrderMode.Return: // return transaction is created from invoice disallowedModes = CalculationModes.Charges | CalculationModes.Discounts | CalculationModes.Prices; break; case CustomerOrderMode.Pickup: case CustomerOrderMode.Cancellation: case CustomerOrderMode.QuoteCreateOrEdit: case CustomerOrderMode.CustomerOrderCreateOrEdit: case CustomerOrderMode.OrderRecalled: disallowedModes = CalculationModes.None; break; default: string message = string.Format(CultureInfo.InvariantCulture, "Customer order mode {0} is not supported.", salesTransaction.CustomerOrderMode); throw new NotSupportedException(message); } // ~ will invert all bits - this will be the allowed modes CalculationModes allowedModes = ~disallowedModes; return(new GetCustomerOrderCalculationModesServiceResponse(allowedModes)); }
public static float GetPercentage(string nameOne, string nameTwo, CalculationModes mode) { float score; nameOne += string.Concat(Enumerable.Repeat("a", nameOne.Length < nameTwo.Length ? nameTwo.Length - nameOne.Length : 0)); nameTwo += string.Concat(Enumerable.Repeat("a", nameOne.Length > nameTwo.Length ? nameOne.Length - nameTwo.Length : 0)); switch (mode) { case CalculationModes.Basic: float nameOneScore = GetScore(nameOne); float nameTwoScore = GetScore(nameTwo); score = (nameOneScore <= nameTwoScore ? nameOneScore / nameTwoScore : nameTwoScore / nameOneScore) * 100; break; case CalculationModes.Neighbour: float temp = NeiScore(nameOne, nameTwo); score = temp / (nameOne.Length * 2) * 100; break; default: throw new ArgumentOutOfRangeException(nameof(mode), mode, null); } return(score); }
public PointsChartHelper() { m_Logger = LogManager.GetLogger("PointsSelectionHelper"); CalculationModes.Add(CalculationMode.Progression, "Progression"); CalculationModes.Add(CalculationMode.OneByOne, "One by One"); ActualMode = CalculationMode.Progression; }
public async Task <ActionResult> GetCompatibility(string nameOne, string nameTwo, CalculationModes mode) { try { return(Ok(LoveUtils.GetPercentage(nameOne.ToLower(), nameTwo.ToLower(), mode))); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Error getting a compatibility score")); } }
public EloChartHelper() { m_Logger = LogManager.GetLogger("EloChartHelper"); CalculationModes.Add(CalculationMode.EloAll, "ELO - Entire Database"); ActualMode = CalculationMode.EloAll; }