Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public async Task DeleteDiceByGroupDiceAsync(GroupDice groupDice)
        {
            var listItem = await GetDiceByGroupDice(groupDice.ID);

            foreach (var item in listItem)
            {
                await this.DeleteDiceAsync(item);
            }
        }
Ejemplo n.º 4
0
        public void ExecuteRollDiceCommand(GroupDice groupDice)
        {
            var result = _diceService.RollDice(groupDice);

            LogRoll.Add(result);
            _diceDataBase.SaveLogRoll(result);
            groupDice.LastResult = result.Result;
            GroupDices.ReportItemChange(groupDice);
        }
Ejemplo n.º 5
0
 public Task <int> SaveGroupDiceAsync(GroupDice item)
 {
     if (item.ID != 0)
     {
         return(database.UpdateAsync(item));
     }
     else
     {
         return(database.InsertAsync(item));
     }
 }
Ejemplo n.º 6
0
 public void SetMarkItem(GroupDice groupDice, bool add)
 {
     if (add)
     {
         MarkItem.Add(groupDice);
     }
     else
     {
         MarkItem.Remove(groupDice);
     }
 }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
 public Task <int> DeleteGroupDiceAsync(GroupDice item)
 {
     return(database.DeleteAsync(item));
 }
Ejemplo n.º 10
0
        public async Task DeleteGroupDiceAsync(GroupDice groupDice)
        {
            await _diceDataBase.DeleteDiceByGroupDiceAsync(groupDice);

            await _diceDataBase.DeleteGroupDiceAsync(groupDice);
        }