public int DeleteBulkUpdate(Guid eventId)
    {
        var exludeUpdateCol = new List <string> {
            "SysId", "ExecuteStartDate", "EventType"
        };
        var cmdList         = new List <SqlCommand>();
        var bulkupdateEvent = new BulkUpdateEvent {
            SysId = eventId, Status = (int)BulkUpdateStatus.已刪除
        };

        cmdList.Add(SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].BulkUpdateEvent", bulkupdateEvent, exludeUpdateCol, new List <string> {
            "SysId=@SysId"
        }));
        cmdList.Add(SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].ProductDateUpdate", bulkupdateEvent, exludeUpdateCol, new List <string> {
            "EventId=@SysId"
        }));
        cmdList.Add(SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].ProductEventUpdate", bulkupdateEvent, exludeUpdateCol, new List <string> {
            "EventId=@SysId"
        }));
        cmdList.Add(SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].ProductPreOrderUpdate", bulkupdateEvent, exludeUpdateCol, new List <string> {
            "EventId=@SysId"
        }));
        cmdList.Add(SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].ProductSortUpdate", bulkupdateEvent, exludeUpdateCol, new List <string> {
            "EventId=@SysId"
        }));
        cmdList.Add(SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].ProductStatusUpdate", bulkupdateEvent, exludeUpdateCol, new List <string> {
            "EventId=@SysId"
        }));
        return(SqlDbmanager.executeNonQryMutiSqlCmd(cmdList));
    }
Esempio n. 2
0
    private bool AddLog(APIHelper helper)
    {
        PrescoAPILog prescoAPILog = MapAPILog(helper);
        var          cmd          = SqlExtension.GetInsertSqlCmd("PrescoAPILog", prescoAPILog);

        return(SqlDbmanager.ExecuteNonQry(cmd));
    }
Esempio n. 3
0
        public Order Save(Order order)
        {
            using (SqlConnection connection = SqlExtension.GetConnection())
            {
                try
                {
                    connection.Open();

                    var sqlString = "INSERT INTO Orders VALUES (@CustomerId, @Amount, @VAT)";

                    var command = sqlString.GetCommand(connection);

                    command.Parameters.AddWithValue("@CustomerId", order.CustomerId);
                    command.Parameters.AddWithValue("@Amount", order.Amount);
                    command.Parameters.AddWithValue("@VAT", order.VAT);

                    order.OrderId = command.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    connection.Close();
                }
            }

            return(order);
        }
Esempio n. 4
0
        public static ResponceModel Add(string username, string content, string pic)
        {
            if (content != "")
            {
                //SOLVED BUG ??
                byte[] data = null;

                if (pic != null)
                {
                    data = ToolUtil.HexToByte(pic);
                }

                MsgUni msg = new MsgUni(username, content, data)
                {
                    time       = DateTime.Now.ToString(),
                    updatetime = DateTime.Now.ToString(),
                };
                msg.Add();

                msg = SqlExtension.GetLastRecord <MsgUni>();

                if (data != null)
                {
                    msg.SavePic();
                }
                return(new ResponceModel(200, "添加成功", msg));
            }
            else
            {
                return(new ResponceModel(403, "留言内容为空"));
            }
        }
Esempio n. 5
0
        public static Customer Save(Customer customer)
        {
            using (SqlConnection connection = SqlExtension.GetConnection())
            {
                try
                {
                    connection.Open();

                    var sqlString = "INSERT INTO Customer OUTPUT INSERTED.CustomerId VALUES (@Name, @Country, @DateOfBirth)";

                    var command = sqlString.GetCommand(connection);

                    command.Parameters.AddWithValue("@Name", customer.Name);
                    command.Parameters.AddWithValue("@Country", customer.Country);
                    command.Parameters.AddWithValue("@DateOfBirth", customer.DateOfBirth);

                    customer.CustomerId = (int)command.ExecuteScalar();
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    connection.Close();
                }
            }

            return(customer);
        }
