Пример #1
0
        public static void Execute(MyBoardsContext context, int cardId, string[] strNewResponsiblesIds)
        {
            var newResponsiblesId = ArrayStringToInt.Execute(strNewResponsiblesIds);

            var card = context.Cards
                       .Include("CardResponsibles")
                       .Single(c => c.Id == cardId);

            // Delete relations
            foreach (var cardResponsible in card.CardResponsibles)
            {
                var index = Array.IndexOf(newResponsiblesId, cardResponsible.ResponsibleId);
                if (index == -1)
                {
                    var crdRsponsbl = new CardResponsible {
                        CardId = card.Id, ResponsibleId = cardResponsible.ResponsibleId
                    };
                    card.CardResponsibles.Remove(crdRsponsbl);
                }
            }

            // Add relations
            foreach (var newResponsibleId in newResponsiblesId)
            {
                if (!card.CardResponsibles.Any(ct => ct.ResponsibleId == newResponsibleId))
                {
                    var newCardResponsible = new CardResponsible {
                        ResponsibleId = newResponsibleId, CardId = card.Id
                    };
                    card.CardResponsibles.Add(newCardResponsible);
                }
            }
        }
        public static void Execute(Card card, MyBoardsContext context)
        {
            CardResponsible cardResponsible;

            foreach (var item in card.SelectedResponsibles)
            {
                if (Int32.TryParse(item, out int id))
                {
                    cardResponsible = new CardResponsible()
                    {
                        ResponsibleId = id,
                        CardId        = card.Id
                    };

                    context.Add(cardResponsible);
                    context.SaveChangesAsync();
                }
            }
        }