You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.4 KiB
104 lines
2.4 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Model
|
|
{
|
|
public class Game
|
|
{
|
|
public string Name
|
|
{
|
|
get { return name; }
|
|
private set
|
|
{
|
|
if (value == null || value == "") return;
|
|
name = value;
|
|
}
|
|
}
|
|
private string? name;
|
|
|
|
public string Description
|
|
{
|
|
get { return description; }
|
|
private set
|
|
{
|
|
if (value == null || value == "") return;
|
|
description = value;
|
|
}
|
|
}
|
|
private string? description;
|
|
|
|
public int Year
|
|
{
|
|
get { return year; }
|
|
private set
|
|
{
|
|
if (value < 1957 || value > 2023) return;
|
|
year = value;
|
|
}
|
|
}
|
|
private int year;
|
|
|
|
public string[] Tags
|
|
{
|
|
get { return tags; }
|
|
set
|
|
{
|
|
if (value == null || value.Length != 3) return;
|
|
tags = value;
|
|
}
|
|
}
|
|
private string[]? tags;
|
|
|
|
public List<Review> Reviews { get; }
|
|
|
|
public Game(string name, string description, int year, string[] tags)
|
|
{
|
|
Name = name;
|
|
Description = description;
|
|
Year = year;
|
|
tags = new string[3];
|
|
Tags = tags;
|
|
Reviews = new List<Review>();
|
|
}
|
|
|
|
public float GetAvgRate()
|
|
{
|
|
float sum = 0;
|
|
|
|
foreach (Review review in Reviews)
|
|
{
|
|
sum += review.Rate;
|
|
}
|
|
return sum / Reviews.Count;
|
|
}
|
|
|
|
public void AddReview(Review review)
|
|
{
|
|
Reviews.Add(review);
|
|
}
|
|
public void RemoveReview(Review review)
|
|
{
|
|
Reviews.Remove(review);
|
|
}
|
|
public void DescChange(string newdesc)
|
|
{
|
|
description = newdesc;
|
|
}
|
|
public void TagChange(string[] newtag)
|
|
{
|
|
tags=newtag;
|
|
}
|
|
public void NameChange(string newname)
|
|
{
|
|
name = newname;
|
|
}
|
|
public void YearChange(int newyear)
|
|
{
|
|
year = newyear;
|
|
}
|
|
}
|
|
}
|