Example #1
0
        public void CreateOrUpdate(DetailBindingModel model)
        {
            using (var context = new KorytoDatabase())
            {
                Detail element = context.Details.FirstOrDefault(rec => rec.DetailName == model.DetailName && rec.Id != model.Id);

                if (element != null)
                {
                    throw new Exception("Уже есть деталь с таким названием");
                }

                if (model.Id.HasValue)
                {
                    element = context.Details.FirstOrDefault(rec => rec.Id == model.Id);

                    if (element == null)
                    {
                        throw new Exception("Элемент не найден");
                    }
                }
                else
                {
                    element = new Detail();
                    context.Details.Add(element);
                }
                element.DetailName  = model.DetailName;
                element.Price       = model.Price;
                element.TotalAmount = model.TotalAmount;

                context.SaveChanges();
            }
        }
Example #2
0
 public void Delete(RequestBindingModel model)
 {
     using (var context = new KorytoDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 context.DetailRequests.RemoveRange(context.DetailRequests.Where(rec => rec.RequestId == model.Id));
                 Request element = context.Requests.FirstOrDefault(rec => rec.Id == model.Id);
                 if (element != null)
                 {
                     context.Requests.Remove(element);
                     context.SaveChanges();
                 }
                 else
                 {
                     throw new Exception("Элемент не найден");
                 }
                 transaction.Commit();
             }
             catch (Exception)
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
Example #3
0
        public void CreateOrUpdate(ClientBindingModel model)
        {
            using (var context = new KorytoDatabase())
            {
                Client element = model.Id.HasValue ? null : new Client();

                if (model.Id.HasValue)
                {
                    element = context.Clients.FirstOrDefault(rec => rec.Id == model.Id);

                    if (element == null)
                    {
                        throw new Exception("Элемент не найден");
                    }
                }
                else
                {
                    element = new Client();
                    context.Clients.Add(element);
                }
                element.ClientFIO = model.ClientFIO;
                element.Password  = model.Password;
                element.Mail      = model.Mail == null ? element.Mail : model.Mail;
                element.Login     = model.Login == null ? element.Login : model.Login;
                context.SaveChanges();
            }
        }
Example #4
0
        public void Delete(DetailBindingModel model)
        {
            using (var context = new KorytoDatabase())
            {
                Detail element = context.Details.FirstOrDefault(rec => rec.Id == model.Id);

                if (element != null)
                {
                    context.Details.Remove(element);
                    context.SaveChanges();
                }
                else
                {
                    throw new Exception("Элемент не найден");
                }
            }
        }
Example #5
0
        public void CreateOrUpdate(RequestBindingModel model)
        {
            using (var context = new KorytoDatabase())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Request element = context.Requests.FirstOrDefault(rec => rec.RequestName == model.RequestName && rec.Id != model.Id);
                        if (element != null)
                        {
                            throw new Exception("Уже есть заявка с таким названием");
                        }
                        if (model.Id.HasValue)
                        {
                            element = context.Requests.FirstOrDefault(rec => rec.Id == model.Id);
                            if (element == null)
                            {
                                throw new Exception("Элемент не найден");
                            }
                        }
                        else
                        {
                            element = new Request();
                            context.Requests.Add(element);
                        }
                        element.RequestName = model.RequestName;
                        element.DateCreate  = model.DateCreate;

                        context.SaveChanges();

                        if (model.Id.HasValue)
                        {
                            var DetailRequests = context.DetailRequests.Where(rec
                                                                              => rec.RequestId == model.Id.Value).ToList();
                            context.DetailRequests.RemoveRange(DetailRequests.Where(rec =>
                                                                                    !model.DetailRequests.ContainsKey(rec.DetailId)).ToList());
                            context.SaveChanges();
                            foreach (var updateDetail in DetailRequests)
                            {
                                updateDetail.Count = model.DetailRequests[updateDetail.DetailId].Item2;

                                model.DetailRequests.Remove(updateDetail.DetailId);
                            }
                            context.SaveChanges();
                        }
                        foreach (var pc in model.DetailRequests)
                        {
                            context.DetailRequests.Add(new DetailRequest
                            {
                                RequestId = element.Id,
                                DetailId  = pc.Key,
                                Count     = pc.Value.Item2
                            });
                            context.SaveChanges();
                        }
                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }
Example #6
0
        public void CreateOrUpdate(CarBindingModel model)
        {
            using (var context = new KorytoDatabase())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Car element = context.Cars.FirstOrDefault(rec => rec.CarName == model.CarName && rec.Id != model.Id);
                        if (element != null)
                        {
                            throw new Exception("Уже есть автомобиль с таким названием");
                        }
                        if (model.Id.HasValue)
                        {
                            element = context.Cars.FirstOrDefault(rec => rec.Id == model.Id);
                            if (element == null)
                            {
                                throw new Exception("Элемент не найден");
                            }
                        }
                        else
                        {
                            element = new Car();
                            context.Cars.Add(element);
                        }
                        element.CarName   = model.CarName;
                        element.Price     = model.Price;
                        element.FullPrice = model.FullPrice;
                        element.Year      = model.Year;

                        context.SaveChanges();

                        if (model.Id.HasValue)
                        {
                            var CarDetails = context.CarDetails.Where(rec
                                                                      => rec.CarId == model.Id.Value).ToList();
                            context.CarDetails.RemoveRange(CarDetails.Where(rec =>
                                                                            !model.CarDetails.ContainsKey(rec.DetailId)).ToList());
                            context.SaveChanges();
                            foreach (var updateDetail in CarDetails)
                            {
                                updateDetail.Count =
                                    model.CarDetails[updateDetail.DetailId].Item2;

                                model.CarDetails.Remove(updateDetail.DetailId);
                            }
                            context.SaveChanges();
                        }
                        foreach (var pc in model.CarDetails)
                        {
                            context.CarDetails.Add(new CarDetail
                            {
                                CarId    = element.Id,
                                DetailId = pc.Key,
                                Count    = pc.Value.Item2,
                                Sum      = pc.Value.Item3
                            });
                            context.SaveChanges();
                        }
                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }
Example #7
0
        public void CreateOrUpdate(OrderBindingModel model)
        {
            using (var context = new KorytoDatabase())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Order element = model.Id.HasValue ? null : new Order();
                        if (model.Id.HasValue)
                        {
                            element = context.Orders.FirstOrDefault(rec => rec.Id == model.Id);
                            if (element == null)
                            {
                                throw new Exception("Элемент не найден");
                            }
                            element.ClientId      = model.ClientId;
                            element.DateCreate    = model.DateCreate;
                            element.DateImplement = model.DateImplement;
                            element.Price         = model.Price;
                            element.Status        = model.Status;
                            context.SaveChanges();
                        }
                        else
                        {
                            element.ClientId      = model.ClientId;
                            element.DateCreate    = model.DateCreate;
                            element.DateImplement = model.DateImplement;
                            element.Price         = model.Price;
                            element.Status        = model.Status;
                            context.Orders.Add(element);
                            context.SaveChanges();
                            var groupCars = model.OrderCars
                                            .GroupBy(rec => rec.CarId)
                                            .Select(rec => new
                            {
                                CarId = rec.Key,
                                Count = rec.Sum(r => r.Count)
                            });

                            foreach (var groupCar in groupCars)
                            {
                                context.OrderCars.Add(new OrderCar
                                {
                                    OrderId = element.Id,
                                    CarId   = groupCar.CarId,
                                    Count   = groupCar.Count
                                });
                                context.SaveChanges();
                            }
                        }
                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }