コード例 #1
0
        /// <summary>
        /// Получает список ТТ доступных оператору
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public OperatorPosResponse GetPosByOperator(OperatorPosRequest request)
        {
            var returnValue = new OperatorPosResponse();

            try
            {
                _cnn.Open();
                SqlCommand cmd = _cnn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "OperatorGetPos";
                if (request.Operator == 0)
                {
                    request.Operator = Convert.ToInt16(ConfigurationManager.AppSettings["Operator"]);
                }
                cmd.Parameters.AddWithValue("@operator", request.Operator);
                cmd.Parameters.Add("@errormessage", SqlDbType.NVarChar, 100);
                cmd.Parameters["@errormessage"].Direction = ParameterDirection.Output;
                cmd.Parameters.Add("@result", SqlDbType.Int);
                cmd.Parameters["@result"].Direction = ParameterDirection.ReturnValue;
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Pos pos = new Pos();
                    if (!reader.IsDBNull(0))
                    {
                        pos.Region = reader.GetString(0);
                    }
                    if (!reader.IsDBNull(1))
                    {
                        pos.City = reader.GetString(1);
                    }
                    if (!reader.IsDBNull(2))
                    {
                        pos.Address = reader.GetString(2);
                    }
                    if (!reader.IsDBNull(3))
                    {
                        pos.Id = reader.GetInt16(3);
                    }
                    returnValue.Poses.Add(pos);
                }
                reader.Close();



                cmd.Parameters.Clear();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "select id, caption, operator from poslist where operator=@id";
                cmd.Parameters.AddWithValue("@id", request.Operator);

                var result = new List <OperatorPosList>();
                var buf    = new List <OperatorPosList>();

                #region Получаем списки магазинов, созданных оператором

                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var posList = new OperatorPosList {
                        Id = reader.GetInt16(0)
                    };
                    if (!reader.IsDBNull(1))
                    {
                        posList.Caption = reader.GetString(1);
                    }
                    if (!reader.IsDBNull(2))
                    {
                        posList.Operator = reader.GetInt16(2);
                    }
                    buf.Add(posList);
                }
                reader.Close();

                #endregion

                #region Получаем содержимое списков магазинов

                cmd.CommandText =
                    @"select p.id, c.name, p.address from poslistitems pli 
                    join poslist pl on pl.id = pli.poslist and pl.id=@id 
                    join pos p on p.id = pli.pos 
                    join city c on c.id=p.city";

                foreach (var item in buf)
                {
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@id", item.Id);
                    var listOfPos = new List <Pos>();
                    reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        var pos = new Pos {
                            Id = reader.GetInt16(0)
                        };
                        if (!reader.IsDBNull(1))
                        {
                            pos.City = reader.GetString(1);
                        }
                        if (!reader.IsDBNull(2))
                        {
                            pos.Address = reader.GetString(2);
                        }
                        listOfPos.Add(pos);
                    }
                    reader.Close();
                    result.Add(new OperatorPosList
                    {
                        Id       = item.Id,
                        Operator = item.Operator,
                        Caption  = item.Caption,
                        Poses    = listOfPos
                    });
                }
                #endregion
                returnValue.PosLists = result;
            }
            catch (Exception e)
            {
                returnValue.ErrorCode = 3;
                returnValue.Message   = e.Message;
            }
            finally
            {
                _cnn.Close();
            }
            return(returnValue);
        }
コード例 #2
0
        /// <summary>
        /// Получает список списков магазинов оператора"
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public OperatorPosListResponse GetPosListByOperator(OperatorPosListCreateRequest request)
        {
            var response = new OperatorPosListResponse();

            _cnn.Open();
            SqlCommand cmd = _cnn.CreateCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select id, caption, operator from poslist where operator=@id";
            cmd.Parameters.AddWithValue("@id", request.Operator);

            var result = new List <OperatorPosList>();
            var buf    = new List <OperatorPosList>();

            try
            {
                #region Получаем списки магазинов, созданных оператором
                var reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var posList = new OperatorPosList {
                        Id = reader.GetInt16(0)
                    };
                    if (!reader.IsDBNull(1))
                    {
                        posList.Caption = reader.GetString(1);
                    }
                    if (!reader.IsDBNull(2))
                    {
                        posList.Operator = reader.GetInt16(2);
                    }
                    buf.Add(posList);
                }
                reader.Close();
                #endregion

                #region Получаем содержимое списков магазинов
                cmd.CommandText =
                    @"select p.id, c.name, p.address from poslistitems pli 
                    join poslist pl on pl.id = pli.poslist and pl.id=@id 
                    join pos p on p.id = pli.pos 
                    join city c on c.id=p.city";

                foreach (var item in buf)
                {
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@id", item.Id);
                    var listOfPos = new List <Pos>();
                    reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        var pos = new Pos {
                            Id = reader.GetInt16(0)
                        };
                        if (!reader.IsDBNull(1))
                        {
                            pos.City = reader.GetString(1);
                        }
                        if (!reader.IsDBNull(2))
                        {
                            pos.Address = reader.GetString(2);
                        }
                        listOfPos.Add(pos);
                    }
                    reader.Close();
                    result.Add(new OperatorPosList
                    {
                        Id       = item.Id,
                        Operator = item.Operator,
                        Caption  = item.Caption,
                        Poses    = listOfPos
                    });
                }
                #endregion

                response.PosLists  = result;
                response.ErrorCode = 0;
                response.Message   = string.Empty;
            }
            catch (Exception e)
            {
                response.ErrorCode = 3;
                response.Message   = e.Message;
            }
            finally
            {
                _cnn.Close();
            }
            return(response);
        }