Esempio n. 6
0
        public static Customer Load(int customerId)
        {
            var customer = new Customer();

            using (SqlConnection connection = SqlExtension.GetConnection())
            {
                try
                {
                    connection.Open();

                    var sqlString = $"SELECT * FROM Customer WHERE CustomerId = {customerId}";

                    SqlDataReader reader = sqlString.GetReader(connection);

                    while (reader.Read())
                    {
                        customer.Name        = reader["Name"].ToString();
                        customer.DateOfBirth = DateTime.Parse(reader["DateOfBirth"].ToString());
                        customer.Country     = reader["Country"].ToString();
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    connection.Close();
                }
            }

            return(customer);
        }
Esempio n. 7
0
                public ExtensionBuilder(
                    string configuration,
                    [NotNull]   MappingSchema mapping,
                    [NotNull]   SqlExtension extension,
                    [NotNull]   ConvertHelper convertHeper,
                    [NotNull]   MemberInfo member,
                    [NotNull]   Expression[]   arguments)
                {
                    if (mapping == null)
                    {
                        throw new ArgumentNullException("mapping");
                    }
                    if (extension == null)
                    {
                        throw new ArgumentNullException("extension");
                    }
                    if (convertHeper == null)
                    {
                        throw new ArgumentNullException("convertHeper");
                    }
                    if (arguments == null)
                    {
                        throw new ArgumentNullException("arguments");
                    }

                    Mapping       = mapping;
                    Configuration = configuration;
                    Extension     = extension;
                    _convert      = convertHeper;
                    Member        = member;
                    Method        = member as MethodInfo;
                    Arguments     = arguments;
                }
            public SqlExtensionParam(string?name, SqlExtension extension)
            {
                Name      = name;
                Extension = extension;
#if DEBUG
                _paramNumber = Interlocked.Add(ref _paramCounter, 1);
#endif
            }
    private SqlCommand InsertShipmentHistory(ShipmentHistory shiphistory)
    {
        var cmd = SqlExtension.GetInsertSqlCmd("ShipmentSTHistory", shiphistory);

        //SSH24.SSH05,SSH03
        cmd.CommandText = @"IF NOT EXISTS(SELECT SSH03 FROM ShipmentSTHistory WHERE SSH24= @SSH24 AND SSH05=@SSH05 AND SSH03=@SSH03) 
                            BEGIN " + SqlExtension.GetInsertStr("ShipmentSTHistory", shiphistory) + " END ";
        return(cmd);
    }
Esempio n. 10
0
    public List <SqlCommand> AddBulkUpdate(List <UpdateDetails> updateDetails)
    {
        var cmdList = new List <SqlCommand>();

        foreach (ProductStatusUpdate pEvent in updateDetails)
        {
            cmdList.Add(SqlExtension.getInsertSqlCmd("[ScheduleEvent].[dbo].ProductStatusUpdate", pEvent));
        }
        return(cmdList);
    }
    public int AddBulkUpdate(BulkUpdateData productBulkUpdateData)
    {
        _bulkUpdateDetailsService = _updateDetailsFactory.CreateService(productBulkUpdateData.UpdateEvent.EventType);

        var cmdList = new List <SqlCommand>();

        cmdList.Add(SqlExtension.getInsertSqlCmd("[ScheduleEvent].[dbo].BulkUpdateEvent", productBulkUpdateData.UpdateEvent));
        cmdList.AddRange(_bulkUpdateDetailsService.AddBulkUpdate(productBulkUpdateData.UpdateDetails));
        return(SqlDbmanager.executeNonQryMutiSqlCmd(cmdList));
    }
Esempio n. 12
0
        public void ToWhereSql_EqualsStringValue_SqlIsCorrect()
        {
            var dbCommandMock = new Mock <IDbCommand> {
                DefaultValue = DefaultValue.Mock
            };

            var whereSql = SqlExtension.ToWhereSql((Expression <Func <CustomExpression, bool> >)(model => model.MyStringAttribute == "Value"), dbCommandMock.Object);

            Assert.AreEqual("mystringattribute = @mystringattribute", whereSql);
        }
Esempio n. 13
0
    public List <SqlCommand> AddBulkUpdate(List <UpdateDetails> updateDetails)
    {
        var cmdList = new List <SqlCommand>();

        foreach (var pEvent in updateDetails)
        {
            var addevent = (ProductDateUpdate)pEvent;
            cmdList.Add(SqlExtension.getInsertSqlCmd("[ScheduleEvent].[dbo].ProductDateUpdate", addevent));
        }
        return(cmdList);
    }
Esempio n. 14
0
    private int AddShipNumber(List <ShipmentNumber> shipmentNumbers)
    {
        var cmdList = new List <SqlCommand>();

        foreach (var number in shipmentNumbers)
        {
            cmdList.Add(SqlExtension.GetInsertSqlCmd("PrescoShipment", number));
        }
        var rval = SqlDbmanager.ExecuteNonQryMutiSqlCmd(cmdList);

        return(rval);
    }
Esempio n. 15
0
        public void ToWhereSql_EqualsNestedPropertyValue_SqlIsCorrect()
        {
            var dbCommandMock = new Mock <IDbCommand> {
                DefaultValue = DefaultValue.Mock
            };

            var filter = new CascadedFilter {
                CustomExpressionFilter = new CustomExpression {
                    MyStringAttribute = "Value"
                }
            };
            var whereSql = SqlExtension.ToWhereSql((Expression <Func <CustomExpression, bool> >)(model => model.MyStringAttribute == filter.CustomExpressionFilter.MyStringAttribute), dbCommandMock.Object);

            Assert.AreEqual("mystringattribute = @mystringattribute", whereSql);
        }
Esempio n. 16
0
    private int UpdateShipNumber(List <ShipmentNumber> shipmentNumbers)
    {
        var cmdlist = new List <SqlCommand>();

        foreach (var shipnumber in shipmentNumbers)
        {
            shipnumber.Status = (int)ShipNumberStatus.Used;
            shipnumber.UDate  = DateTime.Now;
            cmdlist.Add(SqlExtension.GetUpdateSqlCmd("PrescoShipment", shipnumber, new List <string> {
                "Id"
            }, "Id=@Id"));
        }
        var rval = SqlDbmanager.ExecuteNonQryMutiSqlCmd(cmdlist);

        return(rval);
    }
Esempio n. 17
0
        public void ToWhereSql_EqualsStringValue_HasParameter()
        {
            var parameters    = new Fakes.DataParameterCollection();
            var dbCommandMock = new Mock <IDbCommand> {
                DefaultValue = DefaultValue.Mock
            };

            dbCommandMock.SetupGet(command => command.Parameters).Returns(parameters);
            dbCommandMock.Setup(command => command.CreateParameter()).Returns(() => Mock.Of <IDbDataParameter>());
            var dbCommand = dbCommandMock.Object;

            SqlExtension.ToWhereSql((Expression <Func <CustomExpression, bool> >)(model => model.MyStringAttribute == "Value"), dbCommand);

            Assert.IsTrue(dbCommand.Parameters.Contains("@mystringattribute"));
            Assert.AreEqual("Value", (dbCommand.Parameters["@mystringattribute"] as IDbDataParameter).Value);
            Assert.AreEqual(DbType.String, (dbCommand.Parameters["@mystringattribute"] as IDbDataParameter).DbType);
        }
Esempio n. 18
0
        public void ToWhereSql_Contains_SqlIsCorrect()
        {
            var parameters    = new Fakes.DataParameterCollection();
            var dbCommandMock = new Mock <IDbCommand> {
                DefaultValue = DefaultValue.Mock
            };

            dbCommandMock.SetupGet(command => command.Parameters).Returns(parameters);
            dbCommandMock.Setup(command => command.CreateParameter()).Returns(() => Mock.Of <IDbDataParameter>());
            var dbCommand = dbCommandMock.Object;

            var whereExpression =
                (Expression <Func <CustomExpression, bool> >)(model => model.MyStringAttribute.Contains("Test"));
            var whereSql = SqlExtension.ToWhereSql(whereExpression, dbCommand);

            Assert.AreEqual("mystringattribute LIKE '%' + @mystringattribute + '%'", whereSql);
        }
    public int UpdateShipmentStatus(List <PrescoShipment> shipStatusRequests)
    {
        var updatelist = GetUpdateShipments(shipStatusRequests);
        var updateCmd  = new List <SqlCommand>();

        foreach (var shiphistory in updatelist)
        {
            var shipment = new Shipment {
                ST12 = shiphistory.SSH05, ST02 = shiphistory.SSH03
            };
            updateCmd.Add(SqlExtension.GetUpdateSqlCmd("Shipment", shipment, new List <string> {
                "ST02", "ST03", "ST13"
            }, "ST02=@ST02", null));
            updateCmd.Add(InsertShipmentHistory(shiphistory));
        }
        return(SqlDbmanager.ExecuteNonQryMutiSqlCmd(updateCmd));
    }
    public bool UpdateBulkUpdate(BulkUpdateData productBulkUpdate)
    {
        _bulkUpdateDetailsService = _updateDetailsFactory.CreateService(productBulkUpdate.UpdateEvent.EventType);
        var excludeUpdateColumns = new List <string> {
            "ProductID", "SysId", "ExecuteDate"
        };
        var whereColumns = new List <string> {
            "SysId=@SysId"
        };
        var cmd = SqlExtension.getUpdateSqlCmd("[ScheduleEvent].[dbo].BulkUpdateEvent", productBulkUpdate.UpdateEvent, excludeUpdateColumns, whereColumns);

        var cmdList = new List <SqlCommand>();

        cmdList.Add(cmd);
        cmdList.AddRange(_bulkUpdateDetailsService.EditBulkUpdate(productBulkUpdate.UpdateDetails));

        return(SqlDbmanager.executeNonQryMutiSqlCmd(cmdList) == 1);
    }
Esempio n. 21
0
 public ExtensionBuilder(
     string configuration,
     [NotNull]   IDataContext dataContext,
     [NotNull]       SelectQuery query,
     [NotNull]   SqlExtension extension,
     [NotNull]   ConvertHelper convertHeper,
     [NotNull]   MemberInfo member,
     [NotNull]   Expression[]   arguments)
 {
     DataContext   = dataContext ?? throw new ArgumentNullException(nameof(dataContext));
     Query         = query ?? throw new ArgumentNullException(nameof(query));
     Configuration = configuration;
     Extension     = extension ?? throw new ArgumentNullException(nameof(extension));
     _convert      = convertHeper ?? throw new ArgumentNullException(nameof(convertHeper));
     Member        = member;
     Method        = member as MethodInfo;
     Arguments     = arguments ?? throw new ArgumentNullException(nameof(arguments));
 }
Esempio n. 22
0
        public static List <Customer> LoadAll()
        {
            IOrderRepository orderRepository = new OrderRepository();

            List <Order> orders = orderRepository.LoadAll();

            var customers = new List <Customer>();

            using (SqlConnection connection = SqlExtension.GetConnection())
            {
                try
                {
                    connection.Open();

                    var sqlString = "SELECT * FROM Customer";

                    SqlDataReader reader = sqlString.GetReader(connection);

                    while (reader.Read())
                    {
                        var customer = new Customer
                        {
                            CustomerId  = (int)reader["CustomerId"],
                            Name        = reader["Name"].ToString(),
                            DateOfBirth = DateTime.Parse(reader["DateOfBirth"].ToString()),
                            Country     = reader["Country"].ToString(),
                            Orders      = orders.Where(e => e.CustomerId == (int)reader["CustomerId"]).ToList()
                        };

                        customers.Add(customer);
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    connection.Close();
                }
            }

            return(customers);
        }
Esempio n. 23
0
    private int AddOrderLog(List <OrderRequest> request, APIHelper aPIHelper)
    {
        var cmdList      = new List <SqlCommand>();
        var prescoAPILog = MapAPILog(aPIHelper);

        foreach (var item in request)
        {
            var orderlog = new PrescoOrderLog();
            orderlog.SysId          = Guid.NewGuid();
            orderlog.PrescoAPILogID = prescoAPILog.SysId;
            orderlog.PrescoShipID   = item.ShipNo;
            orderlog.GMShipID       = item.OrderNo;
            cmdList.Add(SqlExtension.GetInsertSqlCmd("Prescoorderlog", orderlog));
        }
        cmdList.Add(SqlExtension.GetInsertSqlCmd("PrescoAPILog", prescoAPILog));
        var rval = SqlDbmanager.ExecuteNonQryMutiSqlCmd(cmdList);

        return(rval);
    }
 public ExtensionBuilder(
     string?configuration,
     object?builderValue,
     IDataContext dataContext,
     SelectQuery query,
     SqlExtension extension,
     ConvertHelper convertHeper,
     MemberInfo member,
     Expression[]  arguments)
 {
     Configuration = configuration;
     BuilderValue  = builderValue;
     DataContext   = dataContext ?? throw new ArgumentNullException(nameof(dataContext));
     Query         = query ?? throw new ArgumentNullException(nameof(query));
     Extension     = extension ?? throw new ArgumentNullException(nameof(extension));
     _convert      = convertHeper ?? throw new ArgumentNullException(nameof(convertHeper));
     Member        = member;
     Method        = member as MethodInfo;
     Arguments     = arguments ?? throw new ArgumentNullException(nameof(arguments));
 }
Esempio n. 25
0
        private void AddMolPayTransaction(List <TransactionAPIResponse> transactionAPIResponses, MolPayMember member)
        {
            var cmdList = new List <SqlCommand>();

            foreach (var response in transactionAPIResponses)
            {
                response.SysId = Guid.NewGuid();
                if (response.SettlementDate.Contains("0000-00-00"))
                {
                    response.SettlementDate = null;
                }
                if (response.PaidDate.Contains("0000-00-00"))
                {
                    response.PaidDate = null;
                }
                response.MemberName = member.MemberName;
                response.MemberId   = member.MemberId;
                cmdList.Add(SqlExtension.GetInsertSqlCmd("MolPayTransaction", response));
            }

            SqlDbmanager.ExecuteNonQryMutiSqlCmd(cmdList);
        }
Esempio n. 26
0
        public List <Order> LoadAll()
        {
            var orders = new List <Order>();

            using (SqlConnection connection = SqlExtension.GetConnection())
            {
                try
                {
                    connection.Open();

                    var sqlString = "SELECT * FROM Orders";

                    SqlDataReader reader = sqlString.GetReader(connection);

                    while (reader.Read())
                    {
                        var order = new Order
                        {
                            OrderId    = (int)reader["OrderId"],
                            CustomerId = (int)reader["CustomerId"],
                            Amount     = (double)reader["Amount"],
                            VAT        = (double)reader["VAT"]
                        };

                        orders.Add(order);
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    connection.Close();
                }
            }

            return(orders);
        }
Esempio n. 27
0
        public static ResponceModel Update(string time)
        {
            if (DateTime.TryParse(time, out DateTime result))
            {
                var data = from item in SqlExtension.GetLastRecords <MsgUni>(200) where (item.GetUpdateTime() > result) select item;

                // Mark: 因传输图片过于消耗流量,故特意将图片的获取分离开来。
                // 提取图片。
                foreach (var item in data)
                {
                    item.ReadPic();
                }

                return(new ResponceModel(200, "获取留言成功", new
                {
                    time = DateTime.Now.ToString(),
                    content = data.ToArray()
                }));
            }
            else
            {
                return(new ResponceModel(403, "时间格式不正确"));
            }
        }
Esempio n. 28
0
            public static SqlExpression BuildSqlExpression(SqlExtension root, Type systemType, int precedence, bool isAggregate, bool canBeNull)
            {
                var sb             = new StringBuilder();
                var resolvedParams = new Dictionary <SqlExtensionParam, string>();
                var resolving      = new HashSet <SqlExtensionParam>();
                var newParams      = new List <ISqlExpression>();

                Func <string, string, string> valueProvider = null;
                Stack <SqlExtension>          current       = new Stack <SqlExtension>();

                valueProvider = (name, delimiter) =>
                {
                    var found = root.GetParametersByName(name);
                    if (current.Count != 0)
                    {
                        found = current.Peek().GetParametersByName(name).Concat(found);
                    }
                    string result = null;
                    foreach (var p in found)
                    {
                        if (resolvedParams.TryGetValue(p, out var paramValue))
                        {
                            result = paramValue;
                        }
                        else
                        {
                            if (resolving.Contains(p))
                            {
                                throw new InvalidOperationException("Circular reference");
                            }

                            resolving.Add(p);
                            var ext = p.Extension;
                            if (ext != null)
                            {
                                current.Push(ext);
                                paramValue = ResolveExpressionValues(ext.Expr, valueProvider);
                                current.Pop();
                            }
                            else
                            {
                                sb.Length = 0;
                                if (p.Expression != null)
                                {
                                    paramValue = string.Format("{{{0}}}", newParams.Count);
                                    newParams.Add(p.Expression);
                                }
                            }

                            resolvedParams.Add(p, paramValue);

                            if (string.IsNullOrEmpty(paramValue))
                            {
                                continue;
                            }

                            if (!string.IsNullOrEmpty(result))
                            {
                                result = result + delimiter;
                            }
                            result = result + paramValue;
                        }

                        if (delimiter == null && !string.IsNullOrEmpty(result))
                        {
                            break;
                        }
                    }

                    return(result);
                };

                var expr          = ResolveExpressionValues(root.Expr, valueProvider);
                var sqlExpression = new SqlExpression(systemType, expr, precedence, isAggregate, newParams.ToArray())
                {
                    CanBeNull = canBeNull
                };

                return(sqlExpression);
            }
Esempio n. 29
0
            SqlExtensionParam BuildExtensionParam(IDataContext dataContext, SelectQuery query, MemberInfo member, Expression[] arguments, ConvertHelper convertHelper)
            {
                var method = member as MethodInfo;
                var type   = member.GetMemberType();

                if (method != null)
                {
                    type = method.ReturnType ?? type;
                }
                else if (member is PropertyInfo)
                {
                    type = ((PropertyInfo)member).PropertyType;
                }

                var extension = new SqlExtension(type, Expression, Precedence, ChainPrecedence, IsAggregate, CanBeNull);

                SqlExtensionParam result = null;

                if (method != null)
                {
                    var parameters = method.GetParameters();

                    for (var i = 0; i < parameters.Length; i++)
                    {
                        var arg   = arguments[i];
                        var param = parameters[i];
                        var names = param.GetCustomAttributes(true).OfType <ExprParameterAttribute>()
                                    .Select(a => a.Name ?? param.Name)
                                    .Distinct()
                                    .ToArray();

                        if (names.Length > 0)
                        {
                            var sqlExpressions = arg is NewArrayExpression arrayInit
                                                                ? arrayInit.Expressions.Select(convertHelper.Convert).ToArray()
                                                                : new[] { convertHelper.Convert(arg) };

                            foreach (var name in names)
                            {
                                foreach (var sqlExpr in sqlExpressions)
                                {
                                    extension.AddParameter(name, sqlExpr);
                                }
                            }
                        }
                    }
                }

                if (BuilderType != null)
                {
                    var callBuilder = _builders.GetOrAdd(BuilderType, t =>
                    {
                        if (Activator.CreateInstance(BuilderType) is IExtensionCallBuilder res)
                        {
                            return(res);
                        }

                        throw new ArgumentException(
                            $"Type '{BuilderType}' does not implement {nameof(IExtensionCallBuilder)} interface.");
                    }
                                                         );

                    var builder = new ExtensionBuilder(Configuration, dataContext, query, extension, convertHelper, member, arguments);
                    callBuilder.Build(builder);

                    result = builder.ResultExpression != null ? new SqlExtensionParam(TokenName, builder.ResultExpression) : new SqlExtensionParam(TokenName, builder.Extension);
                }

                result = result ?? new SqlExtensionParam(TokenName, extension);

                return(result);
            }
Esempio n. 30
0
 public SqlExtensionParam(string name, SqlExtension extension)
 {
     Name      = name;
     Extension = extension;
 }