using System; using System.Collections.Generic; using VAR.Focus.Web.Code.Entities; namespace VAR.Focus.Web.Code.BusinessLogic { public class MessageBoard { #region Declarations private List _messages = new List(); private int _lastIDMessage = 0; private int _idBoard = 0; #endregion #region Life cycle public MessageBoard(int idBoard) { _idBoard = idBoard; LoadData(); } #endregion #region Public methods public List Messages_GetList(int idMessage) { List listMessages = new List(); for (int i = 0, n = _messages.Count; i < n; i++) { Message msg = _messages[i]; if (msg.IDMessage > idMessage) { listMessages.Insert(0, msg); } else { break; } } return listMessages; } public void Message_Add(string userName, string text) { lock (_messages) { _lastIDMessage++; Message msg = new Message(); msg.IDMessage = _lastIDMessage; msg.UserName = userName; msg.Text = text; msg.Date = DateTime.UtcNow; _messages.Insert(0, msg); SaveData(); } } #endregion #region Private methods #region Persistence private const string PersistenceFile = "priv/messageBoard.{0}.json"; private void LoadData() { _messages = Persistence.LoadList(String.Format(PersistenceFile, _idBoard)); _lastIDMessage = 0; if (_messages.Count > 0) { _lastIDMessage = _messages[0].IDMessage; } } private void SaveData() { Persistence.SaveList(String.Format(PersistenceFile, _idBoard), _messages); } #endregion #endregion } }