Exemplo n.º 1
0
 protected override List <T> GetList <T>()
 {
     using (var context = new ZooDatabase())
     {
         return(context.Set <T>().ToList());
     }
 }
Exemplo n.º 2
0
        public void SaveToDatabase()
        {
            var routes = LoadRoutes();

            using (var context = new ZooDatabase())
            {
                foreach (var route in routes)
                {
                    Route element = context.Routes.FirstOrDefault(rec => rec.Id == route.Id);
                    if (element != null)
                    {
                        break;
                    }
                    else
                    {
                        element = new Route();
                        context.Routes.Add(element);
                    }
                    element.RouteName  = route.RouteName;
                    element.StartRoute = route.StartRoute;
                    element.Cost       = route.Cost;
                    context.SaveChanges();
                }
            }
        }
Exemplo n.º 3
0
 public void CreateOrUpdate(ClientBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         Client elem = context.Clients.FirstOrDefault(rec => rec.Id == model.Id);
         if (model.Id.HasValue)
         {
             elem = context.Clients.FirstOrDefault(rec => rec.Id == model.Id);
             if (elem == null)
             {
                 throw new Exception("Элемент не найден");
             }
         }
         else
         {
             elem = new Client();
             context.Clients.Add(elem);
         }
         elem.Login       = model.Login;
         elem.ClientFIO   = model.ClientFIO;
         elem.Password    = model.Password;
         elem.BlockStatus = model.BlockStatus;
         context.SaveChanges();
     }
 }
Exemplo n.º 4
0
        public void SaveToDatabase()
        {
            var workers = LoadWorkers();

            using (var context = new ZooDatabase())
            {
                foreach (var worker in workers)
                {
                    Worker element = context.Workers.FirstOrDefault(rec => rec.Id == worker.Id);
                    if (element != null)
                    {
                        break;
                    }
                    else
                    {
                        element = new Worker();
                        context.Workers.Add(element);
                    }
                    element.WorkerFIO = worker.WorkerFIO;
                    element.Email     = worker.Email;
                    element.Salary    = worker.Salary;
                    context.SaveChanges();
                }
            }
        }
Exemplo n.º 5
0
 public void CreateOrUpdate(OrderBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         Order elem = model.Id.HasValue ? null : new Order();
         if (model.Id.HasValue)
         {
             elem = context.Orders.FirstOrDefault(rec => rec.Id ==
                                                  model.Id);
             if (elem == null)
             {
                 throw new Exception("Элемент не найден");
             }
         }
         else
         {
             elem = new Order();
             context.Orders.Add(elem);
         }
         elem.ExcursionId = model.ExcursionId;
         elem.ClientId    = model.ClientId;
         elem.Sum         = model.Sum;
         elem.DateCreate  = model.DateCreate;
         context.SaveChanges();
     }
 }
Exemplo n.º 6
0
        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;
                    }
                }
            }
        }
Exemplo n.º 7
0
 protected override List <PropertyInfo> GetFullList()
 {
     using (var context = new ZooDatabase())
     {
         Type type = context.GetType();
         return(type.GetProperties().Where(x =>
                                           x.PropertyType.FullName.StartsWith("Microsoft.EntityFrameworkCore.DbSet")).ToList());
     }
 }
Exemplo n.º 8
0
        public void CreateOrUpdate(ClientBindingModel model)
        {
            using (var context = new ZooDatabase())
            {
                Client element = context.Clients.FirstOrDefault(rec => rec.ClientFIO == model.ClientFIO && rec.Id == model.Id && rec.Number == model.Number && rec.Gender == model.Gender && rec.Score == model.Score && rec.DateCreate == model.DateCreate && rec.CountTicket == model.CountTicket && rec.Email == model.Email);
                if (element != null)
                {
                    throw new Exception("Уже есть такой клиент");
                }
                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.Gender      = model.Gender;
                element.Number      = model.Number;
                element.Email       = model.Email;
                element.CountTicket = model.CountTicket;
                element.Score       = model.Score;
                element.DateCreate  = DateTime.Now;
                context.SaveChanges();
                var groupTickets = model.TicketClients
                                   .GroupBy(rec => rec.TicketId)
                                   .Select(rec => new
                {
                    TicketId = rec.Key,
                });

                foreach (var groupTicket in groupTickets)
                {
                    context.TicketClients.Add(new TicketClient
                    {
                        ClientId = element.Id,
                        TicketId = groupTicket.TicketId,
                    });
                    context.SaveChanges();
                }
            }
        }
Exemplo n.º 9
0
 public void Delete(ClientBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         Client element = context.Clients.FirstOrDefault(rec => rec.Id == model.Id);
         if (element != null)
         {
             context.Clients.Remove(element);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Элемент не найден");
         }
     }
 }
Exemplo n.º 10
0
        public void Delete(ExcursionBindingModel model)
        {
            using (var context = new ZooDatabase())
            {
                Excursion elem = context.Excursions.FirstOrDefault(rec => rec.Id == model.Id.Value);

                if (elem != null)
                {
                    context.Excursions.Remove(elem);
                    context.SaveChanges();
                }
                else
                {
                    throw new Exception("Элемент не найден");
                }
            }
        }
