示例#1
0
        static ICinema CreateCinema(CinemaType ct, EquipmentType et)
        {
            IRelay  projector, lamp1, lamp2;
            IEngine engine1, engine2;

            if (et == EquipmentType.Noolite)
            {
                projector = new RelayNoolite();
                lamp1     = new RelayNoolite();
                lamp2     = new RelayZWave();
                engine1   = new StepMotor();
                engine2   = new StepMotor();
            }
            else
            {
                projector = new RelayZWave();
                lamp1     = new RelayZWave();
                lamp2     = new RelayZWave();
                engine1   = new Motor();
                engine2   = new Motor();
            }

            switch (ct)
            {
            case CinemaType.flat:
                return(new CinemaFlat(lamp1, projector, engine1));

            case CinemaType.cottadge:
                return(new CinemaCottadge(projector, lamp1, lamp2, engine1, engine2));

            default:
                return(null);
            }
        }
示例#2
0
        private static void UpdateDatabase(DataRequestService request, CinemaType cinemaType)
        {
            using (SqlConnection con = new SqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("UpdateDB");
                con.Open();

                var sql = "select * from Cinema Where CinemaType=" + ((int)cinemaType).ToString();
                AddMovies(sql, con, request, cinemaType);
                con.Close();
            }
        }
示例#3
0
        private Color CinemaColor(CinemaType type)
        {
            Color cinemaColor = Color.Transparent;

            switch (type)
            {
            default: break;

            case CinemaType.cinemacity: cinemaColor = Color.OrangeRed; break;

            case CinemaType.multikino: cinemaColor = Color.MediumVioletRed; break;
            }

            return(cinemaColor);
        }
示例#4
0
        private void ProcessMovies(Cinema cinema, string cinemaName, CinemaType cinemaType)
        {
            var textColor = CinemaColor(cinemaType);
            var group     = new Group <MovieShows>(textColor, cinemaName, cinema.Name.Substring(0, 1) + cinema.City.Substring(0, 2));

            foreach (SimpleMovie movie in cinema.MoviesPlayed)
            {
                if (_filterService.IsActive)
                {
                    if (!_filterService.Check(movie))
                    {
                        continue;
                    }
                }

                string shows = "";
                foreach (var show in movie.Shows)
                {
                    if (show.ShowDate.Date.Equals(DateTime.Today))
                    {
                        shows = shows + show.Start + ", ";
                    }
                }

                string genre = null;
                if (movie.Genre != null)
                {
                    if (movie.Genre.Count > 0)
                    {
                        genre = movie.Genre[0];
                    }
                }

                var             showData = new BasicShowData(cinema.IdCinema, movie.Id, cinemaName, movie.AverageRating);
                MvxAsyncCommand command  = new MvxAsyncCommand(async() =>
                {
                    await _navigationService.Navigate <MovieViewModel, BasicShowData>(showData);
                });

                var movieShows = new MovieShows(movie.Name, genre, shows, movie.AverageRating, command);
                group.Add(movieShows);
            }

            if (group.Count != 0)
            {
                Repertoires.Add(group);
            }
        }
示例#5
0
        public void ProvideData(CinemaType cinemaType, int cinemaId)
        {
            string dataString = GetResponse(cinemaType, cinemaId);

            switch (cinemaType)
            {
            default: MovieList = new List <MovieItem>(); break;

            case CinemaType.multikino:
                MultikinoDeserializer multikinoDeserializer = new MultikinoDeserializer();
                MovieList = multikinoDeserializer.Deserialize(dataString, cinemaId);
                break;

            case CinemaType.cinemacity:
                CinemaCityDeserializer cinemaCityDeserializer = new CinemaCityDeserializer();
                MovieList = cinemaCityDeserializer.Deserialize(dataString, cinemaId);
                break;
            }
        }
示例#6
0
        public String GetResponse(CinemaType cinemaType, int cinemaId)
        {
            var    client = new HttpClient();
            string uri    = null;

            switch (cinemaType)
            {
            case CinemaType.multikino: uri = GetMultikinoUri(cinemaId); break;

            case CinemaType.cinemacity: uri = GetCinemaCityUri(cinemaId); break;
            }

            var httpResponse = client.GetAsync(uri).Result;

            httpResponse.EnsureSuccessStatusCode();
            var responseStream = httpResponse.Content.ReadAsStringAsync();

            return(responseStream.Result);
        }
示例#7
0
        public static CinemaJsonData LoadData(CinemaType type, string dataPath)
        {
            CinemaJsonData result = null;

            switch (type)
            {
            case CinemaType.Live:
                result = Persistence.json.LoadFile <CinemaJsonData>(dataPath);
                break;

            case CinemaType.Anchor:
                result = Persistence.json.LoadFile <AnchorCinemaJsonData>(dataPath);
                break;

            case CinemaType.Camera:
                result = Persistence.json.LoadFile <CameraCinemaJsonData>(dataPath);
                break;
            }
            return(result);
        }
示例#8
0
        public static Color TextColor(CinemaType type)
        {
            Color color = Color.Black;

            switch (type)
            {
            case CinemaType.CinemaCity:
                color = Color.OrangeRed;
                break;

            case CinemaType.Multikino:
                color = Color.MediumVioletRed;
                break;

            default:
                color = Color.Black;
                break;
            }

            return(color);
        }
示例#9
0
 private static void AddMovies(string sql, SqlConnection con, DataRequestService request, CinemaType cinemaType)
 {
     using (SqlCommand command = new SqlCommand(sql, con))
     {
         using (SqlDataReader reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 Console.WriteLine("Adding Movies.." + reader.GetString(2));
                 request.ProvideData(cinemaType, reader.GetInt32(1));
                 //ADD MOVIES TO DB
                 foreach (var movie in request.MovieList)
                 {
                     if (movie.Original_Name == null)
                     {
                         movie.Original_Name = movie.Name;
                     }
                     movie.Name = Regex.Replace(movie.Name, "[^a-zA-Z]", "").ToLower();
                     //Check if movie exists in DB
                     UpdateOrInsertMovies(con, movie);
                 }
             }
         }
     }
 }
        //生成的中间json数据,导出新的动画json数据
        public void Export()
        {
            //1. 读取本地cinemjson数据
            _LoadAndCacheCinemaJsonData();
            //2. 读取中间json数据
            BridgeHideNpcCinemaJsonData bridgeHideNpcCinemaJsonData = Persistence.json.LoadFile <BridgeHideNpcCinemaJsonData>(CinemaDataCommon.BridgeHideNpcCinemaJsonName);
            //3. 修改本地cinemaJson数据并导出成新的json文件
            List <int> _dataChangedCinemaIds = new List <int>();//动画配置数据发生变化了的动画ID

            if (null != bridgeHideNpcCinemaJsonData && (bridgeHideNpcCinemaJsonData.data.Length > 0))
            {
                int count = bridgeHideNpcCinemaJsonData.data.Length;
                for (int i = 0; i < count; i++)
                {
                    BridgeHideNpcCinemaJsonData.JsonData jsonData = bridgeHideNpcCinemaJsonData.data[i];
                    int        npcId                = jsonData.npc_id;
                    CinemaType cinemType            = jsonData.cinema_type;
                    int[]      cinemaIdsTobeChanged = jsonData.cinema_ids;//收集需要修改的动画ID
                    //3 优先处理指定类型的动画,不然处理修改指定的动画ID
                    if (cinemType != CinemaType.None)
                    {
                        List <int> cinemaIdsWithSameType;
                        if (cinemaTypeMapCinemaIds.TryGetValue(cinemType, out cinemaIdsWithSameType))
                        {
                            cinemaIdsTobeChanged = cinemaIdsWithSameType.ToArray();
                        }
                    }


                    foreach (var cinemaIdToBeChanged in cinemaIdsTobeChanged)
                    {
                        //根据动画ID获取对应的cinemaJsonData
                        CinemaJsonData cjd;
                        if (cinemaIdMapCinemaJsonData.TryGetValue(cinemaIdToBeChanged, out cjd))
                        {
                            if (cjd is CameraCinemaJsonData)
                            {
                                CameraCinemaJsonData ccjd = cjd as CameraCinemaJsonData;
                                //目前只有镜头动画才有隐藏npc的功能
                                //尝试追加npcId
                                bool dataChanged = _TryAddHideNpcId(ref ccjd, npcId);
                                if (dataChanged)
                                {
                                    //记录已经修改的动画ID
                                    if (!_dataChangedCinemaIds.Contains(cinemaIdToBeChanged))
                                    {
                                        _dataChangedCinemaIds.Add(cinemaIdToBeChanged);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //4. 将数据有变化的动画数据导出为json
            foreach (var dataChangedCinemaId in _dataChangedCinemaIds)
            {
                //找到动画名
                string cinemaName = "";
                if (cinemaIdMapCinemaName.TryGetValue(dataChangedCinemaId, out cinemaName))
                {
                    //获取更新后的cinemaJsonData
                    CinemaJsonData cjd;
                    if (cinemaIdMapCinemaJsonData.TryGetValue(dataChangedCinemaId, out cjd))
                    {
                        //导出json文件,目前只修改镜头动画的数据
                        if (null != cjd && cjd is CameraCinemaJsonData)
                        {
                            Persistence.json.Save(CinemaDataCommon.GetCinemaJsonFileFullPath(cinemaName), cjd);
                            Console.WriteLine("modify cinema id:{0},cinema name:{1}", dataChangedCinemaId, cinemaName);
                        }
                    }
                }
            }
        }
 public Cinema(CinemaType type)
 {
     ID         = _id++;
     CinemaType = type;
     MovieHalls = new List <MovieHall>();
 }