public int AddCardTrancport(int idCommission, DateTime dateStart)
        {
            try
            {
                CheckAddRight();
                var oldCard = Context.CardsTrancport.All().FirstOrDefault(x => x.CommissionTransactionId == idCommission);
                if (oldCard == null)
                {
                    var newCard = new CardTrancport()
                    {
                        CommissionTransactionId = idCommission,
                        StatusCardTrancport     = Context.StatusesCardTrancport.All().FirstOrDefault(),
                        DateStart = dateStart
                    };
                    Context.CardsTrancport.AddOrUpdate(newCard);
                    Context.SaveChanges();
                    return(newCard.Id);
                }
                return(oldCard.Id);
            }
            catch (AccessDeniedException)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Instance.Log(ex);

                throw new Exception("Неудалось добавить карточку ТС");
            }
        }
 public CardTrancportViewModel(int?id)
 {
     using (var service = new AimpService())
     {
         if (id != null)
         {
             var response = service.GetCardTrancport((int)id);
             if (response.Error)
             {
                 throw new Exception(response.Message);
             }
             _document                = response.Document;
             CardTrancport            = response.Document.CardTrancport;
             _cardTrancportForCompare = TinyMapper.Map <CardTrancport>(CardTrancport);
             var preChecks = response.Document.PreChecks.Select(x => new PreCheckCardTrancportViewModel()
             {
                 CardTrancportId = x.Id,
                 Date            = x.Date,
                 Enable          = true,
                 Name            = x.Name,
                 Paid            = x.Paid,
                 Card            = x.Card,
                 PriceForClient  = x.PriceForClient,
                 Summ            = x.Summ
             });
             PreCheks = new ObservableCollection <PreCheckCardTrancportViewModel>(preChecks);
         }
         else
         {
             _document                = new CardTrancportDocument();
             CardTrancport            = new CardTrancport();
             _cardTrancportForCompare = new CardTrancport();
             PreCheks = new ObservableCollection <PreCheckCardTrancportViewModel>();
         }
         var responseStatuses = service.GetStatusesCard();
         if (responseStatuses.Error)
         {
             throw new Exception(responseStatuses.Message);
         }
         CardTrancport.StatusCardTrancport = responseStatuses.Items.FirstOrDefault(x => x.Id == CardTrancport.StatusCardTrancport?.Id);
         StatusesCardTrancport             = new ObservableCollection <StatusCardTrancport>(responseStatuses.Items);
     }
 }