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); } }
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(); } }
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); }
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); } }
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; } }
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); }
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); }
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); }
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>(); }