예제 #1
0
        public async void GetCassetes()
        {
            Model.RentalShopEntities rs = new Model.RentalShopEntities();

            foreach (var item in rs.Cassetes)
            {
                p.Dispatcher.Invoke(() =>
                {
                    if (token.IsCancellationRequested)
                    {
                        return;
                    }
                    else
                    {
                        Cassetes.Add(new CasseteShortInfo
                        {
                            Cover = API.Image.ByteArrayToImage(item.Cover),
                            Id    = item.Catalog_Id,
                            Name  = item.Title
                        });
                    }
                });
            }
            IsUpdateAllows = true;
        }
예제 #2
0
 public async void FindCommandClick(object sender)
 {
     try
     {
         FindHandler find = new FindHandler();
         rs = new Model.RentalShopEntities();
         List <int> tmp = new List <int>();
         FreeCassetes.Clear();
         foreach (var item in find.FindTitle(FindHandler.FieldType.Title, FindArg))
         {
             foreach (var copyItem in rs.Cassete_Copies)
             {
                 if (item != null && copyItem.Catalog_Id == item.Catalog_Id && copyItem.Status != "busy" && !tmp.Contains(copyItem.Catalog_Id))
                 {
                     tmp.Add(copyItem.Catalog_Id);
                     p.Dispatcher.Invoke(() =>
                     {
                         FreeCassetes.Add(new CasseteShortInfo
                         {
                             Cover = API.Image.ByteArrayToImage(item.Cover),
                             Id    = item.Catalog_Id,
                             Name  = item.Title
                         });
                     });
                 }
             }
         }
         tmp.Clear();
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
예제 #3
0
        private void GetOrders()
        {
            Model.Cassete_Copies cassete_copy;
            rs = new Model.RentalShopEntities();
            string status;

            foreach (var item in rs.Cassete_Rentals)
            {
                p.Dispatcher.Invoke(() =>
                {
                    cassete_copy = rs.Cassete_Copies.Where(s => s.Copy_Id == item.Copy_Id).FirstOrDefault <Model.Cassete_Copies>();
                    if (cassete_copy.Status == "busy")
                    {
                        status = "В аренде";
                    }
                    else
                    {
                        status = "Выполнено";
                    }
                    Orders.Add(new OrderInfo
                    {
                        OrderID        = item.Order_Id,
                        CopyID         = item.Copy_Id,
                        Give_Date      = item.Give_Date.Date,
                        Get_Date       = item.Get_Date,
                        Client         = item.Clients.First_Name + " " + item.Clients.Second_Name + " (" + item.Clients.Client_Id + ")",
                        Departament_ID = item.Departament_Id,
                        Status         = status
                    });
                });
            }
        }
예제 #4
0
 public void GetFreeCassetes()
 {
     try
     {
         rs = new Model.RentalShopEntities();
         List <int>     tmp = new List <int>();
         Model.Cassetes cassete;
         FreeCassetes.Clear();
         foreach (var item in rs.Cassete_Copies)
         {
             cassete = rs.Cassetes.Find(item.Catalog_Id);
             if (cassete != null && item.Status != "busy" && !tmp.Contains(item.Catalog_Id))
             {
                 tmp.Add(item.Catalog_Id);
                 p.Dispatcher.Invoke(() =>
                 {
                     FreeCassetes.Add(new CasseteShortInfo
                     {
                         Name   = cassete.Title,
                         Copies = item.Copy_Id,
                         Cover  = API.Image.ByteArrayToImage(cassete.Cover),
                         Id     = item.Catalog_Id,
                         CopyId = item.Copy_Id
                     });
                 });
             }
         }
         tmp.Clear();
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
예제 #5
0
 private void CrateOrderClick(object sender)
 {
     try
     {
         rs = new Model.RentalShopEntities();
         rs.Cassete_Rentals.Add(new Model.Cassete_Rentals
         {
             Order_Id       = rs.Cassete_Rentals.Count() + 1,
             Copy_Id        = SelectedCassete.CopyId,
             Give_Date      = SelectedDate,
             Get_Date       = SelectedReturnDate,
             Client_Id      = _selectedClientID + 1,
             Departament_Id = rs.Staff.Find(AuthorizationHandler.CurrentUserID).Departament_Id.GetValueOrDefault()
         });
         rs.Cassete_Copies.Find(SelectedCassete.CopyId, SelectedCassete.Id).Status = "busy";
         rs.SaveChanges();
         MessageBox.Show("Заказ создан.");
         GetFreeCassetes();
     }
     catch (NullReferenceException)
     {
         MessageBox.Show("Заполните все поля!");
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
예제 #6
0
 private void ReturnCassete(object sender)
 {
     if (copy != null)
     {
         rs = new Model.RentalShopEntities();
         rs.Cassete_Copies.Find(copy.Copy_Id, copy.Catalog_Id).Status = "free";
         rs.SaveChanges();
         MessageBox.Show("Касета возвращена. Заказ выполнен.");
     }
 }
예제 #7
0
        public ObservableCollection <Model.Cassetes> FindTitle(FieldType type, string str)
        {
            rs = new Model.RentalShopEntities();
            ObservableCollection <Model.Cassetes> cassetes = new ObservableCollection <Model.Cassetes>();

            switch (type)
            {
            case FieldType.Title:
                foreach (var item in rs.Cassetes)
                {
                    if (item.Title.ToLower().Contains(str.ToLower()))
                    {
                        cassetes.Add(item);
                    }
                }
                break;

            case FieldType.Director:
                foreach (var item in rs.Cassetes)
                {
                    if (item.Director.ToLower().Contains(str.ToLower()))
                    {
                        cassetes.Add(item);
                    }
                }
                break;

            case FieldType.Price:
                foreach (var item in rs.Cassetes)
                {
                    if (item.Price.ToString().ToLower().Contains(str.ToLower()))
                    {
                        cassetes.Add(item);
                    }
                }
                break;

            case FieldType.Departament:
                foreach (var item in rs.Cassetes)
                {
                    if (item.Departament_Id.ToString().ToLower().Contains(str.ToLower()))
                    {
                        cassetes.Add(item);
                    }
                }
                break;
            }
            return(cassetes);
        }
예제 #8
0
        private void GetAllClientsNames()
        {
            try
            {
                rs = new Model.RentalShopEntities();

                foreach (var item in rs.Clients)
                {
                    Clients.Add(item.First_Name + " " + item.Second_Name + "(id" + item.Client_Id + ")");
                }
                OnPropertyChanged("Clients");
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
예제 #9
0
        public Position.EmployeePosition Auth(string login, string pass)
        {
            Model.RentalShopEntities rs = new Model.RentalShopEntities();
            foreach (var item in rs.Users)
            {
                if (item.Login == login && item.Password == pass)
                {
                    foreach (var staff in rs.Staff)
                    {
                        if (login == staff.Login)
                        {
                            if (staff.Position.Replace(" ", "") == "Работник")
                            {
                                CurrentPosition = Position.EmployeePosition.Common;
                                return(Position.EmployeePosition.Common);
                            }
                            else
                            {
                                if (staff.Position.Replace(" ", "") == "Менеджер")
                                {
                                    CurrentUserID   = staff.Personnel_Id;
                                    CurrentPosition = Position.EmployeePosition.Manager;
                                    UserName        = staff.First_Name + " " + staff.Last_Name;
                                    Login           = login;

                                    return(Position.EmployeePosition.Manager);
                                }
                            }
                        }
                    }
                    foreach (var user in rs.Clients)
                    {
                        if (user.Login == login)
                        {
                            UserName        = user.First_Name + " " + user.Second_Name;
                            Login           = user.Login;
                            CurrentPosition = Position.EmployeePosition.Client;
                            return(Position.EmployeePosition.Client);
                        }
                    }
                }
            }
            return(Position.EmployeePosition.NotFound);
        }
예제 #10
0
 private void ConnectToDB()
 {
     database = new Model.RentalShopEntities();
 }
예제 #11
0
 private void GetTotalInfo()
 {
     try
     {
         ReturnTotal.Clear();
         rs = new Model.RentalShopEntities();
         OrderInfo             orderInfo;
         Model.Cassete_Rentals cassete_Rentals = rs.Cassete_Rentals.Find(int.Parse(OrderID));
         if (cassete_Rentals != null)
         {
             Model.Cassetes cassete = rs.Cassete_Copies.Where(s => s.Copy_Id == cassete_Rentals.Copy_Id).FirstOrDefault <Model.Cassete_Copies>().Cassetes;
             if (rs.Cassete_Copies.Where(s => s.Copy_Id == cassete_Rentals.Copy_Id).FirstOrDefault <Model.Cassete_Copies>().Status == "busy")
             {
                 Cover = API.Image.ByteArrayToImage(cassete.Cover);
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Клиент",
                     Value = cassete_Rentals.Clients.First_Name + " " + cassete_Rentals.Clients.Second_Name
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Номер клиента",
                     Value = cassete_Rentals.Clients.Client_Id.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Логин клиента",
                     Value = cassete_Rentals.Clients.Login
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Номер копии",
                     Value = cassete_Rentals.Copy_Id.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Кассета",
                     Value = cassete.Title
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Номер кассеты",
                     Value = cassete.Catalog_Id.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Дата получения",
                     Value = cassete_Rentals.Give_Date.Date.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Дата возврата",
                     Value = cassete_Rentals.Get_Date.Date.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Утеряна",
                     Value = IsLose.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Номер отдела",
                     Value = cassete_Rentals.Departament_Id.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Адрес отдела",
                     Value = cassete_Rentals.Departaments.State + ", " + cassete_Rentals.Departaments.City + ", " + cassete_Rentals.Departaments.Street + ", " + cassete_Rentals.Departaments.Zip
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Цена за кассету в сутки",
                     Value = cassete.Price.ToString()
                 });
                 ReturnTotal.Add(new ReturnInfo
                 {
                     Title = "Цена по договору",
                     Value = (((cassete_Rentals.Get_Date - cassete_Rentals.Give_Date).Days) * Convert.ToInt32(cassete.Price)).ToString()
                 });
                 copy = rs.Cassete_Copies.Where(s => s.Copy_Id == cassete_Rentals.Copy_Id).FirstOrDefault <Model.Cassete_Copies>();
             }
             else
             {
                 MessageBox.Show("Заказ уже завершен");
                 ReturnTotal.Clear();
                 Cover  = null;
                 IsLose = false;
             }
         }
         else
         {
             MessageBox.Show("Заказ не найден");
             Cover  = null;
             IsLose = false;
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }