Exemplo n.º 1
0
        public IActionResult DeleteShopping([Bind("Id")] ShoppingRemovalViewModel srvm)
        {
            //TODO:check validation after adding it
            if (ModelState.IsValid)
            {
                var dbSingleElements = _context.OrderElements
                                       .Where(oe => oe.SCOId == srvm.Id)
                                       .ToList();

                //TODO: check if multiple savechanges can be removed
                _context.OrderElements.RemoveRange(dbSingleElements);
                _context.SaveChanges();

                var dbSCOutas = _context.OrdersAssignments
                                .Where(oa => oa.SCOId == srvm.Id)
                                .ToList();

                _context.OrdersAssignments.RemoveRange(dbSCOutas);
                _context.SaveChanges();

                _context.ComplexOrders.Remove(new SingleComplexOrder {
                    Id = srvm.Id
                });
                _context.SaveChanges();

                return(RedirectToAction("Index", "BudgetManager", null));
            }

            return(PartialView("_finalizeShoppingPartial", srvm));
        }
Exemplo n.º 2
0
        private ShoppingRemovalViewModel GenerateShoppingRemovalModel(int orderId, int currentUserId)
        {
            var complexOrderInfo = _context.ComplexOrders
                                   .Where(co => co.Id == orderId)
                                   .Include(co => co.SCOTeamMemberAssignments)
                                   .Include(co => co.OrderElements)
                                   .AsNoTracking()
                                   .First();

            var groupInfo = _context.Teams
                            .Where(t => t.Id == complexOrderInfo.SCOTeamMemberAssignments.First().TeamId)
                            .AsNoTracking()
                            .First();

            var singleOrderElementDescriptions = new List <string>();

            foreach (var singleElement in complexOrderInfo.OrderElements)
            {
                singleOrderElementDescriptions.Add(singleElement.Title + " - " + singleElement.Amount + singleElement.Unit);
            }

            var userInformation = _context.Users
                                  .Where(u => complexOrderInfo.SCOTeamMemberAssignments.Any(sco => sco.UserId == u.Id))
                                  .Select(u => new { u.Id, u.FullName })
                                  .ToArray();

            List <int>    userIds   = new List <int>();
            List <string> userNames = new List <string>();

            foreach (var userInfo in userInformation)
            {
                userIds.Add(userInfo.Id);
                userNames.Add(userInfo.FullName);
            }

            var removalModel = new ShoppingRemovalViewModel
            {
                Id = complexOrderInfo.Id,
                ExpenseCategory           = complexOrderInfo.ExpenseCategory,
                Subject                   = complexOrderInfo.Subject,
                SingleElementDescriptions = singleOrderElementDescriptions.ToArray(),
                GroupId                   = groupInfo.Id,
                GroupName                 = groupInfo.Name,
                ParticipantIds            = userIds.ToArray(),
                ParticipantNames          = userNames.ToArray()
            };

            return(removalModel);
        }