Exemple #1
0
        /// <summary>
        /// Метод восстановления содержимого модели из сервера
        /// </summary>
        /// <param name="root">Ссылка на корневой объект модели</param>
        /// <param name="connection">Строка подключения</param>
        /// <returns></returns>
        public static bool RestoreTables(Root root, string connection)
        {
            var server = new Database.SqlServer {
                Connection = connection
            };
            // предметы
            var dataSet = server.GetRows("Matters");

            if (dataSet.Tables.Count > 0)
            {
                root.Matters.Clear();
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 2)
                    {
                        continue;
                    }
                    root.Matters.Add(new Matter
                    {
                        IdMatter = Guid.Parse(row.ItemArray[0].ToString()),
                        Name     = row.ItemArray[1].ToString()
                    });
                }
            }
            OperationResult = server.LastError;
            if (!string.IsNullOrWhiteSpace(OperationResult))
            {
                return(false);
            }
            // специальности
            dataSet = server.GetRows("Specialities");
            if (dataSet.Tables.Count > 0)
            {
                root.Specialities.Clear();
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 2)
                    {
                        continue;
                    }
                    root.Specialities.Add(new Speciality
                    {
                        IdSpeciality = Guid.Parse(row.ItemArray[0].ToString()),
                        Name         = row.ItemArray[1].ToString()
                    });
                }
            }
            OperationResult = server.LastError;
            if (!string.IsNullOrWhiteSpace(OperationResult))
            {
                return(false);
            }
            // сдаваемые предметы
            dataSet = server.GetRows("PassMatters");
            if (dataSet.Tables.Count > 0)
            {
                root.PassMatters.Clear();
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 4)
                    {
                        continue;
                    }
                    root.PassMatters.Add(new PassMatter
                    {
                        IdPassMatter = Guid.Parse(row.ItemArray[0].ToString()),
                        IdSpeciality = Guid.Parse(row.ItemArray[1].ToString()),
                        IdMatter     = Guid.Parse(row.ItemArray[2].ToString()),
                        PassForm     = (PassKind)Enum.Parse(typeof(PassKind), row.ItemArray[3].ToString())
                    });
                }
            }
            OperationResult = server.LastError;
            if (!string.IsNullOrWhiteSpace(OperationResult))
            {
                return(false);
            }
            // абитуриенты
            dataSet = server.GetRows("Enrollees");
            if (dataSet.Tables.Count > 0)
            {
                root.Enrollees.Clear();
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 16)
                    {
                        continue;
                    }
                    root.Enrollees.Add(new Enrollee
                    {
                        IdEnrollee           = Guid.Parse(row.ItemArray[0].ToString()),
                        RegistrationNumber   = row.ItemArray[1].ToString(),
                        Surname              = row.ItemArray[2].ToString(),
                        FirstName            = row.ItemArray[3].ToString(),
                        LastName             = row.ItemArray[4].ToString(),
                        BirthDay             = DateTime.Parse(row.ItemArray[5].ToString()),
                        SecodarySchoolName   = row.ItemArray[6].ToString(),
                        SecodarySchoolNumber = row.ItemArray[7].ToString(),
                        SecodarySchoolTown   = row.ItemArray[8].ToString(),
                        GraduationDate       = DateTime.Parse(row.ItemArray[9].ToString()),
                        GoldMedal            = bool.Parse(row.ItemArray[10].ToString()),
                        Town         = row.ItemArray[11].ToString(),
                        Street       = row.ItemArray[12].ToString(),
                        HouseNumber  = row.ItemArray[13].ToString(),
                        PhoneNumber  = row.ItemArray[14].ToString(),
                        IdSpeciality = Guid.Parse(row.ItemArray[15].ToString())
                    });
                }
            }
            OperationResult = server.LastError;
            if (!string.IsNullOrWhiteSpace(OperationResult))
            {
                return(false);
            }
            return(true);
        }
