public void UpdateAttributes(Reserve infoReserveToUpdate) { if (!String.IsNullOrEmpty(infoReserveToUpdate.DescriptionForGuest)) { DescriptionForGuest = infoReserveToUpdate.DescriptionForGuest; } if (Enum.IsDefined(typeof(ReserveState), infoReserveToUpdate.StateOfReserve)) { StateOfReserve = infoReserveToUpdate.StateOfReserve; } }
//метод для вывода истории статусов резерва в модальном окне (Ajax) public async Task <IActionResult> _HistoryInModalAsync(string id) { List <ReserveState> data = new List <ReserveState>(); try { using (SqlConnection connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); SqlCommand query = new SqlCommand { CommandText = $@"SELECT ISNULL(r.number, '') number, rs.stateDate stateDate, ISNULL(CAST(rs.state AS VARCHAR(20)), '') state, CASE rs.state WHEN -1 THEN 'Отменен (разобрать)' WHEN 1 THEN 'Новый' WHEN 2 THEN 'Готов к выдаче' WHEN 4 THEN 'Ожидает подтверждения покупателя' WHEN 5 THEN 'Подтвержден покупателем' WHEN 6 THEN 'Отменен' WHEN 8 THEN 'Выдан' WHEN 9 THEN 'Комплектуется' WHEN 20 THEN 'Дозаказ' ELSE 'Нет описания статуса' END AS description FROM ( SELECT number, idReserve FROM Reserve WHERE idReserve = @id ) r LEFT JOIN ReserveState rs ON r.idReserve = rs.idReserve ORDER BY rs.stateDate", Connection = connection }; query.Parameters.AddWithValue("id", id); SqlDataReader reader = await query.ExecuteReaderAsync(); if (reader.HasRows) { while (await reader.ReadAsync()) { if (string.IsNullOrEmpty(ViewBag.ReserveNumber)) { ViewBag.ReserveNumber = reader["number"] as string; } ReserveState row = new ReserveState { number = reader["number"] as string, stateDate = (DateTime?)reader.GetDateTime(1) ?? default(DateTime), state = reader["state"] as string, description = reader["description"] as string }; data.Add(row); } } reader.Close(); connection.Close(); } } catch (Exception e) { ViewBag.Message = "Ошибка: " + e.Message + Environment.NewLine + e.StackTrace; } return(PartialView("_HistoryInModal", data)); }