private async void Save() { var lastMatch = MatchHistory.LastMatch; MatchRecord newMatch; if (lastMatch != null) { newMatch = lastMatch.NewRelativeRecord(CR.Value, DateTime.Now, SelectedMap); } else { await _dialogService.ShowMessage("Recording first game as a win, because there are no previous records to base it on", "Recording new match"); newMatch = new MatchRecord() { CR = CR.Value, Diff = CR.Value, Date = DateTime.Now, Map = SelectedMap, Result = MatchResult.WIN }; } MatchHistory.Add(newMatch); MessengerInstance.Send(new Messages.NewMatchRecord(newMatch)); CR = null; SelectedMap = Maps.First(); }
public async Task OnGetAsync() { CurrentUser = await _userManager.GetUserAsync(HttpContext.User); float totalPrice = 0; Maps = await _context.ProductCartMap .Include(a => a.Product) .Include(a => a.Cart) .ThenInclude(a => a.Customer) .Where(a => a.Cart.Customer.Id == CurrentUser.Id) .ToListAsync(); foreach (var map in Maps) { map.ProductTotalPrice = map.Product.Price * map.ProductQuantity; totalPrice += map.ProductTotalPrice; } if (Maps.Count > 0) { Maps.First().Cart.TotalPrice = totalPrice; _context.Attach(Maps.First().Cart).State = EntityState.Modified; } }
public (string, string, string) GenerateVoter(Random rnd) { throw new NotImplementedException(); if (Mode != MapSelector.MapMode.Vote) { throw new InvalidOperationException("MakeVote is only used for vote mode."); } if (Maps.Count < 3) { return(null, null, null); } var prevMap = History.LastOrDefault(); if (prevMap == null) { prevMap = Maps.First(); } var mapRnd = Maps.Where(x => x != prevMap).OrderByDescending(x => rnd.Next()).ToArray(); var mapA = mapRnd.First(); var mapB = mapRnd.Last(); return(prevMap, mapA, mapB); }
/// <summary> /// Map transforms require the map's parameters. /// </summary> private void ModifyMapParameters() { if (Maps.Count == 0) { return; } foreach (var transform in GetAllTransforms().Where(t => t.Method == "map" && Maps.Any(m => m.Name == t.Map))) { var parameters = Maps .First(m => m.Name == transform.Map) .Items .Where(i => i.Parameter != string.Empty) .Select(p => p.Parameter) .Distinct(); foreach (var parameter in parameters) { if (parameter.IndexOf('.') > 0) { var split = parameter.Split(new[] { '.' }); transform.Parameters.Add(GetParameter(split[0], split[1])); } else { transform.Parameters.Add(GetParameter(parameter)); } } } }
/// <summary> /// clone process, remove entities, and create entity needed for calculated fields /// </summary> /// <returns>A made-up process that represents the denormalized output's fields that contribute to calculated fields</returns> public Process ToCalculatedFieldsProcess() { // clone process, remove entities, and create entity needed for calculated fields var calc = this.Clone(); calc.LogLimit = LogLimit; calc.EntityLogLimit = EntityLogLimit; calc.FieldLogLimit = FieldLogLimit; calc.TransformLogLimit = TransformLogLimit; calc.Entities.Clear(); calc.CalculatedFields.Clear(); calc.Relationships.Clear(); var entity = new Entity().WithDefaults(); entity.Name = "Calculated"; entity.Alias = entity.Name; entity.Key = calc.Name + entity.Alias; entity.Connection = "output"; entity.Fields.Add(new Field { Name = Constants.TflKey, Alias = Constants.TflKey, PrimaryKey = true, Input = true, Type = "int" }.WithDefaults()); // Add fields that calculated fields depend on entity.Fields.AddRange(CalculatedFields .SelectMany(f => f.Transforms) .SelectMany(t => t.Parameters) .Where(p => !p.HasValue() && p.IsField(this)) .Select(p => p.AsField(this).Clone()) .Where(f => f.Output) .Distinct() .Except(CalculatedFields) ); var mapFields = CalculatedFields .SelectMany(cf => cf.Transforms) .Where(t => t.Method == "map") .Select(t => Maps.First(m => m.Name == t.Map)) .SelectMany(m => m.Items) .Where(i => i.Parameter != string.Empty) .Select(i => i.AsParameter().AsField(this)) .Distinct() .Except(entity.Fields) .Select(f => f.Clone()); entity.Fields.AddRange(mapFields); entity.CalculatedFields.AddRange(CalculatedFields.Select(cf => cf.Clone())); foreach (var parameter in entity.GetAllFields().SelectMany(f => f.Transforms).SelectMany(t => t.Parameters)) { parameter.Entity = string.Empty; } entity.ModifyIndexes(); calc.Entities.Add(entity); calc.ModifyKeys(); calc.ModifyIndexes(); return(calc); }
public RecordMatchViewModel(IProfileManager profileManager, GalaSoft.MvvmLight.Views.IDialogService dialogService) : base(profileManager) { _dialogService = dialogService; SaveCommand = new RelayCommand(Save, () => CR.HasValue); SelectedMap = Maps.First(); }
/// <summary> /// clone process, remove entities, and create entity needed for calculated fields /// </summary> /// <returns>A made-up process that represents the denormalized output's fields that contribute to calculated fields</returns> public Process ToCalculatedFieldsProcess() { // clone process, remove entities, and create entity needed for calculated fields var calc = this.Clone(); calc.LogLimit = LogLimit; calc.EntityLogLimit = EntityLogLimit; calc.FieldLogLimit = FieldLogLimit; calc.TransformLogLimit = TransformLogLimit; calc.Entities.Clear(); calc.CalculatedFields.Clear(); calc.Relationships.Clear(); var entity = new Entity { Name = "Calculated" }; entity.Alias = entity.Name; entity.Key = calc.Name + entity.Alias; entity.Connection = "output"; entity.Fields.Add(new Field { Name = Constants.TflKey, Alias = Constants.TflKey, PrimaryKey = true, System = true, Input = true, Type = "int" }); // Add fields that calculated fields depend on entity.Fields.AddRange(CalculatedFields .SelectMany(f => f.Transforms) .SelectMany(t => t.Parameters) .Where(p => !p.HasValue() && p.IsField(this)) .Select(p => p.AsField(this).Clone()) .Where(f => f.Output) .Distinct() .Except(CalculatedFields) ); var mapFields = CalculatedFields .SelectMany(cf => cf.Transforms) .Where(t => t.Method == "map") .Select(t => Maps.First(m => m.Name == t.Map)) .SelectMany(m => m.Items) .Where(i => i.Parameter != string.Empty) .Select(i => i.AsParameter().AsField(this)) .Distinct() .Except(entity.Fields) .Select(f => f.Clone()); entity.Fields.AddRange(mapFields); entity.CalculatedFields.AddRange(CalculatedFields.Select(cf => cf.Clone())); foreach (var parameter in entity.GetAllFields().SelectMany(f => f.Transforms).SelectMany(t => t.Parameters)) { parameter.Entity = string.Empty; } foreach (var field in entity.Fields) { field.Source = Utility.GetExcelName(field.EntityIndex) + "." + field.FieldName(); } foreach (var field in entity.CalculatedFields) { field.Source = Utility.GetExcelName(field.EntityIndex) + "." + field.FieldName(); } entity.ModifyIndexes(); calc.Entities.Add(entity); calc.ModifyKeys(); calc.ModifyIndexes(); // create entity field's matcher var pattern = string.Join("|", entity.GetAllFields().Where(f => !f.System).OrderByDescending(f => f.Alias.Length).Select(f => f.Alias)); #if NETS10 entity.FieldMatcher = new Regex(pattern); #else entity.FieldMatcher = new Regex(pattern, RegexOptions.Compiled); #endif return(calc); }
/// <summary> /// Finds a map from an ID /// </summary> /// <param name="ID">The ID of the map to find</param> public static Map MapFromID(int ID) { return(Maps.First(m => m.ID == ID)); }