public void Insert(ExcursionBindingModel model)
 {
     using (var context = new TourFirmDatabase())
     {
         context.Excursions.Add(CreateModel(model, new Excursion()));
         context.SaveChanges();
     }
 }
        public void CreateOrUpdate(ExcursionBindingModel model)
        {
            using (var context = new ZooDatabase())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Excursion elem = model.Id.HasValue ? null : new Excursion();
                        if (model.Id.HasValue)
                        {
                            elem = context.Excursions.FirstOrDefault(rec => rec.Id ==
                                                                     model.Id);
                            if (elem == null)
                            {
                                throw new Exception("Элемент не найден");
                            }
                            elem.ClientId        = model.ClientId;
                            elem.ExcursionCreate = model.ExcursionCreate;
                            elem.Final_Cost      = model.Final_Cost;
                            elem.Status          = model.Status;
                            context.SaveChanges();
                        }
                        else
                        {
                            elem.ClientId        = model.ClientId;
                            elem.ExcursionCreate = model.ExcursionCreate;
                            elem.Final_Cost      = model.Final_Cost;
                            elem.Status          = model.Status;
                            context.Excursions.Add(elem);
                            context.SaveChanges();
                            var routes = model.RouteForExcursions
                                         .GroupBy(rec => rec.RouteId)
                                         .Select(rec => new
                            {
                                RouteId = rec.Key,
                            });

                            foreach (var route in routes)
                            {
                                context.RouteForExcursions.Add(new RouteForExcursion
                                {
                                    ExcursionId = elem.Id,
                                    RouteId     = route.RouteId,
                                });
                                context.SaveChanges();
                            }
                        }
                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }
 private Excursion CreateModel(ExcursionBindingModel model, Excursion excursion)
 {
     excursion.Name      = model.Name;
     excursion.Price     = model.Price;
     excursion.Duration  = model.Duration;
     excursion.PlaceID   = model.PlaceID;
     excursion.TouristID = model.TouristID;
     return(excursion);
 }
Exemple #4
0
        public void Delete(ExcursionBindingModel model)
        {
            var element = _excursionStorage.GetElement(new ExcursionBindingModel {
                ID = model.ID
            });

            if (element == null)
            {
                throw new Exception("Элемент не найден");
            }
            _excursionStorage.Delete(model);
        }
Exemple #5
0
        public void SaveExcursionOrdersToPdfFile(string fileName, ExcursionBindingModel excursion, string email)
        {
            string title = "Список маршрутов по экскурсиям";

            SaveToPdf.CreateDoc(new PdfInfo
            {
                FileName   = fileName,
                Title      = title,
                Excursions = edLogic.Read(excursion).ToList(),
                Orders     = GetExcursionOrders(excursion)
            });
            SendMail(email, fileName, title);
        }
Exemple #6
0
        public Dictionary <int, List <OrderViewModel> > GetExcursionOrders(ExcursionBindingModel model)
        {
            var excursions = edLogic.Read(model).ToList();
            Dictionary <int, List <OrderViewModel> > pays = new Dictionary <int, List <OrderViewModel> >();

            foreach (var excursion in excursions)
            {
                var EdOrders = payLogic.Read(new OrderBindingModel {
                    ExcursionId = excursion.Id
                }).ToList();
                pays.Add(excursion.Id, EdOrders);
            }
            return(pays);
        }
        public void Update(ExcursionBindingModel model)
        {
            using (var context = new TourFirmDatabase())
            {
                var element = context.Excursions.FirstOrDefault(rec => rec.ID == model.ID);

                if (element == null)
                {
                    throw new Exception("Элемент не найден");
                }
                CreateModel(model, element);
                context.SaveChanges();
            }
        }
Exemple #8
0
 public List <ExcursionViewModel> Read(ExcursionBindingModel model)
 {
     if (model == null)
     {
         return(_excursionStorage.GetFullList());
     }
     if (model.ID.HasValue)
     {
         return(new List <ExcursionViewModel> {
             _excursionStorage.GetElement(model)
         });
     }
     return(_excursionStorage.GetFilteredList(model));
 }
        public void Delete(ExcursionBindingModel model)
        {
            using (var context = new TourFirmDatabase())
            {
                Excursion element = context.Excursions.FirstOrDefault(rec => rec.ID == model.ID);

                if (element != null)
                {
                    context.Excursions.Remove(element);
                    context.SaveChanges();
                }
                else
                {
                    throw new Exception("Элемент не найден");
                }
            }
        }
 public List <ExcursionViewModel> Read(ExcursionBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         return(context.Excursions.Where(rec => rec.Id == model.Id || (rec.ClientId == model.ClientId))
                .Select(rec => new ExcursionViewModel
         {
             Id = rec.Id,
             ClientId = rec.ClientId,
             ClientFIO = rec.Client.ClientFIO,
             ExcursionCreate = rec.ExcursionCreate,
             Cost = rec.Final_Cost,
             Remain = rec.Final_Cost - context.Orders.Where(recP => recP.ExcursionId == recP.Id).Select(recP => recP.Sum).Sum(),
             Status = rec.Status,
             RouteForExcursions = GetExRouteViewModel(rec)
         })
                .ToList());
     }
 }
Exemple #11
0
        public void CreateOrUpdate(ExcursionBindingModel model)
        {
            var element = _excursionStorage.GetElement(new ExcursionBindingModel
            {
                Name = model.Name,
            });

            if (element != null && element.ID != model.ID)
            {
                throw new Exception("Данная экскурсия уже зарегистрирована");
            }
            if (model.ID.HasValue)
            {
                _excursionStorage.Update(model);
            }
            else
            {
                _excursionStorage.Insert(model);
            }
        }
 public ExcursionViewModel GetElement(ExcursionBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new TourFirmDatabase())
     {
         var excursion = context.Excursions
                         .FirstOrDefault(rec => rec.Name == model.Name || rec.ID == model.ID);
         return(excursion != null ? new ExcursionViewModel
         {
             ID = excursion.ID,
             Name = excursion.Name,
             Price = excursion.Price,
             Duration = excursion.Duration,
             PlaceID = excursion.PlaceID,
             TouristID = excursion.TouristID,
         } :
                null);
     }
 }
        public List <ExcursionViewModel> GetFilteredList(ExcursionBindingModel model)
        {
            if (model == null)
            {
                return(null);
            }

            using (var context = new TourFirmDatabase())
            {
                return(context.Excursions
                       .Where(rec => rec.TouristID == model.TouristID)
                       .Select(rec => new ExcursionViewModel
                {
                    ID = rec.ID,
                    Name = rec.Name,
                    Price = rec.Price,
                    Duration = rec.Duration,
                    PlaceID = rec.PlaceID,
                    TouristID = rec.TouristID,
                })
                       .ToList());
            }
        }