Exemple #2
0
        /// <summary>
        /// Метод загрузки сохранённой ранее конфигурации из базы данных
        /// </summary>
        /// <param name="connection"></param>
        /// <returns></returns>
        public static Hotel LoadFromBase(string connection)
        {
            var hotel  = new Hotel();
            var server = new Database.SqlServer {
                Connection = connection
            };
            // категории
            var dataSet = server.GetRows("Categories");

            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 2)
                    {
                        continue;
                    }
                    hotel.Categories.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                         row.ItemArray[1].ToString());
                }
            }
            OperationResult = server.LastError;
            // услуги
            dataSet = server.GetRows("Services");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 3)
                    {
                        continue;
                    }
                    hotel.Services.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                       row.ItemArray[1].ToString(),
                                       decimal.Parse(row.ItemArray[2].ToString()));
                }
            }
            OperationResult = server.LastError;
            // комнаты
            dataSet = server.GetRows("Rooms");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 6)
                    {
                        continue;
                    }
                    var room = hotel.Rooms.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                               Guid.Parse(row.ItemArray[1].ToString()),
                                               int.Parse(row.ItemArray[2].ToString()),
                                               int.Parse(row.ItemArray[3].ToString()),
                                               decimal.Parse(row.ItemArray[4].ToString()),
                                               row.ItemArray[5].ToString());
                    var ds = server.GetRows("RoomServices");
                    if (ds.Tables.Count > 0)
                    {
                        foreach (var item in ds.Tables[0].Rows.Cast <DataRow>())
                        {
                            if (item.ItemArray.Length != 2)
                            {
                                continue;
                            }
                            var roomId    = Guid.Parse(item.ItemArray[0].ToString());
                            var serviceId = Guid.Parse(item.ItemArray[1].ToString());
                            if (room.IdRoom == roomId)
                            {
                                var service = hotel.Services.FirstOrDefault(s => s.IdService == serviceId);
                                if (service != null)
                                {
                                    room.Services.Add(service);
                                }
                            }
                        }
                    }
                }
            }
            OperationResult = server.LastError;
            // должности
            dataSet = server.GetRows("EmployeeRoles");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 4)
                    {
                        continue;
                    }
                    hotel.EmployeeRoles.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                            row.ItemArray[1].ToString(),
                                            decimal.Parse(row.ItemArray[2].ToString()),
                                            (AllowedOperations)uint.Parse(row.ItemArray[3].ToString()));
                }
            }
            OperationResult = server.LastError;
            // штат сотрудников
            dataSet = server.GetRows("RegistryStaff");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 7)
                    {
                        continue;
                    }
                    hotel.RegistryStaff.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                            row.ItemArray[1].ToString(),
                                            row.ItemArray[2].ToString(),
                                            row.ItemArray[3].ToString(),
                                            row.ItemArray[4].ToString(),
                                            Guid.Parse(row.ItemArray[5].ToString()),
                                            row.ItemArray[6].ToString());
                }
            }
            OperationResult = server.LastError;
            // клиенты
            dataSet = server.GetRows("Clients");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 9)
                    {
                        continue;
                    }
                    hotel.Clients.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                      row.ItemArray[1].ToString(),
                                      row.ItemArray[2].ToString(),
                                      row.ItemArray[3].ToString(),
                                      DateTime.Parse(row.ItemArray[4].ToString()),
                                      row.ItemArray[5].ToString(),
                                      row.ItemArray[6].ToString(),
                                      row.ItemArray[7].ToString(),
                                      int.Parse(row.ItemArray[8].ToString()));
                }
            }
            OperationResult = server.LastError;
            // бронирование
            dataSet = server.GetRows("Reservations");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 6)
                    {
                        continue;
                    }
                    hotel.Reservations.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                           Guid.Parse(row.ItemArray[1].ToString()),
                                           Guid.Parse(row.ItemArray[2].ToString()),
                                           DateTime.Parse(row.ItemArray[3].ToString()),
                                           DateTime.Parse(row.ItemArray[4].ToString()),
                                           Guid.Parse(row.ItemArray[5].ToString()));
                }
            }
            OperationResult = server.LastError;
            // доставка до гостиницы
            dataSet = server.GetRows("Transfers");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 5)
                    {
                        continue;
                    }
                    hotel.Transfers.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                        Guid.Parse(row.ItemArray[1].ToString()),
                                        row.ItemArray[2].ToString(),
                                        DateTime.Parse(row.ItemArray[3].ToString()),
                                        int.Parse(row.ItemArray[4].ToString()));
                }
            }
            OperationResult = server.LastError;
            // перечень каналов
            dataSet = server.GetRows("PayChannels");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 3)
                    {
                        continue;
                    }
                    hotel.PayChannels.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                          row.ItemArray[1].ToString(),
                                          decimal.Parse(row.ItemArray[2].ToString()));
                }
            }
            OperationResult = server.LastError;
            // перечень подписок
            dataSet = server.GetRows("AccordancePayChannels");
            if (dataSet.Tables.Count > 0)
            {
                foreach (var row in dataSet.Tables[0].Rows.Cast <DataRow>())
                {
                    if (row.ItemArray.Length != 2)
                    {
                        continue;
                    }
                    var accordance = hotel.AccordancePayChannels.Add(Guid.Parse(row.ItemArray[0].ToString()),
                                                                     Guid.Parse(row.ItemArray[1].ToString()));
                    var ds = server.GetRows("RoomPayChannels");
                    if (ds.Tables.Count > 0)
                    {
                        foreach (var item in ds.Tables[0].Rows.Cast <DataRow>())
                        {
                            if (item.ItemArray.Length != 2)
                            {
                                continue;
                            }
                            var accordanceId = Guid.Parse(item.ItemArray[0].ToString());
                            var channelId    = Guid.Parse(item.ItemArray[1].ToString());
                            if (accordance.IdAccordancePayChannel == accordanceId)
                            {
                                var channel = hotel.PayChannels.FirstOrDefault(c => c.IdPayChannel == channelId);
                                if (channel != null)
                                {
                                    accordance.PayChannels.Add(channel);
                                }
                            }
                        }
                    }
                }
            }
            OperationResult = server.LastError;
            return(hotel);
        }