Beispiel #1
0
    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);
     }
 }
Beispiel #5
0
        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));
        }
Beispiel #6
0
 /// <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);
     }
 }
Beispiel #7
0
 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;
 }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
 /// <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);
    }