public static Atribute operator +(Atribute a, Atribute b) { Atribute c = a; c.level += b.level; return(c); }
/// <summary> /// Обновление атрибута /// </summary> /// <param name="atribute">Редактируемый атритут</param> /// <returns>Обновленная запись</returns> public Atribute UpdateAtribute(Atribute atribute) { logger.Trace("Попытка подключения к источнику данных."); logger.Trace("Подготовка к обновлению атрибута."); try { var atributeToUpdate = context.Atribute.FirstOrDefault(a => a.AtributeId == atribute.AtributeId); logger.Debug($"Текущая запись: {atributeToUpdate.ToString()}"); atributeToUpdate.Fullname = atribute.Fullname; atributeToUpdate.Shortname = atribute.Shortname; atributeToUpdate.IsDiscount = atribute.IsDiscount; context.SaveChanges(); logger.Debug($"Новая запись: {atributeToUpdate.ToString()}"); return(atributeToUpdate); } catch (SqlException sqlEx) { logger.Error("Ошибка редактирования атрибута."); logger.Error($"Ошибка SQL Server — {sqlEx.Number}."); logger.Error($"Сообщение об ошибке: {sqlEx.Message}."); return(null); } catch (Exception ex) { logger.Error("Ошибка редактирования атрибута."); logger.Error($"Ошибка — {ex.Message}."); return(null); } }
/// <summary> /// Удаление атрибута /// </summary> /// <param name="atribute">Удаляемая запись</param> public void DeleteAtribute(Atribute atribute) { logger.Trace("Попытка подключения к источнику данных."); logger.Trace("Подготовка к удалению атрибута."); try { var atributeToDelete = context.Atribute.FirstOrDefault(a => a.AtributeId == atribute.AtributeId); if (atributeToDelete != null) { context.Atribute.Remove(atributeToDelete); context.SaveChanges(); logger.Debug("Удаление успешно завершено."); } } catch (SqlException sqlEx) { logger.Error("Ошибка удаления атрибута."); logger.Error($"Ошибка SQL Server — {sqlEx.Number}."); logger.Error($"Сообщение об ошибке: {sqlEx.Message}."); } catch (Exception ex) { logger.Error("Ошибка удаления атрибута."); logger.Error($"Ошибка — {ex.Message}."); } }
/// <summary> /// Добавление нового атрибута /// </summary> /// <param name="atribute">Добавляемый атрибут</param> /// <returns>Новая запись</returns> public Atribute InsertAtribute(Atribute atribute) { logger.Trace("Попытка подключения к источнику данных."); logger.Trace("Подготовка к добавлению атрибута."); try { logger.Debug($"Добавляемая запись: {atribute.ToString()}"); context.Atribute.Add(atribute); context.SaveChanges(); logger.Debug($"Новая запись успешно добавлена."); return(atribute); } catch (SqlException sqlEx) { logger.Error("Ошибка добавления атрибута."); logger.Error($"Ошибка SQL Server — {sqlEx.Number}."); logger.Error($"Сообщение об ошибке: {sqlEx.Message}."); return(null); } catch (Exception ex) { logger.Error("Ошибка добавления атрибута."); logger.Error($"Ошибка — {ex.Message}."); return(null); } }
public async Task <ActionResult <Atribute> > PostAtribute(AtributeDto atributeDto) { Atribute atribute = new Atribute { Name = atributeDto.Name }; foreach (long ii in atributeDto.ItemIds) { if (_context.Items.Any(i => i.Id == ii)) { ItemAtribute temp = new ItemAtribute { Item = _context.Items.First(i => i.Id == ii), Atribute = atribute }; _context.ItemAtributes.Add(temp); } else { return(BadRequest()); } } _context.Atributes.Add(atribute); await _context.SaveChangesAsync(); return(CreatedAtAction("GetAtribute", new { id = atribute.Id }, atribute)); }
/// <summary> /// Получение атрибута абитуриента по абитуриенту и атрибуту /// </summary> /// <param name="atribute">Фильтр атрибут</param> /// <param name="enrollee">Фильтр абитуриент</param> /// <returns>Искомая запись</returns> public AtributeForEnrollee GetAtributeForEnrollee(Atribute atribute, Enrollee enrollee) { logger.Trace("Попытка подключения к источнику данных."); logger.Trace("Подготовка к получению данных атрибута абитуриента."); try { var atributeForEnrollee = context.AtributeForEnrollee.AsNoTracking().FirstOrDefault(a => a.AtributeId == atribute.AtributeId && a.EnrolleeId == enrollee.EnrolleeId); if (atributeForEnrollee != null) { logger.Debug($"Поиск окончен. Запись найдена {atributeForEnrollee.ToString()}."); } return(atributeForEnrollee); } catch (SqlException sqlEx) { logger.Error("Ошибка получения данных атрибута абитуриента."); logger.Error($"Ошибка SQL Server — {sqlEx.Number}."); logger.Error($"Сообщение об ошибке: {sqlEx.Message}."); return(null); } catch (Exception ex) { logger.Error("Ошибка получения данных атрибута абитуриента."); logger.Error($"Ошибка — {ex.Message}."); return(null); } }
public EntityStats(int maxLifesc, int currentLifesc, Atribute fireRatec, Atribute speedc, Atribute rangec, Atribute stren) { maxLifes = maxLifesc; currentLifes = currentLifesc; fireRate = fireRatec; speed = speedc; range = rangec; strengh = stren; }
public List <Atribute> DeleteAtribute([FromBody] Atribute atr) { List <Atribute> attributesLst = new List <Atribute>(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); // Retrieve all rows using (var cmd = new NpgsqlCommand("DELETE FROM DAR_ATRIBUTO WHERE IDNS_ATRIBUTO = :IDNS_ATRIBUTO", conn)) { cmd.Parameters.Add(new NpgsqlParameter("IDNS_ATRIBUTO", atr.idns_atributo)); cmd.ExecuteNonQuery(); } } return(attributesLst); }
public Atribute InsertAtribute([FromBody] Atribute atr) { using (var conn = new NpgsqlConnection(connString)) { conn.Open(); // Retrieve all rows using (var cmd = new NpgsqlCommand("INSERT INTO DAR_ATRIBUTO (SD_ATRIBUTO,NS_DOCUMENTO_TIPO,NS_ATRIBUTO_TIPO,H_ALTA,SD_OPCIONES) VALUES (:SD_ATRIBUTO,:NS_DOCUMENTO_TIPO,:NS_ATRIBUTO_TIPO,:H_ALTA,:SD_OPCIONES)", conn)) { cmd.Parameters.Add(new NpgsqlParameter("SD_ATRIBUTO", atr.sd_atributo)); cmd.Parameters.Add(new NpgsqlParameter("NS_DOCUMENTO_TIPO", atr.ns_documento_tipo)); cmd.Parameters.Add(new NpgsqlParameter("NS_ATRIBUTO_TIPO", atr.ns_atributo_tipo)); cmd.Parameters.Add(new NpgsqlParameter("H_ALTA", atr.h_alta)); cmd.Parameters.Add(new NpgsqlParameter("SD_OPCIONES", atr.sd_opciones)); cmd.ExecuteNonQuery(); } } Atribute atrib = new Atribute(); atrib.sd_atributo = "Se creo el atributo correctamente"; return(atrib); }
public List <Atribute> UpdateAtribute([FromBody] Atribute atr) { List <Atribute> attributesLst = new List <Atribute>(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); // Retrieve all rows using (var cmd = new NpgsqlCommand("UPDATE DAR_ATRIBUTO set (SD_ATRIBUTO, NS_DOCUMENTO_TIPO, NS_ATRIBUTO_TIPO, H_ALTA, SD_OPCIONES) = (:SD_ATRIBUTO,:NS_DOCUMENTO_TIPO,:NS_ATRIBUTO_TIPO,:H_ALTA,:SD_OPCIONES) WHERE IDNS_ATRIBUTO = :IDNS_ATRIBUTO", conn)) { cmd.Parameters.Add(new NpgsqlParameter("IDNS_ATRIBUTO", atr.idns_atributo)); cmd.Parameters.Add(new NpgsqlParameter("SD_ATRIBUTO", atr.sd_atributo)); cmd.Parameters.Add(new NpgsqlParameter("NS_DOCUMENTO_TIPO", atr.ns_documento_tipo)); cmd.Parameters.Add(new NpgsqlParameter("NS_ATRIBUTO_TIPO", atr.ns_atributo_tipo)); cmd.Parameters.Add(new NpgsqlParameter("H_ALTA", atr.h_alta)); cmd.Parameters.Add(new NpgsqlParameter("SD_OPCIONES", atr.sd_opciones)); cmd.ExecuteNonQuery(); } } return(attributesLst); }
public List <Atribute> GetById(int id) { Atribute atr = new Atribute(); atr.ns_documento_tipo = id; List <Atribute> attributesLst = new List <Atribute>(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); // Retrieve all rows using (var cmd = new NpgsqlCommand("SELECT * FROM DAR_ATRIBUTO WHERE NS_DOCUMENTO_TIPO = :ns_doc_tipo", conn)) { cmd.Parameters.Add(new NpgsqlParameter("ns_doc_tipo", atr.ns_documento_tipo)); using (var dr = cmd.ExecuteReader()) while (dr.Read()) { Console.WriteLine(dr.GetString(1)); Atribute atrib = new Atribute(); atrib.idns_atributo = dr.IsDBNull(dr.GetOrdinal("IDNS_ATRIBUTO")) ? 0 : dr.GetInt32(dr.GetOrdinal("IDNS_ATRIBUTO")); atrib.sd_atributo = dr.IsDBNull(dr.GetOrdinal("SD_ATRIBUTO")) ? "" : dr.GetString(dr.GetOrdinal("SD_ATRIBUTO")); atrib.ns_documento_tipo = dr.IsDBNull(dr.GetOrdinal("NS_DOCUMENTO_TIPO")) ? 0 : dr.GetInt32(dr.GetOrdinal("NS_DOCUMENTO_TIPO")); atrib.ns_atributo_tipo = dr.IsDBNull(dr.GetOrdinal("NS_ATRIBUTO_TIPO")) ? 0 : dr.GetInt32(dr.GetOrdinal("NS_ATRIBUTO_TIPO")); atrib.h_alta = dr.IsDBNull(dr.GetOrdinal("H_ALTA")) ? DateTime.Now : dr.GetDateTime(dr.GetOrdinal("H_ALTA")); atrib.sd_opciones = dr.IsDBNull(dr.GetOrdinal("SD_OPCIONES")) ? "" : dr.GetString(dr.GetOrdinal("SD_OPCIONES")); attributesLst.Add(atrib); } } } return(attributesLst); }
/// <summary> /// Получение списка атрибутов абитуриентов /// </summary> /// <param name="atribute">Фильтр атрибут</param> /// <returns>Отфильтрованный список</returns> public List <AtributeForEnrollee> GetAtributeForEnrollees(Atribute atribute) { logger.Trace("Попытка подключения к источнику данных."); logger.Trace("Подготовка к получению списка абитуриентов с атрибутом."); try { var atributesForEnrollee = context.AtributeForEnrollee.AsNoTracking().Where(a => a.AtributeId == atribute.AtributeId).ToList(); logger.Debug($"Поиск окончен. Количество записей : {atributesForEnrollee.Count}."); return(atributesForEnrollee); } catch (SqlException sqlEx) { logger.Error("Ошибка получения списка абитуриентов с атрибутом."); logger.Error($"Ошибка SQL Server — {sqlEx.Number}."); logger.Error($"Сообщение об ошибке: {sqlEx.Message}."); return(null); } catch (Exception ex) { logger.Error("Ошибка получения списка абитуриентов с атрибутом."); logger.Error($"Ошибка — {ex.Message}."); return(null); } }
List <Atribute> BuildActionsAndAtributes() { Atribute fullness = new Atribute("Fullness", 0, 100, -3); Atribute awake = new Atribute("Awake", 0, 100, -1); Atribute relax = new Atribute("Relax", 0, 100, -1); Atribute clean = new Atribute("Clean", 0, 100, -1); Atribute money = new Atribute("Money", 0, 100, -2); Atribute energy = new Atribute("Energy", 0, 100, +1); Action action = new Action(new LogisticUtilityFunction("Fullness", 1, System.Math.E)); ActionInformation information = new ActionInformation("Eat", 4 * UPDATE_SECONDS); information.AddSpecialModifier(fullness, 10); actionInformation.Add(action, information); action = new Action(new LogitUtilityFunction("Awake", 1, System.Math.E)); information = new ActionInformation("Sleep", 8 * UPDATE_SECONDS); information.AddSpecialModifier(awake, 5); information.AddSpecialModifier(relax, 1); actionInformation.Add(action, information); action = new Action(new LinearUtilityFunction("Money", 0.8, 0.2)); information = new ActionInformation("Work", 6 * UPDATE_SECONDS); information.AddSpecialModifier(money, 8); information.AddSpecialModifier(relax, -4); actionInformation.Add(action, information); List <UtilityFunction> composedFunctions = new List <UtilityFunction> { new ConstantUtilityFunction(0), new LinearUtilityFunction("Stress", 2, -1.2) }; double[] cutPoints = new double[] { 0.6 }; action = new Action(new ComposedUtilityFunction("Relax", composedFunctions, cutPoints)); information = new ActionInformation("Exercise", 4 * UPDATE_SECONDS); information.AddSpecialModifier(relax, 15); information.AddSpecialModifier(clean, -5); information.AddSpecialModifier(energy, -10); actionInformation.Add(action, information); action = new Action(new ConstantUtilityFunction(0.3)); information = new ActionInformation("Watch TV", 2 * UPDATE_SECONDS); information.AddSpecialModifier(relax, 10); actionInformation.Add(action, information); action = new Action(new QuadraticUtilityFunction("Clean", 5, 0, 0)); information = new ActionInformation("Shower", 3 * UPDATE_SECONDS); information.AddSpecialModifier(clean, 40); actionInformation.Add(action, information); List <Atribute> atributes = new List <Atribute> { fullness, awake, relax, clean, money, energy }; return(atributes); }