/// <summary> /// Добавляет новое ОСП в общий список. /// </summary> /// <param name="newOsp">Новое ОСП</param> public void AddNewOsp(OspDTO newOsp) { if (newOsp != null) { Osps.Add(newOsp); } }
/// <summary> /// Полный конструктор. /// </summary> /// <param name="id">Id пользователя</param> /// <param name="login">Логин</param> /// <param name="fullname">Полное имя</param> /// <param name="email">Адрес электронной почты</param> /// <param name="osp">ОСП пользователя</param> /// <param name="access">Уровень доступа</param> /// <param name="active">Статус активности</param> public UserDTO(int id, string login, string fullname, OspDTO osp, AccessDTO access, bool active = true) { Id = id; Login = login; Fullname = fullname; Osp = osp; Access = access; Active = active; }
/// <summary> /// Обновляет одно ОСП. /// </summary> /// <param name="editedOsp">Отредактированное ОСП</param> public void UpdateOsp(OspDTO editedOsp) { // Найти ОСП, равное редактированному, в текущем списке всех ОСП. OspDTO osp = Osps.FirstOrDefault(x => x.Id == editedOsp.Id); // Если ОСП найден. if (osp != null) { // Присвоить значения свойств отредактированного ОСП текущему. foreach (var prop in osp.GetType().GetProperties()) { prop.SetValue(osp, prop.GetValue(editedOsp)); } // Если отредактированное ОСП является текущиим для пользователя. if (editedOsp.Id == CurrentUser.Osp.Id) { // Присвоить значения свойств отредактированного ОСП текущему ОСП пользователя. foreach (var prop in CurrentUser.Osp.GetType().GetProperties()) { prop.SetValue(CurrentUser.Osp, prop.GetValue(editedOsp)); } } } }