Beispiel #1
0
        public LootSplit InsertLootSplit(LootSplit lootSplit)
        {
            var result = new JsonResultMessage()
            {
                Success = true,
                Message = "Successfully added new loot split."
            };

            try
            {
                lootSplit = _unitOfWork.Repository <LootSplit>().Insert(lootSplit);
                _unitOfWork.Commit();
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = "Error adding config. " + ex.Message;
            }
            return(lootSplit);
        }
Beispiel #2
0
        public ActionResult SubmitLootSplit(LootViewModel model, string lootSplitName)
        {
            var resultMessage = ResultMessages.JsonResultMessage();

            resultMessage.Message = "Successfully Submitted Loot Split.";
            resultMessage.Success = true;
            //save
            if (model.SelectedLootSplitId == 0)
            {
                try
                {
                    var       failures  = 0;
                    var       successes = 0;
                    var       result    = resultMessage;
                    LootSplit lootSplit = new LootSplit();
                    lootSplit.Name = model.Name;
                    List <SplitItem> splitItems = new List <SplitItem>();

                    foreach (LootItem lootitem in model.LootItems)
                    {
                        if (lootitem.Quantity > 0)
                        {
                            SplitItem splitItem = new SplitItem();
                            splitItem.LootSplitId      = lootSplit.LootSplitId;
                            splitItem.LootItemId       = lootitem.LootItemId;
                            splitItem.LootItemQuantity = lootitem.Quantity;
                            splitItems.Add(splitItem);
                        }
                    }

                    lootSplit.SplitItems = splitItems;
                    lootSplit            = _lootManager.InsertLootSplit(lootSplit);

                    //_lootManager.InsertSplitItems(splitItems, lootSplit.Id);
                    if (failures > 0)
                    {
                        resultMessage.Success = false;
                        resultMessage.Message = "Insert Failed ";
                        return(Json(resultMessage));
                    }
                    resultMessage.Success = true;
                    resultMessage.Message = "Inserted {0} Loot Splits(s).".FormatWith(successes);
                }
                catch (Exception ex)
                {
                    resultMessage.Success = false;
                    resultMessage.Message = "Error Inserting Loot Split. " + ex.Message;
                }
            }
            //load
            else
            {
                model.LootSplitSelectList = new SelectList(_lootManager.GetLootSplitDropdownValues(),
                                                           "LootSplitId", "Name");
                model.LootItems = _lootManager.GetAllLootItems().ToList();
                IEnumerable <SplitItem> splitItems = _lootManager.GetSplitItems(model.SelectedLootSplitId);
                foreach (LootItem lootItem in model.LootItems)
                {
                    foreach (SplitItem splitItem in splitItems)
                    {
                        if (splitItem.LootItemId == lootItem.LootItemId)
                        {
                            lootItem.Quantity = splitItem.LootItemQuantity;
                        }
                    }
                }
                foreach (SelectListItem item in model.LootSplitSelectList)
                {
                    if (item.Value == model.SelectedLootSplitId.ToString())
                    {
                        item.Selected = true;
                    }
                }
            }
            return(View("Index", model));
        }
Beispiel #3
0
        public void Add_writes_to_database()
        {
            // In-memory database only exists while the connection is open
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            try
            {
                var options = new DbContextOptionsBuilder <SQLiteDBContext>()
                              .UseSqlite(connection)
                              .Options;

                // Create the schema in the database
                using (var context = new SQLiteDBContext(options))
                {
                    context.Database.EnsureCreated();
                }
                using (var context = new SQLiteDBContext(options))
                {
                    LootSplit lootsplit = new LootSplit
                    {
                        Name       = "Test Loot Split",
                        LootItemId = 1,
                        LootItems  = new List <LootItem>
                        {
                            new LootItem
                            {
                                Name        = "test loot item",
                                Price       = 5,
                                Description = "test"
                            },
                            new LootItem
                            {
                                Name        = "test loot item 2",
                                Price       = 10,
                                Description = "test2"
                            }
                        }
                    };
                    LootItem lootitem = new LootItem
                    {
                        Name       = "Test Loot Item",
                        Price      = 20,
                        LootSplits = new List <LootSplit>
                        {
                            new LootSplit
                            {
                                Name       = "Loot Split Test 3",
                                LootItemId = 2,
                            },
                            new LootSplit
                            {
                                Name       = "Loot Split 4",
                                LootItemId = 3
                            }
                        }
                    };
                    context.Add(lootitem);
                    context.Add(lootsplit);
                    context.SaveChanges();
                }

                using (var context = new SQLiteDBContext(options))
                {
                    Assert.Equals(2, context.LootSplit.CountAsync());
                }
            }
            finally
            {
                connection.Close();
            }
        }