async void ExecuteSaveCommand() { var groupDice = new GroupDice(); groupDice.Dices = new List <Dice>(); groupDice.BagID = Bag.ID; groupDice.Modifier = Modifier; foreach (var dice in ListDices) { if (dice.Quantity == 0 || dice.NumberFaceOfDice == 0) { continue; } groupDice.Dices.Add(new Dice() { Quantity = dice.Quantity, NumberFaceOfDice = dice.NumberFaceOfDice }); } if (groupDice.Dices.Count == 0) { await PopModalAsync(); return; } groupDice.Name = _diceService.NameDefaultGroupDice(groupDice); _diceDataBase.SaveGroupDiceAndItemAsync(groupDice); await PopModalAsync(); }
public string NameDefaultGroupDice(GroupDice groupDice) { var returnName = ""; var aux = ""; var auxNumber = ""; foreach (var dice in groupDice.Dices) { auxNumber = (dice.Quantity > 1) ? dice.Quantity.ToString() : ""; returnName += $"{aux}{auxNumber}D{dice.NumberFaceOfDice}"; aux = " + "; } if (groupDice.Modifier > 0) { returnName += " +" + groupDice.Modifier.ToString(); } else if (groupDice.Modifier < 0) { returnName += groupDice.Modifier.ToString(); } returnName = returnName.Trim(); return(returnName); }
public async Task DeleteDiceByGroupDiceAsync(GroupDice groupDice) { var listItem = await GetDiceByGroupDice(groupDice.ID); foreach (var item in listItem) { await this.DeleteDiceAsync(item); } }
public void ExecuteRollDiceCommand(GroupDice groupDice) { var result = _diceService.RollDice(groupDice); LogRoll.Add(result); _diceDataBase.SaveLogRoll(result); groupDice.LastResult = result.Result; GroupDices.ReportItemChange(groupDice); }
public Task <int> SaveGroupDiceAsync(GroupDice item) { if (item.ID != 0) { return(database.UpdateAsync(item)); } else { return(database.InsertAsync(item)); } }
public void SetMarkItem(GroupDice groupDice, bool add) { if (add) { MarkItem.Add(groupDice); } else { MarkItem.Remove(groupDice); } }
public async void SaveGroupDiceAndItemAsync(GroupDice groupDice) { var taskGroupDice = SaveGroupDiceAsync(groupDice); taskGroupDice.Wait(); foreach (var dice in groupDice.Dices) { if (dice.Quantity == 0 || dice.NumberFaceOfDice == 0) { continue; } dice.GroupDiceID = groupDice.ID; await SaveDiceAsync(dice); } }
public LogRoll RollDice(GroupDice groupDice) { var logRoll = new LogRoll(); logRoll.GroupDice = groupDice; logRoll.Date = DateTime.Now; Random rnd = new Random(); logRoll.Result = 0; foreach (var dice in logRoll.GroupDice.Dices) { dice.Result = new List <int>(); for (int i = 0; i < dice.Quantity; i++) { dice.Result.Add(rnd.Next(1, (1 + dice.NumberFaceOfDice))); } } logRoll.Result = logRoll.GroupDice.Dices.Sum(_ => _.Result.Sum()); logRoll.Result += groupDice.Modifier; WriteDescriptionRollDice(ref logRoll); return(logRoll); }
public Task <int> DeleteGroupDiceAsync(GroupDice item) { return(database.DeleteAsync(item)); }
public async Task DeleteGroupDiceAsync(GroupDice groupDice) { await _diceDataBase.DeleteDiceByGroupDiceAsync(groupDice); await _diceDataBase.DeleteGroupDiceAsync(groupDice); }