Exemplo n.º 11
0
 public List <OrderViewModel> Read(OrderBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         return(context.Orders
                .Where(rec => model == null || rec.Id == model.Id || rec.ExcursionId.Equals(model.ExcursionId))
                .Select(rec => new OrderViewModel
         {
             Id = rec.Id,
             ClientId = rec.ClientId,
             DateCreate = rec.DateCreate,
             ExcursionId = rec.ExcursionId,
             Sum = rec.Sum
         })
                .ToList());
     }
 }
Exemplo n.º 12
0
 public List <WorkerViewModel> Read(WorkerBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         return(context.Workers
                .Where(rec => model == null || rec.Id == model.Id)
                .ToList()
                .Select(rec => new WorkerViewModel
         {
             Id = rec.Id,
             WorkerFIO = rec.WorkerFIO,
             Email = rec.Email,
             Salary = rec.Salary
         })
                .ToList());
     }
 }
Exemplo n.º 13
0
 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());
     }
 }
Exemplo n.º 14
0
        static void Main(string[] args)
        {
            Console.Title = "Zoo Manager 2020";

            var randomizer          = new Randomizer();
            var animalNamesDatabase = new AnimalNamesDatabase(randomizer);
            var database            = ZooDatabase.FromFile(randomizer, animalNamesDatabase, "zoo.xml");
            var zoo = ZooManager.FromDatabase(randomizer, database);

            var consoleManager = ConsoleManager.Create(zoo, randomizer);

            while (true)
            {
                if (!consoleManager.Process())
                {
                    Thread.Sleep(50);
                }
            }
        }
Exemplo n.º 15
0
 public List <ClientViewModel> Read(ClientBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         return(context.Clients
                .Where(
                    rec => model == null ||
                    rec.Id == model.Id ||
                    rec.Login == model.Login && (model.Password == null || rec.Password == model.Password)
                    )
                .Select(rec => new ClientViewModel
         {
             Id = rec.Id,
             Login = rec.Login,
             ClientFIO = rec.ClientFIO,
             Password = rec.Password,
             BlockStatus = rec.BlockStatus
         })
                .ToList());
     }
 }
Exemplo n.º 16
0
 public List <ClientViewModel> Read(ClientBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         return(context.Clients
                .Where(rec => model == null || rec.Id == model.Id || model.DateFrom.HasValue && model.DateTo.HasValue && rec.DateCreate >= model.DateFrom && rec.DateCreate <= model.DateTo)
                .Select(rec => new ClientViewModel
         {
             Id = rec.Id,
             ClientFIO = rec.ClientFIO,
             Gender = rec.Gender,
             Number = rec.Number,
             Email = rec.Email,
             CountTicket = rec.CountTicket,
             Score = rec.Score,
             DateCreate = rec.DateCreate,
             TicketClients = GetTicketClientViewModel(rec)
         })
                .ToList());
     }
 }
Exemplo n.º 17
0
 public static List <RouteForExcursionViewModel> GetExRouteViewModel(Excursion ex)
 {
     using (var context = new ZooDatabase())
     {
         var RouteForExcursions = context.RouteForExcursions
                                  .Where(rec => rec.ExcursionId == ex.Id)
                                  .Select(rec => new RouteForExcursionViewModel
         {
             Id          = rec.Id,
             ExcursionId = rec.ExcursionId,
             RouteId     = rec.RouteId,
         }).ToList();
         foreach (var route in RouteForExcursions)
         {
             var routeData = context.Routes.Where(rec => rec.Id == route.RouteId).FirstOrDefault();
             route.RouteName  = routeData.RouteName;
             route.StartRoute = routeData.StartRoute;
             route.Cost       = routeData.Cost;
         }
         return(RouteForExcursions);
     }
 }
Exemplo n.º 18
0
 public static List <TicketClientViewModel> GetTicketClientViewModel(Client client)
 {
     using (var context = new ZooDatabase())
     {
         var TicketClients = context.TicketClients
                             .Where(rec => rec.ClientId == client.Id)
                             .Include(rec => rec.Ticket)
                             .Select(rec => new TicketClientViewModel
         {
             Id       = rec.Id,
             ClientId = rec.ClientId,
             TicketId = rec.TicketId,
             Cost     = rec.Cost
         }).ToList();
         foreach (var tick in TicketClients)
         {
             var tickData = context.Tickets.Where(rec => rec.Id == tick.TicketId).FirstOrDefault();
             tick.TypeTicket = tickData.TypeTicket;
             tick.Cost       = tickData.Cost;
         }
         return(TicketClients);
     }
 }
Exemplo n.º 19
0
 public void CreateOrUpdate(WorkerBindingModel model)
 {
     using (var context = new ZooDatabase())
     {
         Worker element = context.Workers.FirstOrDefault(rec => rec.Id == model.Id);
         if (model.Id.HasValue)
         {
             element = context.Workers.FirstOrDefault(rec => rec.Id == model.Id);
             if (element == null)
             {
                 throw new Exception("Элемент не найден");
             }
         }
         else
         {
             element = new Worker();
             context.Workers.Add(element);
         }
         element.WorkerFIO = model.WorkerFIO;
         element.Salary    = model.Salary;
         context.SaveChanges();
     }
 }