Exemplo n.º 1
0
        private CostItem CreateModel(CostItem costItem, CostItemBindingModel model, UrskiyPeriodDatabase context)
        {
            costItem = CreateModel(costItem, model);

            if (model.Id.HasValue)
            {
                var routeCost = context.CostItemRoutes.Where(rec =>
                                                             rec.CostItemId == model.Id.Value).ToList();
                // удаляем те, которых нет в модели
                context.CostItemRoutes.RemoveRange(routeCost.Where(rec =>
                                                                   !model.CostItemRoute.ContainsKey(rec.RouteId)).ToList());
                context.SaveChanges();

                foreach (var Reserve in routeCost)
                {
                    model.CostItemRoute.Remove(Reserve.RouteId);
                }
            }

            foreach (var cost in model.CostItemRoute)
            {
                context.CostItemRoutes.Add(new CostItemRoute
                {
                    CostItemId = costItem.Id,
                    RouteId    = cost.Key
                });
            }
            context.SaveChanges();
            return(costItem);
        }
Exemplo n.º 2
0
 public void Update(CostItemBindingModel model)
 {
     using (var context = new UrskiyPeriodDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 var costItem = context.CostItem.FirstOrDefault(rec => rec.Id == model.Id);
                 if (costItem == null)
                 {
                     throw new Exception("Не найдено");
                 }
                 CreateModel(costItem, model, context);
                 context.SaveChanges();
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
Exemplo n.º 3
0
 public CostItemViewModel GetElement(CostItemBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(_costItemStorage.GetElement(model));
 }
Exemplo n.º 4
0
 public void CreateOrUpdate(CostItemBindingModel model)
 {
     if (model.Id.HasValue)
     {
         _costItemStorage.Update(model);
     }
     else
     {
         _costItemStorage.Insert(model);
     }
 }
Exemplo n.º 5
0
 public void Delete(CostItemBindingModel model)
 {
     using (var context = new UrskiyPeriodDatabase())
     {
         var user = context.CostItem.FirstOrDefault(rec => rec.Id == model.Id);
         if (user == null)
         {
             throw new Exception("Не найдено");
         }
         context.CostItem.Remove(user);
         context.SaveChanges();
     }
 }
Exemplo n.º 6
0
        public void Delete(CostItemBindingModel model)
        {
            var element = _costItemStorage.GetElement(new CostItemBindingModel
            {
                Id = model.Id
            });

            if (element == null)
            {
                throw new Exception("Не найдено");
            }
            _costItemStorage.Delete(model);
        }
Exemplo n.º 7
0
 public CostItemViewModel GetElement(CostItemBindingModel model)
 {
     using (var context = new UrskiyPeriodDatabase())
     {
         var costItem = context.CostItem.Include(x => x.CostItemRoute).ThenInclude(x => x.Route)
                        .FirstOrDefault(rec => rec.Id == model.Id || rec.Name == model.Name);
         return(costItem != null ? new CostItemViewModel
         {
             Id = costItem.Id,
             Name = costItem.Name,
             Sum = costItem.Sum,
             CostItemRoute = costItem.CostItemRoute.ToDictionary(x => x.RouteId, x => x.Route.Name)
         } : null);
     }
 }
Exemplo n.º 8
0
 public void Insert(CostItemBindingModel model)
 {
     using (var context = new UrskiyPeriodDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 CostItem cost = CreateModel(new CostItem(), model);
                 context.CostItem.Add(cost);
                 context.SaveChanges();
                 CreateModel(cost, model, context);
                 context.SaveChanges();
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
Exemplo n.º 9
0
 private CostItem CreateModel(CostItem costItem, CostItemBindingModel model)
 {
     costItem.Sum  = model.Sum;
     costItem.Name = model.Name;
     return(costItem);
 }