public ActionResult Create(Guid equipmentId) { var equipment = this.GetEquipmentById(equipmentId); var model = new TierModel { EquipmentItemId = equipment.Id, EquipmentItemName = equipment.Name, }; return(View(model)); }
private ActionResult UpdateModelForPostResult(TierModel model, Func <TierModel, WorkResult> unitOfWork) { if (ModelState.IsValid) { var result = unitOfWork.Invoke(model); if (result.IsValid) { return(this.RederictToIndex(model.EquipmentItemId)); } model.ValidationResults.AddRange(result.ValidationResults); } return(View(model)); }
public ActionResult Delete(TierModel model) { //TODO: server side validation this.tiersRepository.Delete(model.Id); return(this.RederictToIndex(model.EquipmentItemId)); }
public ActionResult Edit(TierModel model) { return(this.UpdateModelForPostResult(model, this.tiersRepository.Update)); }
// PARSE // parses a whole set of price inputs public static PriceModel Parse(string input) { PriceModel model = new PriceModel(); if (string.IsNullOrEmpty(input) || string.IsNullOrWhiteSpace(input) || input.Length <= 1) { return(null); } // check for "5,00€" or "1,50€ pro Stunde" if (input.Count(f => f == '€') == 1 && !input.Contains("/") && input.Length < 20) { model.PerHour = new PerHourModel(1, StripAllAlphas(input)); return(model); } // check for format "1,70 € / 15,00 €" if (input.Contains("/") && input.Length < 20) { return(GetHourAndDayPrice(input)); } // check for tiered and special hours else { // check for "2€ für Nichtkunden; 1€ für Kunden" if (input.Contains(";")) { string[] semihalfs = input.Split(';'); foreach (string half in semihalfs) { if (half.IndexOf("€") >= 0) { model.PerHour = new PerHourModel(1, StripAllAlphas(half)); return(model); } } } // is this a multi liner? if (input.Contains("\n")) { string[] lines = input.Split('\n'); // check for "5 € / 15 €" in first line if (lines.First().Contains("/") && lines.First().Count(f => f == '€') == 2 && lines.First().Length < 20) { return(GetHourAndDayPrice(lines.First())); } // check for "je angefangene stunde 1.70€" if (lines.First().ToLower().Contains("je angefangene stunde")) { model.PerHour = new PerHourModel(1, StripAllAlphas(input)); return(model); } // loop all lines foreach (string line in lines) { // check for "1,80€ bis 1,90€ / Stunde" if (line.Contains("/ Stunde") || line.Contains("jede weitere angefangene Stunde")) { string[] hours = line.Split('/'); string value = hours [0]; if (value.Contains("bis")) { value = value.Substring(0, value.IndexOf("bis")); } model.PerHour = new PerHourModel(1, StripAllAlphas(value)); } // check for "14€ / Tag" if (line.Contains("/ Tag") || line.Contains("Tagesmax.")) { string[] days = line.Replace("Tagesmax.", "").Split('/'); model.FullDay = Convert.ToDouble(StripAllAlphas(days [0])); } // check for a tiered model if (line.Contains("1. angefangene Stunde")) { TierModel tier = new TierModel(); tier.PerHour = true; tier.Price = Convert.ToDouble(StripAllAlphas(line.Replace("1. angefangene Stunde", ""))); tier.From = 0.0; tier.To = 1.0; if (model.Tiered == null) { model.Tiered = new List <TierModel> (); } model.Tiered.Add(tier); } // extract minutes tie if (line.Contains(" min. ")) { string frame = line.Substring(0, line.IndexOf(" min. ")); string price = line.Substring(line.IndexOf("min.") + 4, line.Length - 5 - line.IndexOf("min.")); TierModel tier = new TierModel(); if (frame.Contains("-")) { string[] times = frame.Split('-'); double start = Convert.ToDouble(times[0]); double stop = Convert.ToDouble(times[1]); tier.From = start / 60.0; tier.To = stop / 60.0; } tier.PerHour = true; tier.Price = Convert.ToDouble(StripAllAlphas(price)); if (model.Tiered == null) { model.Tiered = new List <TierModel> (); } model.Tiered.Add(tier); } // special prices at certain hours if (line.Contains("Nachttarif")) { string timeframe = GetSubstringByString("(", ")", line).Replace("Uhr", "").Trim(); string[] times = timeframe.Split('-'); TierModel specialtier = new TierModel(); specialtier.PerHour = false; specialtier.From = Convert.ToInt32(times[0].Replace(".", "")); specialtier.To = Convert.ToInt32(times[1].Replace(".", "")); specialtier.Price = Convert.ToDouble(StripAllAlphas(line.Split(':') [1])); model.SpecialHours = specialtier; } } // only return if values are set if (model.FullDay.HasValue || model.PerHour != null) { return(model); } } else { // check for "je stunde zahlen sie 1,00 Euro das Tagesmaximum liegt bei 20 Euro" if (input.Contains("Stunde") && input.Contains("Tages")) { int idx; if (input.Contains(", ")) { idx = input.IndexOf(", "); } else { idx = input.IndexOf("Tages"); } string hour = input.Substring(0, idx).Replace(", ", ""); string day = input.Substring(idx, input.Length - idx).Replace(", ", ""); model.PerHour = new PerHourModel(1, StripAllAlphas(hour)); model.FullDay = StripAllAlphas(day); return(model); } } } return(null); }
public async Task UpdateAsync([FromBody] TierModel model) { var tier = _mapper.Map <Tier>(model); await _tiersService.UpdateAsync(tier); }
public async Task <IReadOnlyList <TierUpgradeRequestResponse> > GetByTierAsync(TierModel tier) { var result = await _tierUpgradeService.GetByTierAsync(_mapper.Map <AccountTier>(tier)); return(_mapper.Map <IReadOnlyList <TierUpgradeRequestResponse> >(result)); }
public async Task <TierUpgradeRequestResponse> GetAsync(string clientId, TierModel tier) { ITierUpgradeRequest result = await _tierUpgradeService.GetAsync(clientId, _mapper.Map <AccountTier>(tier)); return(_mapper.Map <TierUpgradeRequestResponse>(result)); }