private void ChangeType() { switch (SelectedCaseType.ToLower()) { case "empty": Case = new EmptyCase(); break; case "property": Case = new PropertyCase(); break; case "chance": Case = new ChanceCase(); break; case "chest": Case = new ChestCase(); break; case "jail": Case = new JailCase(); break; case "station": Case = new StationCase(); break; case "tax": Case = new TaxCase(); break; } }
private void btnEnleverPropriete_Click(object sender, EventArgs e) { PropertyCase[] selectedPropertiesJoueur = new PropertyCase[lbxProprietesJoueur.SelectedItems.Count]; lbxProprietesJoueur.SelectedItems.CopyTo(selectedPropertiesJoueur, 0); foreach (PropertyCase p in selectedPropertiesJoueur) { p.Owner = null; p.Invalidate(); lbxProprietesJoueur.Items.Remove(p); lbxProprietesDispo.Items.Add(p); } FrmGame.UpdateTabs(); }
private void btnAcheterPropriete_Click(object sender, EventArgs e) { Player currentPlayer = game.CurrentPlayer; AbstractCase currentCase = game.Cases[game.CurrentPlayer.CurrentCaseIndex]; if (currentCase is PropertyCase) { PropertyCase property = currentCase as PropertyCase; if (property.Owner == null) { if (currentPlayer.Wealth >= property.Price) { currentPlayer.Wealth = currentPlayer.Wealth - property.Price; property.Owner = currentPlayer; property.Invalidate(); } } } btnAcheterPropriete.Enabled = false; UpdateTabs(); }
public int CreateCase(List <int> selectedQueueIds, int departmentID, int caseTypeID) { using (var db = new ModelDBContext()) { //get list of queues to be update later on var queueList = db.Queues.Where(q => selectedQueueIds.Contains(q.QueueID)).Include(q => q.Property).ToList(); //get case type name string caseType = db.CaseTypes.Where(c => c.CaseTypeID == caseTypeID).Select(c => c.Name).FirstOrDefault(); //generate case name string caseName = caseType + "-" + queueList[0].Property.ParcelNumber + "-" + DateTime.Now.ToString("MM-dd-yyyy"); //create case object PropertyCase propertyCase = new PropertyCase() { CaseTypeID = caseTypeID, DepartmentID = departmentID, CreatedDate = DateTime.Now, CaseName = caseName }; //save changes to get the case id db.PropertyCases.Add(propertyCase); db.SaveChanges(); //assign case number to all queues foreach (var queue in queueList) { queue.PropertyCaseID = propertyCase.PropertyCaseID; } db.SaveChanges(); return(propertyCase.PropertyCaseID); } }
public void UpdateTabs() { Player currentPlayer = game.CurrentPlayer; AbstractCase currentCase = game.Cases[game.CurrentPlayer.CurrentCaseIndex]; tabs.TabPages.Clear(); if (!game.HasPlayed && currentPlayer.NbDoubles <= 0) // @TODO : Player hasn't played ( firt throw ) { btnLancerDes.Enabled = true; tabs.TabPages.Add(tabCaseDes); } else { if (currentPlayer.NbDoubles > 0) { btnLancerDes.Enabled = true; tabs.TabPages.Add(tabCaseDes); } if (currentCase is StartCase || currentCase is FreeParkingCase || currentCase is GoToJailCase || currentCase is JailCase) { string title = currentCase.ToString(); if (currentCase is StartCase) { title += Environment.NewLine + "Vous gagnez 200F"; } else if (currentCase is JailCase) { if (currentPlayer.IsInJail == true) { title += Environment.NewLine + "En prison !"; } else { title += Environment.NewLine + "Visite simple"; } } else if (currentCase is GoToJailCase) { title += Environment.NewLine + "Allez en prison !"; } lblCaseCoin.Text = title; pbxCaseCoin.BackgroundImage = currentCase.GetBoardCaseImage(game); pbxCaseCoin.BackgroundImageLayout = ImageLayout.Zoom; tabs.TabPages.Add(tabCaseCoin); } else if (currentCase is TaxCase) { TaxCase taxe = currentCase as TaxCase; pbxCaseTaxeCarte.BackgroundImage = taxe.GetBoardCaseImage(game); tabs.TabPages.Add(tabCaseTaxe); } else if (currentCase is CardCase) { CardCase specialCard = currentCase as CardCase; lblChanceChancellerie.Text = game.LastSpecialCard.ToString(); pbxCaseChanceImage.BackgroundImage = specialCard.TypeImage; lblCaseChanceChancelTitre.Text = specialCard.ToString(); tabs.TabPages.Add(tabCaseChanceChancel); } else if (currentCase is PropertyCase) { PropertyCase property = currentCase as PropertyCase; if (property.Owner == currentPlayer || property.Owner != null) { if (property.Owner == currentPlayer) { lblCasePropAchetee.Text = $"Bienvenue chez vous, {currentPlayer.Name} !"; } else { if (!property.IsMortgaged) { lblCasePropAchetee.Text = $"Vous êtes chez {property.Owner.Name}.{Environment.NewLine}Vous payez {property.GetRent(game)}F de loyer"; } else { lblCasePropAchetee.Text = $"Propriété hypothéquée {Environment.NewLine} Vous ne payez rien"; } } pbxCasePropAchetee.BackgroundImage = property.GetPropertyCardImage(2); tabs.TabPages.Add(tabCasePropAchetee); } else { if (currentPlayer.Wealth >= property.Price) { btnAcheterPropriete.Enabled = true; pbxCasePropSimple.BackgroundImage = property.GetPropertyCardImage(2); lblCasePropSimplePrixAchat.Text = "Prix d'achat :" + Environment.NewLine + $"{property.Price}F"; tabs.TabPages.Add(tabCasePropSimple); } else { pbxCasePropSimple.BackgroundImage = property.GetPropertyCardImage(2); lblCasePropSimplePrixAchat.Text = "Vous n'avez pas assez de Flouzz."; btnAcheterPropriete.Enabled = false; tabs.TabPages.Add(tabCasePropSimple); } } } } // Load the properties flpProperties.Controls.Clear(); var cases = game.CurrentPlayer.GetProperties(game); foreach (PropertyCase c in cases) { PropertyManager pm = new PropertyManager() { Property = c, Game = game, FrmGame = this, }; flpProperties.Controls.Add(pm); pm.UpdateBuildings(); } tabs.TabPages.Add(tabProperties); }
public override void OnActionExecuted(ActionExecutedContext context) { if (context == null) { throw new ArgumentNullException("context"); } var viewResult = context.Result as ViewResult; if (viewResult == null) return; var tempData = context.Controller.TempData; var viewData = context.Controller.ViewData; viewData.Model = viewResult.Model; var req = context.HttpContext.Request; var modelState = viewData.ModelState; var errs = modelState.Keys.Where(key => modelState[key].Errors.Count > 0).ToDictionary<string, string, IList<string>>(key => key, key => modelState[key].Errors.Select(e => e.ErrorMessage).ToList()); if (!req.IsAjaxRequest()){ context.Result = new ViewResult { ViewName = viewResult.ViewName ?? GetViewName(context), TempData = tempData, ViewData = viewData }; } else { HttpResponseBase response = context.HttpContext.Response; // set content type //response.ContentType = !string.IsNullOrEmpty(ContentType) ? ContentType : "application/json"; //var isJson = req.ContentType.Split(';').Any(t => t.Equals("application/json", StringComparison.OrdinalIgnoreCase)); var isJson = req.Headers["Accept"].Split(',').Any(t => t.Equals("application/json", StringComparison.OrdinalIgnoreCase)); if (isJson) { _propertyCase = PropertyCase.CamelCase; _convertDate = true; var view = new JsonResult(); if (tempData.ContainsKey("ActionResult")) { view.Data = tempData["ActionResult"]; } else { var msg = tempData.ContainsKey("Message") ? tempData["Message"] : String.Empty; if (errs.Any()) { view.Data = new { errors = errs, success = false, message = msg }; } else { view.Data = new { data = viewData.Model, success = true, message = msg }; } } // set content encoding if (ContentEncoding != null) { response.ContentEncoding = ContentEncoding; } if (Settings == null) { Settings = new JsonSerializerSettings(); if (_propertyCase == PropertyCase.CamelCase) { Settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); } if (_convertDate) { Settings.Converters = new List<JsonConverter> { new JavaScriptDateTimeConverter() }; } } Settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), }; var x = JsonConvert.SerializeObject(view.Data, Formatting, Settings); context.Result = new JsonResult { Data = view.Data }; } else { var viewName = GetAjaxViewName(context) ?? viewResult.ViewName; var vResult = context.Result as ViewResult; context.Result = new PartialViewResult { TempData = vResult.TempData, ViewData = vResult.ViewData, ViewName = viewName }; } } }
public JsonNetResult(object responseBody, PropertyCase propertyCase = PropertyCase.CamelCase, bool convertDate = true) { ResponseBody = responseBody; _propertyCase = propertyCase; _convertDate = convertDate; }